NextGEN Gallery – WordPress Gallery Plugin - Version 3.0.9

Version Description

  • 10.02.2018 =
  • NEW: Added 2.0 template mechanism for basic galleries
  • NEW: Simple Lightbox is the new default Lightbox
  • Changed: Changed Javascript library and styling for basic slideshow
  • Changed: New default template and styling for thumbnail galleries
  • Changed: New default template and styling for imagebrowser galleries
  • Changed: New default template and styling for compact albums
  • Changed: New default template and styling for extended albums
  • Changed: Changed implementation of "Number of Columns" setting
  • Changed: Significantly simplified NextGEN default shortcodes
Download this release

Release Info

Developer photocrati
Plugin Icon 128x128 NextGEN Gallery – WordPress Gallery Plugin
Version 3.0.9
Comparing to
See all releases

Code changes from version 3.0.8 to 3.0.9

Files changed (84) hide show
  1. changelog.txt +11 -0
  2. nggallery.php +2 -2
  3. non_pope/class.nextgen_shortcode_manager.php +1 -1
  4. products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php +8 -3
  5. products/photocrati_nextgen/modules/attach_to_post/package.module.attach_to_post.php +4 -2
  6. products/photocrati_nextgen/modules/attach_to_post/static/display_tab.js +47 -20
  7. products/photocrati_nextgen/modules/attach_to_post/static/display_tab.min.js +1 -1
  8. products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js +50 -46
  9. products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js +1 -1
  10. products/photocrati_nextgen/modules/attach_to_post/templates/display_settings_form.php +5 -1
  11. products/photocrati_nextgen/modules/lightbox/package.module.lightbox.php +7 -0
  12. products/photocrati_nextgen/modules/lightbox/static/simplelightbox/nextgen_simple_lightbox_init.js +14 -0
  13. products/photocrati_nextgen/modules/lightbox/static/simplelightbox/nextgen_simple_lightbox_init.min.js +1 -0
  14. products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simple-lightbox.js +581 -0
  15. products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simple-lightbox.min.js +1 -0
  16. products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simplelightbox.css +298 -0
  17. products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simplelightbox.min.css +1 -0
  18. products/photocrati_nextgen/modules/mvc/module.mvc.php +1 -1
  19. products/photocrati_nextgen/modules/mvc/package.module.mvc.php +2 -2
  20. products/photocrati_nextgen/modules/nextgen_admin/module.nextgen_admin.php +1 -1
  21. products/photocrati_nextgen/modules/nextgen_admin/static/nextgen_admin_page.css +9 -0
  22. products/photocrati_nextgen/modules/nextgen_admin/static/nextgen_admin_page.min.css +1 -1
  23. products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php +22 -2
  24. products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php +14 -7
  25. products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.css +4 -0
  26. products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.min.css +1 -1
  27. products/photocrati_nextgen/modules/nextgen_basic_album/static/nextgen_basic_album.css +125 -0
  28. products/photocrati_nextgen/modules/nextgen_basic_album/static/nextgen_basic_album.min.css +1 -1
  29. products/photocrati_nextgen/modules/nextgen_basic_album/templates/compact/default-view.php +51 -0
  30. products/photocrati_nextgen/modules/nextgen_basic_album/templates/extended/default-view.php +39 -0
  31. products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php +26 -2
  32. products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php +14 -7
  33. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/imagerotator.swf +0 -0
  34. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/jquery.cycle.all.js +0 -1548
  35. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/jquery.cycle.all.min.js +0 -1
  36. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/jquery.waitforimages.js +7 -5
  37. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.css +0 -67
  38. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.js +0 -55
  39. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.min.css +0 -1
  40. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.min.js +0 -1
  41. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.css +111 -0
  42. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.js +15 -0
  43. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.min.css +1 -0
  44. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.min.js +1 -0
  45. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/ajax-loader.gif +0 -0
  46. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/config.rb +10 -0
  47. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.eot +0 -0
  48. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.svg +14 -0
  49. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.ttf +0 -0
  50. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.woff +0 -0
  51. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.css +204 -0
  52. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.less +168 -0
  53. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.min.css +1 -0
  54. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.scss +194 -0
  55. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.css +119 -0
  56. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.js +3011 -0
  57. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.less +100 -0
  58. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.min.css +1 -0
  59. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.min.js +2 -0
  60. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.scss +100 -0
  61. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.css +210 -5
  62. products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.min.css +1 -1
  63. products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/index.php +46 -81
  64. products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/default-view.php +92 -0
  65. products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php +1 -1
  66. products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/package.module.nextgen_basic_imagebrowser.php +7 -1
  67. products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/static/style.css +36 -65
  68. products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/static/style.min.css +1 -1
  69. products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/{imagebrowser-simple-template.php → default-view.php} +1 -1
  70. products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php +1 -1
  71. products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php +1 -1
  72. products/photocrati_nextgen/modules/nextgen_basic_templates/module.nextgen_basic_templates.php +1 -1
  73. products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php +1 -1
  74. products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php +11 -3
  75. products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php +104 -32
  76. products/photocrati_nextgen/modules/nextgen_gallery_display/static/jquery.waitforimages.js +135 -0
  77. products/photocrati_nextgen/modules/nextgen_gallery_display/static/jquery.waitforimages.min.js +1 -0
  78. products/photocrati_nextgen/modules/nextgen_pagination/module.nextgen_pagination.php +1 -1
  79. products/photocrati_nextgen/modules/nextgen_pagination/static/style.css +36 -14
  80. products/photocrati_nextgen/modules/nextgen_pagination/static/style.min.css +1 -1
  81. products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php +14 -14
  82. products/photocrati_nextgen/modules/ngglegacy/admin/album.php +2 -2
  83. products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php +2 -1
  84. readme.txt +12 -1
changelog.txt CHANGED
@@ -1,6 +1,17 @@
1
  NextGEN Gallery
2
  by Imagely
3
 
 
 
 
 
 
 
 
 
 
 
 
4
  = V3.0.8 - 09.05.2018 =
5
  * Fixed: IGW broken with Chrome 69+
6
 
1
  NextGEN Gallery
2
  by Imagely
3
 
4
+ = V3.0.9 - 10.02.2018 =
5
+ * NEW: Added 2.0 template mechanism for basic galleries
6
+ * NEW: Simple Lightbox is the new default Lightbox
7
+ * Changed: Changed Javascript library and styling for basic slideshow
8
+ * Changed: New default template and styling for thumbnail galleries
9
+ * Changed: New default template and styling for imagebrowser galleries
10
+ * Changed: New default template and styling for compact albums
11
+ * Changed: New default template and styling for extended albums
12
+ * Changed: Changed implementation of "Number of Columns" setting
13
+ * Changed: Significantly simplified NextGEN default shortcodes
14
+
15
  = V3.0.8 - 09.05.2018 =
16
  * Fixed: IGW broken with Chrome 69+
17
 
nggallery.php CHANGED
@@ -4,7 +4,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
4
  /**
5
  * Plugin Name: NextGEN Gallery
6
  * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 22 million downloads.
7
- * Version: 3.0.8
8
  * Author: Imagely
9
  * Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/
10
  * Author URI: https://www.imagely.com
@@ -663,7 +663,7 @@ class C_NextGEN_Bootstrap
663
  define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products'));
664
  define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules'));
665
  define('NGG_PLUGIN_STARTED_AT', microtime());
666
- define('NGG_PLUGIN_VERSION', '3.0.8');
667
 
668
  if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
669
  define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax()));
4
  /**
5
  * Plugin Name: NextGEN Gallery
6
  * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 22 million downloads.
7
+ * Version: 3.0.9
8
  * Author: Imagely
9
  * Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/
10
  * Author URI: https://www.imagely.com
663
  define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products'));
664
  define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules'));
665
  define('NGG_PLUGIN_STARTED_AT', microtime());
666
+ define('NGG_PLUGIN_VERSION', '3.0.9');
667
 
668
  if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
669
  define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax()));
non_pope/class.nextgen_shortcode_manager.php CHANGED
@@ -85,7 +85,7 @@ class C_NextGen_Shortcode_Manager
85
 
86
  /**
87
  * We're parsing our own shortcodes because WP can't yet handle nested shortcodes
88
- * [ngg_images param="[slideshow]"]
89
  * @param $content
90
  */
91
  function fix_nested_shortcodes($content)
85
 
86
  /**
87
  * We're parsing our own shortcodes because WP can't yet handle nested shortcodes
88
+ * [ngg param="[slideshow]"]
89
  * @param $content
90
  */
91
  function fix_nested_shortcodes($content)
products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  define('NGG_ATTACH_TO_POST_SLUG', 'nextgen-attach_to_post');
 
4
 
5
  class M_Attach_To_Post extends C_Base_Module
6
  {
@@ -25,7 +26,7 @@ class M_Attach_To_Post extends C_Base_Module
25
  'photocrati-attach_to_post',
26
  'Attach To Post',
27
  'Provides the "Attach to Post" interface for displaying galleries and albums',
28
- '3.0.3',
29
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
30
  'Imagely',
31
  'https://www.imagely.com',
@@ -447,9 +448,13 @@ class M_Attach_To_Post extends C_Base_Module
447
  */
448
  function add_attach_to_post_tinymce_plugin($plugins)
449
  {
450
- $router = C_Router::get_instance();
451
  wp_enqueue_script('photocrati_ajax');
452
- $plugins[$this->attach_to_post_tinymce_plugin] = $router->get_static_url('photocrati-attach_to_post#ngg_attach_to_post_tinymce_plugin.js');
 
 
 
 
453
  return $plugins;
454
  }
455
 
1
  <?php
2
 
3
  define('NGG_ATTACH_TO_POST_SLUG', 'nextgen-attach_to_post');
4
+ define('NGG_ATTACH_TO_POST_VERSION', '3.0.0.5');
5
 
6
  class M_Attach_To_Post extends C_Base_Module
7
  {
26
  'photocrati-attach_to_post',
27
  'Attach To Post',
28
  'Provides the "Attach to Post" interface for displaying galleries and albums',
29
+ NGG_ATTACH_TO_POST_VERSION,
30
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
31
  'Imagely',
32
  'https://www.imagely.com',
448
  */
449
  function add_attach_to_post_tinymce_plugin($plugins)
450
  {
451
+ $router = C_Router::get_instance();
452
  wp_enqueue_script('photocrati_ajax');
453
+ $plugins[$this->attach_to_post_tinymce_plugin] = add_query_arg(
454
+ 'ver',
455
+ NGG_ATTACH_TO_POST_VERSION,
456
+ $router->get_static_url('photocrati-attach_to_post#ngg_attach_to_post_tinymce_plugin.js')
457
+ );
458
  return $plugins;
459
  }
460
 
products/photocrati_nextgen/modules/attach_to_post/package.module.attach_to_post.php CHANGED
@@ -269,6 +269,7 @@ class Mixin_Attach_To_Post extends Mixin
269
  } else {
270
  if (isset($_REQUEST['shortcode'])) {
271
  $params = str_replace('ngg_images', '', base64_decode($_REQUEST['shortcode']));
 
272
  $params = stripslashes($params);
273
  $params = str_replace(array('[', ']'), array('&#91;', '&#93;'), $params);
274
  $params = shortcode_parse_atts($params);
@@ -471,7 +472,7 @@ class Mixin_Attach_To_Post extends Mixin
471
  usort($display_types, array($this->object, '_display_type_list_sort'));
472
  wp_enqueue_script('ngg_display_tab', $this->get_static_url('photocrati-attach_to_post#display_tab.js'), array('jquery', 'backbone', 'underscore.string', 'photocrati_ajax'), NGG_SCRIPT_VERSION);
473
  $this->object->mark_script('ngg_display_tab');
474
- wp_localize_script('ngg_display_tab', 'igw_data', array('displayed_gallery_preview_url' => $settings->gallery_preview_url, 'displayed_gallery' => $this->object->_displayed_gallery->get_entity(), 'sources' => $sources->get_all(), 'gallery_primary_key' => $gallery_mapper->get_primary_key_column(), 'galleries' => $gallery_mapper->find_all(), 'albums' => $album_mapper->find_all(), 'tags' => $tags, 'display_types' => $display_types, 'sec_token' => $security->get_request_token('nextgen_edit_displayed_gallery')->get_json(), 'image_primary_key' => $image_mapper->get_primary_key_column(), 'display_type_priority_base' => NGG_DISPLAY_PRIORITY_BASE, 'display_type_priority_step' => NGG_DISPLAY_PRIORITY_STEP, 'shortcode_ref' => isset($_REQUEST['ref']) ? floatval($_REQUEST['ref']) : null, 'i18n' => array('sources' => __('Are you inserting a Gallery (default), an Album, or images based on Tags?', 'nggallery'), 'optional' => __('(optional)', 'nggallery'), 'slug_tooltip' => __('Sets an SEO-friendly name to this gallery for URLs. Currently only in use by the Pro Lightbox', 'nggallery'), 'slug_label' => __('Slug', 'nggallery'), 'no_entities' => __('No entities to display for this source', 'nggallery'), 'exclude_question' => __('Exclude?', 'nggallery'), 'select_gallery' => __('Select a Gallery', 'nggallery'), 'galleries' => __('Select one or more galleries (click in box to see available galleries).', 'nggallery'), 'albums' => __('Select one album (click in box to see available albums).', 'nggallery'))));
475
  }
476
  function start_resource_monitoring()
477
  {
@@ -791,6 +792,7 @@ class Mixin_Attach_To_Post_Display_Tab extends Mixin
791
  $model = $form->get_model();
792
  $current = $this->object->is_displayed_gallery_using_display_type($model->name);
793
  $css_class = $current ? 'display_settings_form' : 'display_settings_form hidden';
 
794
  // If this form is used to provide the display settings for the current
795
  // displayed gallery, then we need to override the forms settings
796
  // with the displayed gallery settings
@@ -799,7 +801,7 @@ class Mixin_Attach_To_Post_Display_Tab extends Mixin
799
  $model->settings = $settings;
800
  }
801
  // Output the display settings form
802
- $retval[] = $this->object->render_partial('photocrati-attach_to_post#display_settings_form', array('settings' => $form->render(), 'display_type_name' => $model->name, 'css_class' => $css_class), TRUE);
803
  }
804
  // In addition, we'll render a form that will be displayed when no
805
  // display type has been selected in the Attach to Post interface
269
  } else {
270
  if (isset($_REQUEST['shortcode'])) {
271
  $params = str_replace('ngg_images', '', base64_decode($_REQUEST['shortcode']));
272
+ $params = str_replace('ngg', '', base64_decode($_REQUEST['shortcode']));
273
  $params = stripslashes($params);
274
  $params = str_replace(array('[', ']'), array('&#91;', '&#93;'), $params);
275
  $params = shortcode_parse_atts($params);
472
  usort($display_types, array($this->object, '_display_type_list_sort'));
473
  wp_enqueue_script('ngg_display_tab', $this->get_static_url('photocrati-attach_to_post#display_tab.js'), array('jquery', 'backbone', 'underscore.string', 'photocrati_ajax'), NGG_SCRIPT_VERSION);
474
  $this->object->mark_script('ngg_display_tab');
475
+ wp_localize_script('ngg_display_tab', 'igw_data', array('displayed_gallery_preview_url' => $settings->gallery_preview_url, 'displayed_gallery' => $this->object->_displayed_gallery->get_entity(), 'sources' => $sources->get_all(), 'gallery_primary_key' => $gallery_mapper->get_primary_key_column(), 'galleries' => $gallery_mapper->find_all(), 'albums' => $album_mapper->find_all(), 'tags' => $tags, 'display_types' => $display_types, 'sec_token' => $security->get_request_token('nextgen_edit_displayed_gallery')->get_json(), 'image_primary_key' => $image_mapper->get_primary_key_column(), 'display_type_priority_base' => NGG_DISPLAY_PRIORITY_BASE, 'display_type_priority_step' => NGG_DISPLAY_PRIORITY_STEP, 'shortcode_ref' => isset($_REQUEST['ref']) ? floatval($_REQUEST['ref']) : null, 'shortcode_defaults' => array('order_by' => $settings->galSort, 'order_direction' => $settings->galSortDir, 'returns' => 'included', 'maximum_entity_count' => $settings->maximum_entity_count), 'shortcode_attr_replacements' => array('source' => 'src', 'container_ids' => 'ids', 'display_type' => 'display'), 'i18n' => array('sources' => __('Are you inserting a Gallery (default), an Album, or images based on Tags?', 'nggallery'), 'optional' => __('(optional)', 'nggallery'), 'slug_tooltip' => __('Sets an SEO-friendly name to this gallery for URLs. Currently only in use by the Pro Lightbox', 'nggallery'), 'slug_label' => __('Slug', 'nggallery'), 'no_entities' => __('No entities to display for this source', 'nggallery'), 'exclude_question' => __('Exclude?', 'nggallery'), 'select_gallery' => __('Select a Gallery', 'nggallery'), 'galleries' => __('Select one or more galleries (click in box to see available galleries).', 'nggallery'), 'albums' => __('Select one album (click in box to see available albums).', 'nggallery'))));
476
  }
477
  function start_resource_monitoring()
478
  {
792
  $model = $form->get_model();
793
  $current = $this->object->is_displayed_gallery_using_display_type($model->name);
794
  $css_class = $current ? 'display_settings_form' : 'display_settings_form hidden';
795
+ $defaults = $model->settings;
796
  // If this form is used to provide the display settings for the current
797
  // displayed gallery, then we need to override the forms settings
798
  // with the displayed gallery settings
801
  $model->settings = $settings;
802
  }
803
  // Output the display settings form
804
+ $retval[] = $this->object->render_partial('photocrati-attach_to_post#display_settings_form', array('settings' => $form->render(), 'display_type_name' => $model->name, 'css_class' => $css_class, 'defaults' => $defaults), TRUE);
805
  }
806
  // In addition, we'll render a form that will be displayed when no
807
  // display type has been selected in the Attach to Post interface
products/photocrati_nextgen/modules/attach_to_post/static/display_tab.js CHANGED
@@ -298,7 +298,7 @@ jQuery(function($){
298
  * Ngg.DisplayTab.Models.Displayed_Gallery
299
  * Represents the displayed gallery being edited or created by the Display Tab
300
  **/
301
- Ngg.DisplayTab.Models.Displayed_Gallery = Backbone.Model.extend({
302
  defaults: {
303
  source: null,
304
  container_ids: [],
@@ -310,17 +310,30 @@ jQuery(function($){
310
  slug: null
311
  },
312
 
313
- to_shortcode: function(){
314
  retval = null;
315
 
316
- var get_shortcode_attr= function(object, key){
317
  var val = object[key];
 
 
 
 
 
 
 
318
  if (_.isArray(val)) {
319
  val = val.length > 0 ? val.join(',') : null;
320
  }
321
  if (val) {
322
  val = val.toString().replace('[', '&#91;');
323
  val = val.toString().replace(']', '&#93;');
 
 
 
 
 
 
324
  return key + '="' + val +'"';
325
  }
326
  };
@@ -331,8 +344,9 @@ jQuery(function($){
331
  obj.display_type = display_type.get_shortcode_value();
332
 
333
  // Convert the displayed gallery to a shortcode
334
- var snippet = '[ngg_images';
335
  var val = null;
 
336
  if ((val = get_shortcode_attr(obj, 'source'))) snippet += ' ' + val;
337
  if ((val = get_shortcode_attr(obj, 'container_ids'))) snippet += ' ' + val;
338
  if ((val = get_shortcode_attr(obj, 'entity_ids'))) snippet += ' ' + val;
@@ -352,15 +366,21 @@ jQuery(function($){
352
  'ID'
353
  ];
354
 
355
- if (skipped.indexOf(key) > -1) continue;
 
 
356
  else if (key == 'display_settings') {
357
  for (var display_key in obj[key]) {
358
- if ((val = get_shortcode_attr(obj[key], display_key))) snippet += ' ' + val;
 
 
359
  }
360
  }
361
  else {
362
  val = get_shortcode_attr(obj, key);
363
- if (val) snippet += ' ' + val;
 
 
364
  }
365
  }
366
 
@@ -498,15 +518,14 @@ jQuery(function($){
498
  return success;
499
  },
500
 
501
-
502
- get_shortcode_value: function(){
503
  var retval = this.id;
504
 
505
- // TODO: Uncomment for a later version
506
- // var aliases = this.get('aliases');
507
- // if (_.isArray(aliases) && aliases.length > 0) {
508
- // retval = aliases[0];
509
- // }
510
  return retval;
511
  }
512
  });
@@ -1472,23 +1491,31 @@ jQuery(function($){
1472
  close_attach_to_post_window();
1473
  },
1474
 
1475
- set_display_settings: function(){
1476
  var display_type = this.displayed_gallery.get('display_type');
1477
  if (display_type) {
1478
  // Collect display settings
1479
- var form = $("form[rel='"+display_type+"']");
1480
- var display_settings = (function(item){
 
1481
  var obj = {};
1482
  $.each(item.serializeArray(), function(key, item) {
1483
  var parts = item.name.split('[');
1484
  var current_obj = obj;
1485
- for (var i=0; i<parts.length; i++) {
1486
  var part = parts[i].replace(/\]$/, '');
 
 
 
 
 
 
1487
  if (!current_obj[part]) {
1488
- if (i == parts.length-1)
1489
  current_obj[part] = item.value;
1490
- else
1491
  current_obj[part] = {};
 
1492
  }
1493
  current_obj = current_obj[part];
1494
  }
298
  * Ngg.DisplayTab.Models.Displayed_Gallery
299
  * Represents the displayed gallery being edited or created by the Display Tab
300
  **/
301
+ Ngg.DisplayTab.Models.Displayed_Gallery = Backbone.Model.extend({
302
  defaults: {
303
  source: null,
304
  container_ids: [],
310
  slug: null
311
  },
312
 
313
+ to_shortcode: function() {
314
  retval = null;
315
 
316
+ var get_shortcode_attr = function(object, key) {
317
  var val = object[key];
318
+
319
+ // Prevent default shortcode attributes from being included
320
+ if (typeof igw_data.shortcode_defaults[key] !== 'undefined'
321
+ && igw_data.shortcode_defaults[key] == val) {
322
+ val = null;
323
+ }
324
+
325
  if (_.isArray(val)) {
326
  val = val.length > 0 ? val.join(',') : null;
327
  }
328
  if (val) {
329
  val = val.toString().replace('[', '&#91;');
330
  val = val.toString().replace(']', '&#93;');
331
+
332
+ // Some keys have aliases to be used when writing shortcodes
333
+ if (typeof igw_data.shortcode_attr_replacements[key] !== 'undefined') {
334
+ key = igw_data.shortcode_attr_replacements[key];
335
+ }
336
+
337
  return key + '="' + val +'"';
338
  }
339
  };
344
  obj.display_type = display_type.get_shortcode_value();
345
 
346
  // Convert the displayed gallery to a shortcode
347
+ var snippet = '[ngg';
348
  var val = null;
349
+
350
  if ((val = get_shortcode_attr(obj, 'source'))) snippet += ' ' + val;
351
  if ((val = get_shortcode_attr(obj, 'container_ids'))) snippet += ' ' + val;
352
  if ((val = get_shortcode_attr(obj, 'entity_ids'))) snippet += ' ' + val;
366
  'ID'
367
  ];
368
 
369
+ if (skipped.indexOf(key) > -1) {
370
+ continue;
371
+ }
372
  else if (key == 'display_settings') {
373
  for (var display_key in obj[key]) {
374
+ if ((val = get_shortcode_attr(obj[key], display_key))) {
375
+ snippet += ' ' + val;
376
+ }
377
  }
378
  }
379
  else {
380
  val = get_shortcode_attr(obj, key);
381
+ if (val) {
382
+ snippet += ' ' + val;
383
+ }
384
  }
385
  }
386
 
518
  return success;
519
  },
520
 
521
+ get_shortcode_value: function() {
 
522
  var retval = this.id;
523
 
524
+ var aliases = this.get('aliases');
525
+ if (_.isArray(aliases) && aliases.length > 0) {
526
+ retval = aliases[0];
527
+ }
528
+
529
  return retval;
530
  }
531
  });
1491
  close_attach_to_post_window();
1492
  },
1493
 
1494
+ set_display_settings: function() {
1495
  var display_type = this.displayed_gallery.get('display_type');
1496
  if (display_type) {
1497
  // Collect display settings
1498
+ var form = $("form[rel='" + display_type + "']");
1499
+ var defaults = form.data('defaults')
1500
+ var display_settings = (function(item) {
1501
  var obj = {};
1502
  $.each(item.serializeArray(), function(key, item) {
1503
  var parts = item.name.split('[');
1504
  var current_obj = obj;
1505
+ for (var i = 0; i < parts.length; i++) {
1506
  var part = parts[i].replace(/\]$/, '');
1507
+
1508
+ // Skip settings that haven't been changed from the default
1509
+ if (defaults[part] == item.value) {
1510
+ return true;
1511
+ }
1512
+
1513
  if (!current_obj[part]) {
1514
+ if (i == (parts.length - 1)) {
1515
  current_obj[part] = item.value;
1516
+ } else {
1517
  current_obj[part] = {};
1518
+ }
1519
  }
1520
  current_obj = current_obj[part];
1521
  }
products/photocrati_nextgen/modules/attach_to_post/static/display_tab.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(e){var t={Models:{},Views:{}};t.Models.SelectableItems=Backbone.Collection.extend({selected:function(){return this.filter(function(e){return 1==e.get("selected")})},deselect_all:function(){this.each(function(e){e.set("selected",!1)})},selected_ids:function(){return _.pluck(this.selected(),"id")},select:function(e){_.isArray(e)||(e=[e]),this.each(function(t){_.indexOf(e,t.id)>=0&&t.set("selected",!0)}),this.trigger("selected")}}),t.Views.SelectTag=Backbone.View.extend({tagName:"select",collection:null,multiple:!1,value_field:"id",text_field:"title",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.collection.on("add",this.render_new_option,this),this.collection.on("remove",this.remove_existing_option,this),this.collection.on("reset",this.empty_list,this)},events:{change:"selection_changed"},empty_list:function(){this.$el.empty()},render_new_option:function(e){this.$el.append(new this.Option({model:e,value_field:this.value_field,text_field:this.text_field}).render().el)},remove_existing_option:function(e){this.$el.find("option[value='"+e.id+"']").remove()},selection_changed:function(){var t=_.map(this.$el.find(":selected"),function(t){return e(t).val()});this.collection.each(function(e){_.indexOf(t,e.id)>=0||_.indexOf(t,e.id.toString())>=0?e.set("selected",!0):e.set("selected",!1)}),this.collection.trigger("selected")},render:function(){return this.$el.empty(),this.multiple&&(this.$el.prop("multiple",!0),this.$el.attr("multiple","multiple")),this.collection.each(function(e){var t=new this.Option({model:e,value_field:this.value_field,text_field:this.text_field});this.$el.append(t.render().el)},this),this.width&&this.$el.width(this.width),this},Option:Backbone.View.extend({tagName:"option",model:null,initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change",this.render,this)},render:function(){var e=this;return this.$el.html(this.model.get(this.text_field).replace(/\\&/g,"&").replace(/\\'/g,"'")),this.$el.prop({value:"id"==this.value_field?this.model.id:this.model.get(this.value_field)}),1==e.model.get("selected")&&this.$el.prop("selected",!0).attr("selected","selected"),this}})}),t.Views.Chosen=Backbone.View.extend({tagName:"span",initialize:function(e){this.options=e||{},this.collection=this.options.collection,this.select_tag=new t.Views.SelectTag(this.options),this.collection.on("change",this.selection_changed,this)},selection_changed:function(e){_.isUndefined(e.changed.selected)&&this.render()},render:function(){if(this.$el.append(this.select_tag.render().$el),this.options.width&&this.select_tag.$el.width(this.options.width),this.select2_opts={placeholder:this.options.placeholder},this.select_tag.$el.select2(this.select2_opts),this.options.multiple){var e=[];_.each(this.collection.selected_ids(),function(t){e.push(t.toString())}),0==e.length&&(e=""),this.select_tag.$el.select2("val",e)}return this}}),t.DisplayTab={Models:{},Views:{},App:{}},t.Models.Remote_Collection=t.Models.SelectableItems.extend({fetch_limit:5e3,in_progress:!1,fetch_url:photocrati_ajax.url,action:"",extra_data:{},_create_request:function(e,t){var i=_.extend({},igw_data.sec_token,{action:this.action,limit:e||this.fetch_limit,offset:t||0});for(var s in this.extra_data){var l=this.extra_data[s];void 0===i[s]&&(i[s]={}),void 0!==l.toJSON&&(l=l.toJSON()),i[s]=_.extend(i[s],l)}return i},_add_item:function(e){this.push(e)},fetch:function(t,i){var s=this;this.in_progress=!0,e.post(this.fetch_url,this._create_request(t,i),function(e){"undefined"!=typeof _&&(_.isObject(e)||(e=JSON.parse(e)),e.items&&(_.each(e.items,function(e){s._add_item(e)}),e.total>=e.limit+e.offset?s.fetch(e.limit,e.offset+e.limit):(s.in_progress=!1,s.trigger("finished_fetching"))))})}}),t.DisplayTab.Models.Displayed_Gallery=Backbone.Model.extend({defaults:{source:null,container_ids:[],entity_ids:[],display_type:null,display_settings:{},exclusions:[],sortorder:[],slug:null},to_shortcode:function(){retval=null;var e=function(e,t){var i=e[t];if(_.isArray(i)&&(i=i.length>0?i.join(","):null),i)return i=i.toString().replace("[","&#91;"),i=i.toString().replace("]","&#93;"),t+'="'+i+'"'},i=t.DisplayTab.instance.display_types.find_by_name_or_alias(this.get("display_type")),s=this.toJSON();s.display_type=i.get_shortcode_value();var l="[ngg_images",n=null;(n=e(s,"source"))&&(l+=" "+n),(n=e(s,"container_ids"))&&(l+=" "+n),(n=e(s,"entity_ids"))&&(l+=" "+n),(n=e(s,"exclusions"))&&(l+=" "+n),(n=e(s,"sortorder"))&&(l+=" "+n);for(var a in s){if(!(["source","container_ids","entity_ids","exclusions","sortorder","__defaults_set","id_field","post_category","ID"].indexOf(a)>-1))if("display_settings"==a)for(var r in s[a])(n=e(s[a],r))&&(l+=" "+n);else(n=e(s,a))&&(l+=" "+n)}return l+="]"}}),t.DisplayTab.Models.Source=Backbone.Model.extend({idAttribute:"name",defaults:{title:"",name:"",selected:!1}}),t.DisplayTab.Models.Source_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Source,selected_value:function(){var e=null,t=this.selected();return t.length>0&&(e=t[0].get("name")),e},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Gallery=Backbone.Model.extend({idAttribute:igw_data.gallery_primary_key,defaults:{title:"",name:""}}),t.DisplayTab.Models.Gallery_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Gallery,action:"get_existing_galleries"}),t.DisplayTab.Models.Album=Backbone.Model.extend({defaults:{title:"",name:""}}),t.DisplayTab.Models.Album_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Album,action:"get_existing_albums"}),t.DisplayTab.Models.Tag=Backbone.Model.extend({defaults:{title:""}}),t.DisplayTab.Models.Tag_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Tag,action:"get_existing_image_tags"}),t.DisplayTab.Models.Display_Type=Backbone.Model.extend({idAttribute:"name",defaults:{title:""},is_compatible_with_source:function(e){var t=!0;for(index in e.get("returns")){var i=e.get("returns")[index];if(_.indexOf(this.get("entity_types"),i)<0){t=!1;break}}return t},get_shortcode_value:function(){return this.id}}),t.DisplayTab.Models.Display_Type_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Display_Type,selected_value:function(){var e=this.selected();return e.length>0?e[0].get("name"):null},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Entity=Backbone.Model.extend({entity_id:function(){return this.get(this.get("id_field"))},is_excluded:function(){return current_value=this.get("exclude"),!_.isUndefined(current_value)&&(_.isBoolean(current_value)?current_value:0!=parseInt(current_value))},is_included:function(){return!this.is_excluded()},is_gallery:function(){return retval=!1,1==this.get("is_gallery")&&(retval=!0),retval},is_album:function(){return retval=!1,1==this.get("is_album")&&(retval=!0),retval},is_image:function(){return!this.is_album()&&!this.is_gallery()},alttext:function(){return this.is_image()?this.get("alttext"):this.is_gallery()?this.get("title"):this.is_album()?this.get("name"):void 0}}),t.DisplayTab.Models.Entity_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Entity,action:"get_displayed_gallery_entities",_add_item:function(e){e.exclude=1==parseInt(e.exclude),e.is_gallery=1==parseInt(e.is_gallery),e.is_album=1==parseInt(e.is_album),this.push(e)},entity_ids:function(){return this.map(function(e){return e.entity_id()})},included_ids:function(){return _.compact(this.map(function(e){if(e.is_included())return e.entity_id()}))},excluded_ids:function(){return _.compact(this.map(function(e){if(!e.is_included())return e.entity_id()}))}}),t.DisplayTab.Models.SortOrder=Backbone.Model.extend({}),t.DisplayTab.Models.SortOrder_Options=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.SortOrder}),t.DisplayTab.Models.SortDirection=Backbone.Model.extend({}),t.DisplayTab.Models.SortDirection_Options=Backbone.Collection.extend({model:t.DisplayTab.Models.SortDirection}),t.DisplayTab.Models.Slug=Backbone.Model.extend({}),t.DisplayTab.Views.Source_Config=Backbone.View.extend({el:"#source_configuration",selected_view:null,initialize:function(){this.sources=t.DisplayTab.instance.sources,this.sources.on("selected",this.render,this),_.bindAll(this,"render"),this.render()},render:function(){var e=new t.Views.Chosen({id:"source_select",collection:this.sources,placeholder:"Select a source",width:500}),i=_.template('<tr><td id="source_column"></td><td><label><%- sources %></label></td></tr>');this.$el.html(i(igw_data.i18n)),this.$el.find("#source_column").append(e.render().el);var s=this.sources.selected();if(s.length){var l=_.str.capitalize(s.pop().id)+"Source";if(void 0!==t.DisplayTab.Views[l]){var n=new t.DisplayTab.Views[l];this.$el.append(n.render().el)}}return this}}),t.DisplayTab.Views.Slug_Config=Backbone.View.extend({el:"#slug_configuration",selected_view:null,initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.slug=t.DisplayTab.instance.displayed_gallery.get("slug"),this.render()},render:function(){var t=this,i=e("<input>").prop({type:"text",name:"slug",value:this.slug,placeholder:igw_data.i18n.optional,id:"field_slug"});i.on("input",function(){e(this).val(e(this).val().replace(/\s|\?|\\|\/|&|=|\[|]|#/gm,"-")),t.displayed_gallery.set("slug",e(this).val())}),i.on("change",function(){e(this).val(e(this).val().replace(/^-*/gm,"").replace(/-*$/gm,"")),t.displayed_gallery.set("slug",e(this).val())});var s=_.template('<tr><td id="slug_label"><label for="field_slug" class="tooltip" title="<%- slug_tooltip %><"><<%- slug_label %></label></td><td id="slug_column"></td></tr>');return this.$el.append(s(igw_data.i18n)),this.$el.find("#slug_column").append(i),this}}),t.DisplayTab.Views.Display_Type_Selector=Backbone.View.extend({el:"#display_type_selector",initialize:function(){this.display_types=t.DisplayTab.instance.display_types,this.display_type_order_base=t.DisplayTab.instance.display_type_order_base,this.display_type_order_step=t.DisplayTab.instance.display_type_order_step,this.sources=t.DisplayTab.instance.sources,this.render()},selection_changed:function(t){var i=null;this.display_types.each(function(e){e.get("name")==t?(i=e,e.set("selected",!0)):e.set("selected",!1)}),e(".display_settings_form").each(function(){$this=e(this),$this.attr("rel")==t?$this.removeClass("hidden"):$this.addClass("hidden")})},render:function(){var t=this.sources.selected(),i=0;t=t.length>0&&t[0],this.$el.empty();var s=this.display_type_order_base,l=this.display_type_order_step;return this.display_types.each(function(n){if(t&&!n.is_compatible_with_source(t)){var a=e("#display_type_tab_content:visible");if(0==a.length)return;if("hidden"==a.css("visibility"))return}var r=new this.DisplayType;r.model=n,r.on("selected",this.selection_changed,this),this.display_types.selected_value()||(n.set("selected",!0),this.selection_changed(n.id));var o=n.get("view_order");o||(o=s);var d=Math.floor(o/l);i=d,this.$el.append(r.render().el)},this),this.$el.append('<li class="clear" style="height: 10px; list-style-type:none" />'),this},DisplayType:Backbone.View.extend({className:"display_type_preview",events:{click:"clicked"},clicked:function(e){this.trigger("selected",this.model.get("name"))},render:function(){var t=e('<label style="display: block; cursor: pointer;"/>').addClass("image_container"),i=this.model.get("installed_at_version"),s=photocrati_ajax.wp_plugins_url,l=this.model.get("preview_image_relpath");void 0===i&&(s=photocrati_ajax.wp_site_url,s=s.replace(/(.*)\/index\.php$/i,"$1"),0==l.indexOf("/nextgen-gallery")&&(s=photocrati_ajax.wp_plugins_url));var n=e("<img/>").attr({src:s+"/"+l,title:this.model.get("title"),alt:this.model.get("alt")}),a=e("<div/>"),r=e("<input/>").prop({type:"radio",value:this.model.get("name"),title:this.model.get("title"),name:"display_type",checked:this.model.get("selected")}),o=e("<br>");return t.append(a),t.append(n),t.append("<br>"),t.append(this.model.get("title").replace(/nextgen /gi,"")),a.append(r),a.append(o),this.$el.append(t),this}})}),t.DisplayTab.Views.Preview_Area=Backbone.View.extend({el:"#preview_area",initialize:function(){this.entities=t.DisplayTab.instance.entities,this.sources=t.DisplayTab.instance.sources,this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entity_list=e("<ul/>").attr("id","entity_list").append('<li class="clear"/>'),this.entities.on("add",this.render_entity,this),this.entities.on("remove",this.remove_entity,this),this.entities.on("reset",this.entities_reset,this),this.entities.on("change:sortorder",function(e){this.entities.remove(e,{silent:!0}),this.entities.add(e,{at:e.changed.sortorder,silent:!0}),this.displayed_gallery.set("sortorder",this.entities.entity_ids()),"undefined"!=typeof console&&void 0!==console.log&&console.log(this.entities.entity_ids()),this.displayed_gallery.set("order_by","sortorder")},this),this.sources.on("selected",this.render,this),this.render()},events:{opened:"entities_reset"},entities_reset:function(e){this.entities.reset(null,{silent:!0}),this.entity_list.empty().append('<li class="clear"/>'),this.entities.in_progress||this.entities.fetch()},render_entity:function(e){var t=new this.EntityElement({model:e});this.entity_list.find(".clear").before(t.render().$el),t.$el.css("visibility","hidden"),setTimeout(function(){t.$el.css("visibility","visible")},0),1==this.$el.find(".no_entities").length?this.render():this.entities.length>1&&this.entity_list.sortable("refresh")},remove_entity:function(e){var t=this.id=e.get("id_field")+"_"+e.entity_id();this.entity_list.find("#"+t).remove();this.entity_list.sortable("refresh"),0==this.entities.length&&this.render_no_images_notice()},render_no_images_notice:function(){this.$el.empty(),this.$el.append("<p class='no_entities'>"+igw_data.i18n.no_entities+"</p>")},render:function(){return this.$el.empty(),this.entities.length>0&&this.displayed_gallery.get("container_ids").length>0?(this.$el.append(new this.RefreshButton({entities:this.entities}).render().el),this.$el.append(new this.SortButtons({entities:this.entities,displayed_gallery:this.displayed_gallery,sources:this.sources}).render().el),this.$el.append(new this.ExcludeButtons({entities:this.entities}).render().el),this.$el.append(this.entity_list),this.entity_list.sortable({placeholder:"placeholder",forcePlaceholderSize:!0,containment:"parent",opacity:.7,revert:!0,dropOnEmpty:!0,start:function(e,t){return t.placeholder.css({height:t.item.height()}),!0},stop:function(e,t){t.item.trigger("drop",t.item.index())}}),this.entity_list.disableSelection()):this.render_no_images_notice(),this},RefreshButton:Backbone.View.extend({className:"refresh_button button-primary",tagName:"input",label:"Refresh",events:{click:"clicked"},clicked:function(){this.entities.reset()},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){return this.$el.attr({value:this.label,type:"button"}),this}}),ExcludeButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){this.$el.empty(),this.$el.append('<span style="margin-right: 8px;">Exclude:</span>');var e=new this.Button({value:!0,text:"All",entities:this.entities});this.$el.append(e.render().el),this.$el.append('<span class="separator">|</span>');var t=new this.Button({value:!1,text:"None",entities:this.entities});return this.$el.append(t.render().el),this},Button:Backbone.View.extend({tagName:"a",value:1,text:"",events:{click:"clicked"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},clicked:function(e){e.preventDefault(),this.entities.each(function(e){e.set("exclude",this.value)},this)},render:function(){return this.$el.text(this.text).attr("href","#"),this}})}),SortButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.sortorder_options=new t.DisplayTab.Models.SortOrder_Options,this.sortorder_options.on("change:selected",this.sortoption_changed,this),this.sortdirection_options=new t.DisplayTab.Models.SortDirection_Options([{value:"ASC",title:"Ascending",selected:"ASC"==this.displayed_gallery.get("order_direction")},{value:"DESC",title:"Descending",selected:"DESC"==this.displayed_gallery.get("order_direction")}]),this.sortdirection_options.on("change:selected",this.sortdirection_changed,this),this.displayed_gallery.on("change:order_by",this.displayed_gallery_order_changed,this),this.displayed_gallery.on("change.order_direction",this.displayed_gallery_order_dir_changed,this)},populate_sorting_fields:function(){var e=this.sources.selected().pop().get("returns");-1!==_.indexOf(e,"image")?this.fill_image_sortorder_options():this.fill_gallery_sortorder_options()},create_sortorder_option:function(e,i){return new t.DisplayTab.Models.SortOrder({name:e,title:i,value:e,selected:this.displayed_gallery.get("order_by")==e})},fill_image_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option(t.DisplayTab.instance.image_key,"Image ID")),this.sortorder_options.push(this.create_sortorder_option("filename","Filename")),this.sortorder_options.push(this.create_sortorder_option("alttext","Alt/Title Text")),this.sortorder_options.push(this.create_sortorder_option("imagedate","Date/Time"))},fill_gallery_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option("name","Name")),this.sortorder_options.push(this.create_sortorder_option("galdesc","Description"))},displayed_gallery_order_changed:function(e){this.sortorder_options.findWhere({value:e.get("order_by")}).set("selected",!0)},displayed_gallery_order_dir_changed:function(e){this.sortdirection_options.findWhere({value:e.get("order_direction")}).set("selected",!0)},sortoption_changed:function(t){this.sortorder_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("sortorder",[]);var i=t.get("value");0==t.get("value").length&&(i="sortorder"),this.displayed_gallery.set("order_by",i),this.entities.reset(),this.$el.find("a.sortorder").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},sortdirection_changed:function(t){this.sortdirection_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("order_direction",t.get("value")),this.entities.reset(),this.$el.find("a.sortdirection").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},render:function(){return this.$el.empty(),this.populate_sorting_fields(),this.$el.append('<span style="margin-right: 8px;">Sort By:</span>'),this.sortorder_options.each(function(e,t){var i=new this.Button({model:e,className:"sortorder"});this.$el.append(i.render().el),this.sortorder_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this.$el.append('<span style="margin: 0 8px 0 40px;">Order By:</span>'),this.sortdirection_options.each(function(e,t){var i=new this.Button({model:e,className:"sortdirection"});this.$el.append(i.render().el),this.sortdirection_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this},Button:Backbone.View.extend({tagName:"a",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},events:{click:"clicked"},clicked:function(e){e.preventDefault(),this.model.set("selected",!0)},render:function(){return this.$el.prop({value:this.model.get("value"),href:"#"}),this.$el.text(this.model.get("title")),this.model.get("selected")&&this.$el.addClass("selected"),this}})}),EntityElement:Backbone.View.extend({tagName:"li",events:{drop:"item_dropped"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.initTime=(new Date).getTime(),this.model.on("change",this.render,this),0==this.model.get("sortorder")&&this.model.set("sortorder",-1,{silent:!0}),this.id=this.model.get("id_field")+"_"+this.model.entity_id()},item_dropped:function(e,i){t.DisplayTab.instance.displayed_gallery.set("order_by","sortorder"),this.model.set("sortorder",i)},render:function(){this.$el.empty();var t=e("<div/>").addClass("preview_item"),i=e("<div/>").addClass("image_container"),s=this.model.alttext().replace(/\\&/g,"&").replace(/\\'/g,"'"),l=this.initTime;i.attr({title:s,style:"background-image: url('"+this.model.get("thumb_url")+"?timestamp"+l+"')"}),this.$el.append(t).addClass("ui-state-default"),t.append(i);var n=e("<div/>").addClass("exclude_container"),a=e("<label/>");a.append(igw_data.i18n.exclude_question);var r=new this.ExcludeCheckbox({model:this.model});return a.append(r.render().el),n.append(a),t.append(n),this},ExcludeCheckbox:Backbone.View.extend({tagName:"input",events:{change:"entity_excluded"},type_set:!1,entity_excluded:function(e){this.model.set("exclude",e.target.checked)},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change:exclude",this.render,this)},render:function(){return this.type_set||(this.$el.attr("type","checkbox"),this.type_set=!0),this.model.is_excluded()?this.$el.prop("checked",!0):this.$el.prop("checked",!1),this}})})}),t.DisplayTab.Views.GalleriesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.galleries=t.DisplayTab.instance.galleries},render:function(){var i=new t.Views.Chosen({collection:this.galleries,placeholder:igw_data.i18n.select_gallery,multiple:!0,width:500}),s=e('<tr><td class="galleries_column"></td><td><label>'+igw_data.i18n.galleries+"</label></td></tr>");return this.$el.empty(),this.$el.append(s),this.$el.find(".galleries_column").append(i.render().el),this}}),t.DisplayTab.Views.AlbumsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.albums=t.DisplayTab.instance.albums},render:function(){var e=new t.Views.Chosen({collection:this.albums,multiple:!0,placeholder:"Select an album",text_field:"name",width:500});return this.$el.empty(),this.$el.append('<tr><td class="albums_column"></td><td><label>'+igw_data.i18n.albums+"</label></td></tr>"),this.$el.find(".albums_column").append(e.render().el),this}}),t.DisplayTab.Views.TagsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.tags=t.DisplayTab.instance.tags},render:function(){var e=new t.Views.Chosen({collection:this.tags,multiple:!0,placeholder:"Select a tag",text_field:"name",width:500});return this.$el.empty(),this.$el.append('<tr><td class="tags_column"></td><td><label>Tags</label></td></tr>'),this.$el.find(".tags_column").append(e.render().el),this}}),t.DisplayTab.Views.Recent_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td class="recent_images_column"></td><td><label># of Images To Display</label></td></tr>'),this.$el.find(".recent_images_column").append(i),this}}),t.DisplayTab.Views.Random_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td class="random_images_column"></td><td><label># of Images To Display</label></td></tr>'),this.$el.find(".random_images_column").append(i),this}}),t.DisplayTab.Views.SaveButton=Backbone.View.extend({el:"#save_displayed_gallery",errors_el:"#errors",displayed_gallery:null,events:{click:"clicked"},initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entities=t.DisplayTab.instance.entities,this.render()},clicked:function(){this.set_display_settings(),insert_into_editor(this.displayed_gallery.to_shortcode(),this.displayed_gallery.id?this.displayed_gallery.id:igw_data.shortcode_ref),close_attach_to_post_window()},set_display_settings:function(){var t=this.displayed_gallery.get("display_type");if(t){var i=e("form[rel='"+t+"']"),s=function(t){var i={};return e.each(t.serializeArray(),function(e,t){for(var s=t.name.split("["),l=i,n=0;n<s.length;n++){var a=s[n].replace(/\]$/,"");l[a]||(n==s.length-1?l[a]=t.value:l[a]={}),l=l[a]}}),i}(i);this.displayed_gallery.set("display_settings",s[t])}},render:function(){return this.$el.css("z-index",1e3),this}}),t.DisplayTab.App=Backbone.View.extend({initialize:function(){if(this.displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.original_displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.galleries=new t.DisplayTab.Models.Gallery_Collection(igw_data.galleries),this.albums=new t.DisplayTab.Models.Album_Collection(igw_data.albums),this.tags=new t.DisplayTab.Models.Tag_Collection(igw_data.tags),this.sources=new t.DisplayTab.Models.Source_Collection(igw_data.sources),this.display_types=new t.DisplayTab.Models.Display_Type_Collection(igw_data.display_types),this.display_type_order_base=igw_data.display_type_priority_base,this.display_type_order_step=igw_data.display_type_priority_step,this.entities=new t.DisplayTab.Models.Entity_Collection,this.entities.extra_data.displayed_gallery=this.displayed_gallery,this.image_key=igw_data.image_primary_key,this.displayed_gallery.get("source")){if(this.displayed_gallery.get("source")){var e=this.sources.find_by_name_or_alias(this.displayed_gallery.get("source"));e&&e.set("selected",!0)}if(this.displayed_gallery.get("container_ids")&&_.each(this.displayed_gallery.get("container_ids"),function(e){var t=this[this.displayed_gallery.get("source")].find(function(t){return t.id==e},this);t&&t.set("selected",!0)},this),this.displayed_gallery.get("display_type")){var i=this.display_types.find_by_name_or_alias(this.displayed_gallery.get("display_type"));i&&(i.set("selected",!0),this.displayed_gallery.set("display_type",i.get("name")))}}if(collections=["galleries","albums","tags"],_.each(collections,function(e){this[e].on("selected",function(){this.update_selected_containers(e)},this)},this),this.display_types.on("change:selected",function(){this.displayed_gallery.set("display_type",this.display_types.selected_value())},this),this.sources.on("selected",function(){this.displayed_gallery.set("source",this.sources.selected_value()),this.sources.selected_value()!=this.original_displayed_gallery.get("source")?this.displayed_gallery.set("exclusions",this.entities.excluded_ids()):this.displayed_gallery.set("exclusions",this.original_displayed_gallery.get("exclusions")),"random_images"!=this.sources.selected_value()&&"recent_images"!=this.sources.selected_value()||this.displayed_gallery.set("maximum_entity_count",20),this.galleries.deselect_all(),this.albums.deselect_all(),this.tags.deselect_all();var e=this.display_types.selected(),t=this.sources.selected();e.length>0&&t.length>0&&(e=e[0],t=t[0],e.is_compatible_with_source(t)||this.display_types.deselect_all(),this.display_type_selector&&this.display_type_selector.render()),this.preview_area&&this.preview_area.render()},this),this.entities.on("change:exclude finished_fetching",function(){this.displayed_gallery.set("exclusions",this.entities.excluded_ids())},this),!this.displayed_gallery.get("source")){var s=this.sources.find_by_name_or_alias("galleries");s&&(s.set("selected",!0),this.sources.trigger("selected"))}if(window.Frame_Event_Publisher){var l=this;Frame_Event_Publisher.listen_for("attach_to_post:new_gallery",function(){l.galleries.reset(),l.galleries.fetch()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_galleries attach_to_post:manage_images",function(e){l.galleries.reset(),l.galleries.fetch();var t=l.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&l.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_album",function(e){l.albums.reset(),l.albums.fetch();var t=l.sources.selected().pop();t&&_.indexOf(t.get("returns"),"album")>=0&&l.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_tags attach_to_post:manage_images",function(e){l.tags.reset(),l.tags.fetch();var t=l.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&l.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:thumbnail_modified",function(e){var t=l.sources.selected().pop(),i=e.image[e.image.id_field];if(t)if(_.indexOf(t.get("returns"),"image")>=0){var s=l.entities.find(function(e){return parseInt(e.entity_id())==parseInt(i)},this);s&&s.set("thumb_url",e.image.thumb_url)}else{var n=l.entities.find(function(e){return parseInt(e.get("previewpic"))==i},this);n&&n.trigger("change")}})}},update_selected_containers:function(e){this.displayed_gallery.set("container_ids",this[e].selected_ids())},render:function(){this.display_type_selector=new t.DisplayTab.Views.Display_Type_Selector,new t.DisplayTab.Views.Source_Config,new t.DisplayTab.Views.Slug_Config,this.preview_area=new t.DisplayTab.Views.Preview_Area,new t.DisplayTab.Views.SaveButton}}),t.DisplayTab.instance=new t.DisplayTab.App,t.DisplayTab.instance.render(),window.Ngg=t,e("span.tooltip, label.tooltip").tooltip()});
1
+ jQuery(function(e){var t={Models:{},Views:{}};t.Models.SelectableItems=Backbone.Collection.extend({selected:function(){return this.filter(function(e){return 1==e.get("selected")})},deselect_all:function(){this.each(function(e){e.set("selected",!1)})},selected_ids:function(){return _.pluck(this.selected(),"id")},select:function(e){_.isArray(e)||(e=[e]),this.each(function(t){_.indexOf(e,t.id)>=0&&t.set("selected",!0)}),this.trigger("selected")}}),t.Views.SelectTag=Backbone.View.extend({tagName:"select",collection:null,multiple:!1,value_field:"id",text_field:"title",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.collection.on("add",this.render_new_option,this),this.collection.on("remove",this.remove_existing_option,this),this.collection.on("reset",this.empty_list,this)},events:{change:"selection_changed"},empty_list:function(){this.$el.empty()},render_new_option:function(e){this.$el.append(new this.Option({model:e,value_field:this.value_field,text_field:this.text_field}).render().el)},remove_existing_option:function(e){this.$el.find("option[value='"+e.id+"']").remove()},selection_changed:function(){var t=_.map(this.$el.find(":selected"),function(t){return e(t).val()});this.collection.each(function(e){_.indexOf(t,e.id)>=0||_.indexOf(t,e.id.toString())>=0?e.set("selected",!0):e.set("selected",!1)}),this.collection.trigger("selected")},render:function(){return this.$el.empty(),this.multiple&&(this.$el.prop("multiple",!0),this.$el.attr("multiple","multiple")),this.collection.each(function(e){var t=new this.Option({model:e,value_field:this.value_field,text_field:this.text_field});this.$el.append(t.render().el)},this),this.width&&this.$el.width(this.width),this},Option:Backbone.View.extend({tagName:"option",model:null,initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change",this.render,this)},render:function(){var e=this;return this.$el.html(this.model.get(this.text_field).replace(/\\&/g,"&").replace(/\\'/g,"'")),this.$el.prop({value:"id"==this.value_field?this.model.id:this.model.get(this.value_field)}),1==e.model.get("selected")&&this.$el.prop("selected",!0).attr("selected","selected"),this}})}),t.Views.Chosen=Backbone.View.extend({tagName:"span",initialize:function(e){this.options=e||{},this.collection=this.options.collection,this.select_tag=new t.Views.SelectTag(this.options),this.collection.on("change",this.selection_changed,this)},selection_changed:function(e){_.isUndefined(e.changed.selected)&&this.render()},render:function(){if(this.$el.append(this.select_tag.render().$el),this.options.width&&this.select_tag.$el.width(this.options.width),this.select2_opts={placeholder:this.options.placeholder},this.select_tag.$el.select2(this.select2_opts),this.options.multiple){var e=[];_.each(this.collection.selected_ids(),function(t){e.push(t.toString())}),0==e.length&&(e=""),this.select_tag.$el.select2("val",e)}return this}}),t.DisplayTab={Models:{},Views:{},App:{}},t.Models.Remote_Collection=t.Models.SelectableItems.extend({fetch_limit:5e3,in_progress:!1,fetch_url:photocrati_ajax.url,action:"",extra_data:{},_create_request:function(e,t){var i=_.extend({},igw_data.sec_token,{action:this.action,limit:e||this.fetch_limit,offset:t||0});for(var s in this.extra_data){var l=this.extra_data[s];void 0===i[s]&&(i[s]={}),void 0!==l.toJSON&&(l=l.toJSON()),i[s]=_.extend(i[s],l)}return i},_add_item:function(e){this.push(e)},fetch:function(t,i){var s=this;this.in_progress=!0,e.post(this.fetch_url,this._create_request(t,i),function(e){"undefined"!=typeof _&&(_.isObject(e)||(e=JSON.parse(e)),e.items&&(_.each(e.items,function(e){s._add_item(e)}),e.total>=e.limit+e.offset?s.fetch(e.limit,e.offset+e.limit):(s.in_progress=!1,s.trigger("finished_fetching"))))})}}),t.DisplayTab.Models.Displayed_Gallery=Backbone.Model.extend({defaults:{source:null,container_ids:[],entity_ids:[],display_type:null,display_settings:{},exclusions:[],sortorder:[],slug:null},to_shortcode:function(){retval=null;var e=function(e,t){var i=e[t];if(void 0!==igw_data.shortcode_defaults[t]&&igw_data.shortcode_defaults[t]==i&&(i=null),_.isArray(i)&&(i=i.length>0?i.join(","):null),i)return i=i.toString().replace("[","&#91;"),i=i.toString().replace("]","&#93;"),void 0!==igw_data.shortcode_attr_replacements[t]&&(t=igw_data.shortcode_attr_replacements[t]),t+'="'+i+'"'},i=t.DisplayTab.instance.display_types.find_by_name_or_alias(this.get("display_type")),s=this.toJSON();s.display_type=i.get_shortcode_value();var l="[ngg",n=null;(n=e(s,"source"))&&(l+=" "+n),(n=e(s,"container_ids"))&&(l+=" "+n),(n=e(s,"entity_ids"))&&(l+=" "+n),(n=e(s,"exclusions"))&&(l+=" "+n),(n=e(s,"sortorder"))&&(l+=" "+n);for(var a in s){if(!(["source","container_ids","entity_ids","exclusions","sortorder","__defaults_set","id_field","post_category","ID"].indexOf(a)>-1))if("display_settings"==a)for(var r in s[a])(n=e(s[a],r))&&(l+=" "+n);else(n=e(s,a))&&(l+=" "+n)}return l+="]"}}),t.DisplayTab.Models.Source=Backbone.Model.extend({idAttribute:"name",defaults:{title:"",name:"",selected:!1}}),t.DisplayTab.Models.Source_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Source,selected_value:function(){var e=null,t=this.selected();return t.length>0&&(e=t[0].get("name")),e},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Gallery=Backbone.Model.extend({idAttribute:igw_data.gallery_primary_key,defaults:{title:"",name:""}}),t.DisplayTab.Models.Gallery_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Gallery,action:"get_existing_galleries"}),t.DisplayTab.Models.Album=Backbone.Model.extend({defaults:{title:"",name:""}}),t.DisplayTab.Models.Album_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Album,action:"get_existing_albums"}),t.DisplayTab.Models.Tag=Backbone.Model.extend({defaults:{title:""}}),t.DisplayTab.Models.Tag_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Tag,action:"get_existing_image_tags"}),t.DisplayTab.Models.Display_Type=Backbone.Model.extend({idAttribute:"name",defaults:{title:""},is_compatible_with_source:function(e){var t=!0;for(index in e.get("returns")){var i=e.get("returns")[index];if(_.indexOf(this.get("entity_types"),i)<0){t=!1;break}}return t},get_shortcode_value:function(){var e=this.id,t=this.get("aliases");return _.isArray(t)&&t.length>0&&(e=t[0]),e}}),t.DisplayTab.Models.Display_Type_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Display_Type,selected_value:function(){var e=this.selected();return e.length>0?e[0].get("name"):null},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Entity=Backbone.Model.extend({entity_id:function(){return this.get(this.get("id_field"))},is_excluded:function(){return current_value=this.get("exclude"),!_.isUndefined(current_value)&&(_.isBoolean(current_value)?current_value:0!=parseInt(current_value))},is_included:function(){return!this.is_excluded()},is_gallery:function(){return retval=!1,1==this.get("is_gallery")&&(retval=!0),retval},is_album:function(){return retval=!1,1==this.get("is_album")&&(retval=!0),retval},is_image:function(){return!this.is_album()&&!this.is_gallery()},alttext:function(){return this.is_image()?this.get("alttext"):this.is_gallery()?this.get("title"):this.is_album()?this.get("name"):void 0}}),t.DisplayTab.Models.Entity_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Entity,action:"get_displayed_gallery_entities",_add_item:function(e){e.exclude=1==parseInt(e.exclude),e.is_gallery=1==parseInt(e.is_gallery),e.is_album=1==parseInt(e.is_album),this.push(e)},entity_ids:function(){return this.map(function(e){return e.entity_id()})},included_ids:function(){return _.compact(this.map(function(e){if(e.is_included())return e.entity_id()}))},excluded_ids:function(){return _.compact(this.map(function(e){if(!e.is_included())return e.entity_id()}))}}),t.DisplayTab.Models.SortOrder=Backbone.Model.extend({}),t.DisplayTab.Models.SortOrder_Options=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.SortOrder}),t.DisplayTab.Models.SortDirection=Backbone.Model.extend({}),t.DisplayTab.Models.SortDirection_Options=Backbone.Collection.extend({model:t.DisplayTab.Models.SortDirection}),t.DisplayTab.Models.Slug=Backbone.Model.extend({}),t.DisplayTab.Views.Source_Config=Backbone.View.extend({el:"#source_configuration",selected_view:null,initialize:function(){this.sources=t.DisplayTab.instance.sources,this.sources.on("selected",this.render,this),_.bindAll(this,"render"),this.render()},render:function(){var e=new t.Views.Chosen({id:"source_select",collection:this.sources,placeholder:"Select a source",width:500}),i=_.template('<tr><td id="source_column"></td><td><label><%- sources %></label></td></tr>');this.$el.html(i(igw_data.i18n)),this.$el.find("#source_column").append(e.render().el);var s=this.sources.selected();if(s.length){var l=_.str.capitalize(s.pop().id)+"Source";if(void 0!==t.DisplayTab.Views[l]){var n=new t.DisplayTab.Views[l];this.$el.append(n.render().el)}}return this}}),t.DisplayTab.Views.Slug_Config=Backbone.View.extend({el:"#slug_configuration",selected_view:null,initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.slug=t.DisplayTab.instance.displayed_gallery.get("slug"),this.render()},render:function(){var t=this,i=e("<input>").prop({type:"text",name:"slug",value:this.slug,placeholder:igw_data.i18n.optional,id:"field_slug"});i.on("input",function(){e(this).val(e(this).val().replace(/\s|\?|\\|\/|&|=|\[|]|#/gm,"-")),t.displayed_gallery.set("slug",e(this).val())}),i.on("change",function(){e(this).val(e(this).val().replace(/^-*/gm,"").replace(/-*$/gm,"")),t.displayed_gallery.set("slug",e(this).val())});var s=_.template('<tr><td id="slug_label"><label for="field_slug" class="tooltip" title="<%- slug_tooltip %><"><<%- slug_label %></label></td><td id="slug_column"></td></tr>');return this.$el.append(s(igw_data.i18n)),this.$el.find("#slug_column").append(i),this}}),t.DisplayTab.Views.Display_Type_Selector=Backbone.View.extend({el:"#display_type_selector",initialize:function(){this.display_types=t.DisplayTab.instance.display_types,this.display_type_order_base=t.DisplayTab.instance.display_type_order_base,this.display_type_order_step=t.DisplayTab.instance.display_type_order_step,this.sources=t.DisplayTab.instance.sources,this.render()},selection_changed:function(t){var i=null;this.display_types.each(function(e){e.get("name")==t?(i=e,e.set("selected",!0)):e.set("selected",!1)}),e(".display_settings_form").each(function(){$this=e(this),$this.attr("rel")==t?$this.removeClass("hidden"):$this.addClass("hidden")})},render:function(){var t=this.sources.selected(),i=0;t=t.length>0&&t[0],this.$el.empty();var s=this.display_type_order_base,l=this.display_type_order_step;return this.display_types.each(function(n){if(t&&!n.is_compatible_with_source(t)){var a=e("#display_type_tab_content:visible");if(0==a.length)return;if("hidden"==a.css("visibility"))return}var r=new this.DisplayType;r.model=n,r.on("selected",this.selection_changed,this),this.display_types.selected_value()||(n.set("selected",!0),this.selection_changed(n.id));var o=n.get("view_order");o||(o=s);var d=Math.floor(o/l);i=d,this.$el.append(r.render().el)},this),this.$el.append('<li class="clear" style="height: 10px; list-style-type:none" />'),this},DisplayType:Backbone.View.extend({className:"display_type_preview",events:{click:"clicked"},clicked:function(e){this.trigger("selected",this.model.get("name"))},render:function(){var t=e('<label style="display: block; cursor: pointer;"/>').addClass("image_container"),i=this.model.get("installed_at_version"),s=photocrati_ajax.wp_plugins_url,l=this.model.get("preview_image_relpath");void 0===i&&(s=photocrati_ajax.wp_site_url,s=s.replace(/(.*)\/index\.php$/i,"$1"),0==l.indexOf("/nextgen-gallery")&&(s=photocrati_ajax.wp_plugins_url));var n=e("<img/>").attr({src:s+"/"+l,title:this.model.get("title"),alt:this.model.get("alt")}),a=e("<div/>"),r=e("<input/>").prop({type:"radio",value:this.model.get("name"),title:this.model.get("title"),name:"display_type",checked:this.model.get("selected")}),o=e("<br>");return t.append(a),t.append(n),t.append("<br>"),t.append(this.model.get("title").replace(/nextgen /gi,"")),a.append(r),a.append(o),this.$el.append(t),this}})}),t.DisplayTab.Views.Preview_Area=Backbone.View.extend({el:"#preview_area",initialize:function(){this.entities=t.DisplayTab.instance.entities,this.sources=t.DisplayTab.instance.sources,this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entity_list=e("<ul/>").attr("id","entity_list").append('<li class="clear"/>'),this.entities.on("add",this.render_entity,this),this.entities.on("remove",this.remove_entity,this),this.entities.on("reset",this.entities_reset,this),this.entities.on("change:sortorder",function(e){this.entities.remove(e,{silent:!0}),this.entities.add(e,{at:e.changed.sortorder,silent:!0}),this.displayed_gallery.set("sortorder",this.entities.entity_ids()),"undefined"!=typeof console&&void 0!==console.log&&console.log(this.entities.entity_ids()),this.displayed_gallery.set("order_by","sortorder")},this),this.sources.on("selected",this.render,this),this.render()},events:{opened:"entities_reset"},entities_reset:function(e){this.entities.reset(null,{silent:!0}),this.entity_list.empty().append('<li class="clear"/>'),this.entities.in_progress||this.entities.fetch()},render_entity:function(e){var t=new this.EntityElement({model:e});this.entity_list.find(".clear").before(t.render().$el),t.$el.css("visibility","hidden"),setTimeout(function(){t.$el.css("visibility","visible")},0),1==this.$el.find(".no_entities").length?this.render():this.entities.length>1&&this.entity_list.sortable("refresh")},remove_entity:function(e){var t=this.id=e.get("id_field")+"_"+e.entity_id();this.entity_list.find("#"+t).remove();this.entity_list.sortable("refresh"),0==this.entities.length&&this.render_no_images_notice()},render_no_images_notice:function(){this.$el.empty(),this.$el.append("<p class='no_entities'>"+igw_data.i18n.no_entities+"</p>")},render:function(){return this.$el.empty(),this.entities.length>0&&this.displayed_gallery.get("container_ids").length>0?(this.$el.append(new this.RefreshButton({entities:this.entities}).render().el),this.$el.append(new this.SortButtons({entities:this.entities,displayed_gallery:this.displayed_gallery,sources:this.sources}).render().el),this.$el.append(new this.ExcludeButtons({entities:this.entities}).render().el),this.$el.append(this.entity_list),this.entity_list.sortable({placeholder:"placeholder",forcePlaceholderSize:!0,containment:"parent",opacity:.7,revert:!0,dropOnEmpty:!0,start:function(e,t){return t.placeholder.css({height:t.item.height()}),!0},stop:function(e,t){t.item.trigger("drop",t.item.index())}}),this.entity_list.disableSelection()):this.render_no_images_notice(),this},RefreshButton:Backbone.View.extend({className:"refresh_button button-primary",tagName:"input",label:"Refresh",events:{click:"clicked"},clicked:function(){this.entities.reset()},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){return this.$el.attr({value:this.label,type:"button"}),this}}),ExcludeButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){this.$el.empty(),this.$el.append('<span style="margin-right: 8px;">Exclude:</span>');var e=new this.Button({value:!0,text:"All",entities:this.entities});this.$el.append(e.render().el),this.$el.append('<span class="separator">|</span>');var t=new this.Button({value:!1,text:"None",entities:this.entities});return this.$el.append(t.render().el),this},Button:Backbone.View.extend({tagName:"a",value:1,text:"",events:{click:"clicked"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},clicked:function(e){e.preventDefault(),this.entities.each(function(e){e.set("exclude",this.value)},this)},render:function(){return this.$el.text(this.text).attr("href","#"),this}})}),SortButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.sortorder_options=new t.DisplayTab.Models.SortOrder_Options,this.sortorder_options.on("change:selected",this.sortoption_changed,this),this.sortdirection_options=new t.DisplayTab.Models.SortDirection_Options([{value:"ASC",title:"Ascending",selected:"ASC"==this.displayed_gallery.get("order_direction")},{value:"DESC",title:"Descending",selected:"DESC"==this.displayed_gallery.get("order_direction")}]),this.sortdirection_options.on("change:selected",this.sortdirection_changed,this),this.displayed_gallery.on("change:order_by",this.displayed_gallery_order_changed,this),this.displayed_gallery.on("change.order_direction",this.displayed_gallery_order_dir_changed,this)},populate_sorting_fields:function(){var e=this.sources.selected().pop().get("returns");-1!==_.indexOf(e,"image")?this.fill_image_sortorder_options():this.fill_gallery_sortorder_options()},create_sortorder_option:function(e,i){return new t.DisplayTab.Models.SortOrder({name:e,title:i,value:e,selected:this.displayed_gallery.get("order_by")==e})},fill_image_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option(t.DisplayTab.instance.image_key,"Image ID")),this.sortorder_options.push(this.create_sortorder_option("filename","Filename")),this.sortorder_options.push(this.create_sortorder_option("alttext","Alt/Title Text")),this.sortorder_options.push(this.create_sortorder_option("imagedate","Date/Time"))},fill_gallery_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option("name","Name")),this.sortorder_options.push(this.create_sortorder_option("galdesc","Description"))},displayed_gallery_order_changed:function(e){this.sortorder_options.findWhere({value:e.get("order_by")}).set("selected",!0)},displayed_gallery_order_dir_changed:function(e){this.sortdirection_options.findWhere({value:e.get("order_direction")}).set("selected",!0)},sortoption_changed:function(t){this.sortorder_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("sortorder",[]);var i=t.get("value");0==t.get("value").length&&(i="sortorder"),this.displayed_gallery.set("order_by",i),this.entities.reset(),this.$el.find("a.sortorder").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},sortdirection_changed:function(t){this.sortdirection_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("order_direction",t.get("value")),this.entities.reset(),this.$el.find("a.sortdirection").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},render:function(){return this.$el.empty(),this.populate_sorting_fields(),this.$el.append('<span style="margin-right: 8px;">Sort By:</span>'),this.sortorder_options.each(function(e,t){var i=new this.Button({model:e,className:"sortorder"});this.$el.append(i.render().el),this.sortorder_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this.$el.append('<span style="margin: 0 8px 0 40px;">Order By:</span>'),this.sortdirection_options.each(function(e,t){var i=new this.Button({model:e,className:"sortdirection"});this.$el.append(i.render().el),this.sortdirection_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this},Button:Backbone.View.extend({tagName:"a",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},events:{click:"clicked"},clicked:function(e){e.preventDefault(),this.model.set("selected",!0)},render:function(){return this.$el.prop({value:this.model.get("value"),href:"#"}),this.$el.text(this.model.get("title")),this.model.get("selected")&&this.$el.addClass("selected"),this}})}),EntityElement:Backbone.View.extend({tagName:"li",events:{drop:"item_dropped"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.initTime=(new Date).getTime(),this.model.on("change",this.render,this),0==this.model.get("sortorder")&&this.model.set("sortorder",-1,{silent:!0}),this.id=this.model.get("id_field")+"_"+this.model.entity_id()},item_dropped:function(e,i){t.DisplayTab.instance.displayed_gallery.set("order_by","sortorder"),this.model.set("sortorder",i)},render:function(){this.$el.empty();var t=e("<div/>").addClass("preview_item"),i=e("<div/>").addClass("image_container"),s=this.model.alttext().replace(/\\&/g,"&").replace(/\\'/g,"'"),l=this.initTime;i.attr({title:s,style:"background-image: url('"+this.model.get("thumb_url")+"?timestamp"+l+"')"}),this.$el.append(t).addClass("ui-state-default"),t.append(i);var n=e("<div/>").addClass("exclude_container"),a=e("<label/>");a.append(igw_data.i18n.exclude_question);var r=new this.ExcludeCheckbox({model:this.model});return a.append(r.render().el),n.append(a),t.append(n),this},ExcludeCheckbox:Backbone.View.extend({tagName:"input",events:{change:"entity_excluded"},type_set:!1,entity_excluded:function(e){this.model.set("exclude",e.target.checked)},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change:exclude",this.render,this)},render:function(){return this.type_set||(this.$el.attr("type","checkbox"),this.type_set=!0),this.model.is_excluded()?this.$el.prop("checked",!0):this.$el.prop("checked",!1),this}})})}),t.DisplayTab.Views.GalleriesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.galleries=t.DisplayTab.instance.galleries},render:function(){var i=new t.Views.Chosen({collection:this.galleries,placeholder:igw_data.i18n.select_gallery,multiple:!0,width:500}),s=e('<tr><td class="galleries_column"></td><td><label>'+igw_data.i18n.galleries+"</label></td></tr>");return this.$el.empty(),this.$el.append(s),this.$el.find(".galleries_column").append(i.render().el),this}}),t.DisplayTab.Views.AlbumsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.albums=t.DisplayTab.instance.albums},render:function(){var e=new t.Views.Chosen({collection:this.albums,multiple:!0,placeholder:"Select an album",text_field:"name",width:500});return this.$el.empty(),this.$el.append('<tr><td class="albums_column"></td><td><label>'+igw_data.i18n.albums+"</label></td></tr>"),this.$el.find(".albums_column").append(e.render().el),this}}),t.DisplayTab.Views.TagsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.tags=t.DisplayTab.instance.tags},render:function(){var e=new t.Views.Chosen({collection:this.tags,multiple:!0,placeholder:"Select a tag",text_field:"name",width:500});return this.$el.empty(),this.$el.append('<tr><td class="tags_column"></td><td><label>Tags</label></td></tr>'),this.$el.find(".tags_column").append(e.render().el),this}}),t.DisplayTab.Views.Recent_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td class="recent_images_column"></td><td><label># of Images To Display</label></td></tr>'),this.$el.find(".recent_images_column").append(i),this}}),t.DisplayTab.Views.Random_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td class="random_images_column"></td><td><label># of Images To Display</label></td></tr>'),this.$el.find(".random_images_column").append(i),this}}),t.DisplayTab.Views.SaveButton=Backbone.View.extend({el:"#save_displayed_gallery",errors_el:"#errors",displayed_gallery:null,events:{click:"clicked"},initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entities=t.DisplayTab.instance.entities,this.render()},clicked:function(){this.set_display_settings(),insert_into_editor(this.displayed_gallery.to_shortcode(),this.displayed_gallery.id?this.displayed_gallery.id:igw_data.shortcode_ref),close_attach_to_post_window()},set_display_settings:function(){var t=this.displayed_gallery.get("display_type");if(t){var i=e("form[rel='"+t+"']"),s=i.data("defaults"),l=function(t){var i={};return e.each(t.serializeArray(),function(e,t){for(var l=t.name.split("["),n=i,a=0;a<l.length;a++){var r=l[a].replace(/\]$/,"");if(s[r]==t.value)return!0;n[r]||(a==l.length-1?n[r]=t.value:n[r]={}),n=n[r]}}),i}(i);this.displayed_gallery.set("display_settings",l[t])}},render:function(){return this.$el.css("z-index",1e3),this}}),t.DisplayTab.App=Backbone.View.extend({initialize:function(){if(this.displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.original_displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.galleries=new t.DisplayTab.Models.Gallery_Collection(igw_data.galleries),this.albums=new t.DisplayTab.Models.Album_Collection(igw_data.albums),this.tags=new t.DisplayTab.Models.Tag_Collection(igw_data.tags),this.sources=new t.DisplayTab.Models.Source_Collection(igw_data.sources),this.display_types=new t.DisplayTab.Models.Display_Type_Collection(igw_data.display_types),this.display_type_order_base=igw_data.display_type_priority_base,this.display_type_order_step=igw_data.display_type_priority_step,this.entities=new t.DisplayTab.Models.Entity_Collection,this.entities.extra_data.displayed_gallery=this.displayed_gallery,this.image_key=igw_data.image_primary_key,this.displayed_gallery.get("source")){if(this.displayed_gallery.get("source")){var e=this.sources.find_by_name_or_alias(this.displayed_gallery.get("source"));e&&e.set("selected",!0)}if(this.displayed_gallery.get("container_ids")&&_.each(this.displayed_gallery.get("container_ids"),function(e){var t=this[this.displayed_gallery.get("source")].find(function(t){return t.id==e},this);t&&t.set("selected",!0)},this),this.displayed_gallery.get("display_type")){var i=this.display_types.find_by_name_or_alias(this.displayed_gallery.get("display_type"));i&&(i.set("selected",!0),this.displayed_gallery.set("display_type",i.get("name")))}}if(collections=["galleries","albums","tags"],_.each(collections,function(e){this[e].on("selected",function(){this.update_selected_containers(e)},this)},this),this.display_types.on("change:selected",function(){this.displayed_gallery.set("display_type",this.display_types.selected_value())},this),this.sources.on("selected",function(){this.displayed_gallery.set("source",this.sources.selected_value()),this.sources.selected_value()!=this.original_displayed_gallery.get("source")?this.displayed_gallery.set("exclusions",this.entities.excluded_ids()):this.displayed_gallery.set("exclusions",this.original_displayed_gallery.get("exclusions")),"random_images"!=this.sources.selected_value()&&"recent_images"!=this.sources.selected_value()||this.displayed_gallery.set("maximum_entity_count",20),this.galleries.deselect_all(),this.albums.deselect_all(),this.tags.deselect_all();var e=this.display_types.selected(),t=this.sources.selected();e.length>0&&t.length>0&&(e=e[0],t=t[0],e.is_compatible_with_source(t)||this.display_types.deselect_all(),this.display_type_selector&&this.display_type_selector.render()),this.preview_area&&this.preview_area.render()},this),this.entities.on("change:exclude finished_fetching",function(){this.displayed_gallery.set("exclusions",this.entities.excluded_ids())},this),!this.displayed_gallery.get("source")){var s=this.sources.find_by_name_or_alias("galleries");s&&(s.set("selected",!0),this.sources.trigger("selected"))}if(window.Frame_Event_Publisher){var l=this;Frame_Event_Publisher.listen_for("attach_to_post:new_gallery",function(){l.galleries.reset(),l.galleries.fetch()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_galleries attach_to_post:manage_images",function(e){l.galleries.reset(),l.galleries.fetch();var t=l.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&l.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_album",function(e){l.albums.reset(),l.albums.fetch();var t=l.sources.selected().pop();t&&_.indexOf(t.get("returns"),"album")>=0&&l.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_tags attach_to_post:manage_images",function(e){l.tags.reset(),l.tags.fetch();var t=l.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&l.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:thumbnail_modified",function(e){var t=l.sources.selected().pop(),i=e.image[e.image.id_field];if(t)if(_.indexOf(t.get("returns"),"image")>=0){var s=l.entities.find(function(e){return parseInt(e.entity_id())==parseInt(i)},this);s&&s.set("thumb_url",e.image.thumb_url)}else{var n=l.entities.find(function(e){return parseInt(e.get("previewpic"))==i},this);n&&n.trigger("change")}})}},update_selected_containers:function(e){this.displayed_gallery.set("container_ids",this[e].selected_ids())},render:function(){this.display_type_selector=new t.DisplayTab.Views.Display_Type_Selector,new t.DisplayTab.Views.Source_Config,new t.DisplayTab.Views.Slug_Config,this.preview_area=new t.DisplayTab.Views.Preview_Area,new t.DisplayTab.Views.SaveButton}}),t.DisplayTab.instance=new t.DisplayTab.App,t.DisplayTab.instance.render(),window.Ngg=t,e("span.tooltip, label.tooltip").tooltip()});
products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js CHANGED
@@ -105,57 +105,61 @@
105
  * Find each shortcode and replace it with the placeholder, rendered using an underscore template
106
  * in templates/tinymce_placeholder.php
107
  */
108
- editor.on('BeforeSetContent', function(event){
109
- var shortcode_opening_tag = '[ngg_images ';
110
- while (event.content.indexOf(shortcode_opening_tag)>=0) {
111
- var start_of_shortcode = event.content.indexOf(shortcode_opening_tag);
112
- var index = start_of_shortcode+shortcode_opening_tag.length;
113
- var found_attribute_assignment = false;
114
- var current_attribute_enclosure = null;
115
- var last_found_char = false;
116
- var content_length = event.content.length;
117
- while (true) {
118
- var char = event.content[index];
119
- if (char == '"' || char == "'" && last_found_char == '=') {
120
- // Is this the closing quote for an already found attribute assignment?
121
- if (found_attribute_assignment && current_attribute_enclosure == char) {
122
- found_attribute_assignment = false;
123
- current_attribute_enclosure = null;
124
- }
125
- else {
126
- found_attribute_assignment = true;
127
- current_attribute_enclosure = char;
128
- }
129
- }
130
- else if (char == ']') {
131
- // we've found a shortcode closing tag. But, we need to ensure
132
- // that this ] isn't within the value of a shortcode attribute
133
- if (!found_attribute_assignment) {
134
- break; //exit loop - we've found the shortcode
135
- }
136
- }
137
 
138
- last_found_char = char;
139
 
140
- if (index == content_length) {
141
- break;
142
- }
143
 
144
- index++;
145
- }
 
 
 
 
 
 
146
 
147
- // Replace the shortcode with a placeholder
148
- var match = event.content.substring(start_of_shortcode, ++index);
149
- var shortcode = match.substring(1, match.length-1);
150
- shortcode = shortcode.replace('[', '&#91;');
151
- shortcode = shortcode.replace(']', '&#93;');
152
-
153
- var template = _.template($('#ngg-igw-placeholder').html());
154
- event.content = event.content.replace(match, template($.extend(ngg_igw_i18n, {
155
- shortcode: shortcode,
156
- ref: _.now()
157
- })));
158
  }
 
 
 
159
  });
160
 
161
  /**
105
  * Find each shortcode and replace it with the placeholder, rendered using an underscore template
106
  * in templates/tinymce_placeholder.php
107
  */
108
+ editor.on('BeforeSetContent', function(event) {
109
+ function handle_shortcode(shortcode_opening_tag) {
110
+ while (event.content.indexOf(shortcode_opening_tag) >= 0) {
111
+ var start_of_shortcode = event.content.indexOf(shortcode_opening_tag);
112
+ var index = start_of_shortcode + shortcode_opening_tag.length;
113
+ var found_attribute_assignment = false;
114
+ var current_attribute_enclosure = null;
115
+ var last_found_char = false;
116
+ var content_length = event.content.length;
117
+ while (true) {
118
+ var char = event.content[index];
119
+ if (char == '"' || char == "'" && last_found_char == '=') {
120
+ // Is this the closing quote for an already found attribute assignment?
121
+ if (found_attribute_assignment && current_attribute_enclosure == char) {
122
+ found_attribute_assignment = false;
123
+ current_attribute_enclosure = null;
124
+ }
125
+ else {
126
+ found_attribute_assignment = true;
127
+ current_attribute_enclosure = char;
128
+ }
129
+ }
130
+ else if (char == ']') {
131
+ // we've found a shortcode closing tag. But, we need to ensure
132
+ // that this ] isn't within the value of a shortcode attribute
133
+ if (!found_attribute_assignment) {
134
+ break; //exit loop - we've found the shortcode
135
+ }
136
+ }
137
 
138
+ last_found_char = char;
139
 
140
+ if (index == content_length) {
141
+ break;
142
+ }
143
 
144
+ index++;
145
+ }
146
+
147
+ // Replace the shortcode with a placeholder
148
+ var match = event.content.substring(start_of_shortcode, ++index);
149
+ var shortcode = match.substring(1, match.length-1);
150
+ shortcode = shortcode.replace('[', '&#91;');
151
+ shortcode = shortcode.replace(']', '&#93;');
152
 
153
+ var template = _.template($('#ngg-igw-placeholder').html());
154
+ event.content = event.content.replace(match, template($.extend(ngg_igw_i18n, {
155
+ shortcode: shortcode,
156
+ ref: _.now()
157
+ })));
158
+ }
 
 
 
 
 
159
  }
160
+
161
+ handle_shortcode('[ngg_images ');
162
+ handle_shortcode('[ngg ');
163
  });
164
 
165
  /**
products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){window.id="wordpress-post-page",tinyMCE.addI18n("en.ngg_attach_to_post",{title:"Attach NextGEN Gallery to Post"}),tinymce.create("tinymce.plugins.NextGEN_AttachToPost",{siteurl:t,getInfo:function(){return{longname:"NextGEN Gallery",author:"Imagely",authorurl:"https://www.imagely.com",infourl:"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/",version:"0.1"}},init:function(t,n){var o=this;t.windowManager.nggOldOpen=t.windowManager.open,t.windowManager.open=function(e,n){var a=t.windowManager.nggOldOpen(e,n);return a.on("close",o.wm_close_event),a},t.addCommand("ngg_attach_to_post",this.render_attach_to_post_interface,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),t.addButton("NextGEN_AttachToPost",{title:"ngg_attach_to_post.title",cmd:"ngg_attach_to_post",image:n+"/igw_button.png"}),t.on("mouseup touchend",function(n){if(tinymce.extend(o,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),"IMG"==n.target.tagName){if(o.get_class_name(n.target).indexOf("ngg_displayed_gallery")>=0){t.dom.events.cancel(n);var a=n.target.src.match(/\d+$/);a&&(a=a.pop()),o.render_attach_to_post_interface({key:"id",val:a})}}else{var r=e(n.target);r.parents(".nggPlaceholderButton")&&(r=r.parents(".nggPlaceholderButton")),r.hasClass("nggPlaceholderButton")&&(r.hasClass("nggIgwRemove")?r.parents(".nggPlaceholder").remove():(window.igw_shortcode=e(n.target).parents(".nggPlaceholder").data("shortcode"),o.render_attach_to_post_interface({key:"shortcode",val:Base64.encode(window.igw_shortcode),ref:e(n.target).parents(".nggPlaceholder").attr("id")})))}}),t.on("BeforeSetContent",function(t){for(;t.content.indexOf("[ngg_images ")>=0;){for(var n=t.content.indexOf("[ngg_images "),o=n+"[ngg_images ".length,a=!1,r=null,i=!1,c=t.content.length;;){var l=t.content[o];if('"'==l||"'"==l&&"="==i)a&&r==l?(a=!1,r=null):(a=!0,r=l);else if("]"==l&&!a)break;if(i=l,o==c)break;o++}var g=t.content.substring(n,++o),s=g.substring(1,g.length-1);s=s.replace("[","&#91;"),s=s.replace("]","&#93;");var d=_.template(e("#ngg-igw-placeholder").html());t.content=t.content.replace(g,d(e.extend(ngg_igw_i18n,{shortcode:s,ref:_.now()})))}}),t.on("PostProcess",function(t){var n=e("<div/>").append(t.content);n.find(".nggPlaceholder").toArray().forEach(function(t){var n=e(t),o=n.data("shortcode");o="<p>["+_.unescape(o)+"]</p>",n.replaceWith(o)}),t.content=n.html()})},get_class_name:function(t){var e=t.getAttribute("class")?t.getAttribute("class"):t.className;return e||""},wm_close_event:function(t){t&&t.target&&t.target._id&&"ngg_attach_to_post_dialog"==t.target._id&&(e("html,body").css("overflow","auto"),tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select("p")[0]),tinyMCE.activeEditor.selection.collapse(0))},render_attach_to_post_interface:function(t){var n=nextgen_gallery_attach_to_post_url;void 0!==t&&(n+="&"+t.key+"="+encodeURIComponent(t.val),void 0!==t.ref&&(n+="&ref="+encodeURIComponent(t.ref)));for(var o=window;null!=o.parent&&o.parent!=o;)o=o.parent;o=e(o);var a=o.width(),r=o.height(),i=1600,c=1200,l=a-.05*a,g=r-.1*r;l<800&&(l=a-20),g<600&&(g=r-40),i>l&&(i=l),c>g&&(c=g),document.activeElement.blur(),Array.prototype.forEach.call(document.querySelectorAll("input, textarea"),function(t){t.blur()}),this.editor.windowManager.open({url:n,id:"ngg_attach_to_post_dialog",width:i,height:c,title:"NextGEN Gallery - Attach To Post"}),e("html,body").css("overflow","hidden"),e("#ngg_attach_to_post_dialog_ifr").css("overflow-y","auto"),e("#ngg_attach_to_post_dialog_ifr").css("overflow-x","hidden")}}),tinymce.PluginManager.add("NextGEN_AttachToPost",tinymce.plugins.NextGEN_AttachToPost)}(photocrati_ajax.wp_site_url,jQuery);
1
+ !function(t,e){window.id="wordpress-post-page",tinyMCE.addI18n("en.ngg_attach_to_post",{title:"Attach NextGEN Gallery to Post"}),tinymce.create("tinymce.plugins.NextGEN_AttachToPost",{siteurl:t,getInfo:function(){return{longname:"NextGEN Gallery",author:"Imagely",authorurl:"https://www.imagely.com",infourl:"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/",version:"0.1"}},init:function(t,n){var o=this;t.windowManager.nggOldOpen=t.windowManager.open,t.windowManager.open=function(e,n){var a=t.windowManager.nggOldOpen(e,n);return a.on("close",o.wm_close_event),a},t.addCommand("ngg_attach_to_post",this.render_attach_to_post_interface,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),t.addButton("NextGEN_AttachToPost",{title:"ngg_attach_to_post.title",cmd:"ngg_attach_to_post",image:n+"/igw_button.png"}),t.on("mouseup touchend",function(n){if(tinymce.extend(o,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),"IMG"==n.target.tagName){if(o.get_class_name(n.target).indexOf("ngg_displayed_gallery")>=0){t.dom.events.cancel(n);var a=n.target.src.match(/\d+$/);a&&(a=a.pop()),o.render_attach_to_post_interface({key:"id",val:a})}}else{var r=e(n.target);r.parents(".nggPlaceholderButton")&&(r=r.parents(".nggPlaceholderButton")),r.hasClass("nggPlaceholderButton")&&(r.hasClass("nggIgwRemove")?r.parents(".nggPlaceholder").remove():(window.igw_shortcode=e(n.target).parents(".nggPlaceholder").data("shortcode"),o.render_attach_to_post_interface({key:"shortcode",val:Base64.encode(window.igw_shortcode),ref:e(n.target).parents(".nggPlaceholder").attr("id")})))}}),t.on("BeforeSetContent",function(t){function n(n){for(;t.content.indexOf(n)>=0;){for(var o=t.content.indexOf(n),a=o+n.length,r=!1,i=null,c=!1,l=t.content.length;;){var g=t.content[a];if('"'==g||"'"==g&&"="==c)r&&i==g?(r=!1,i=null):(r=!0,i=g);else if("]"==g&&!r)break;if(c=g,a==l)break;a++}var s=t.content.substring(o,++a),d=s.substring(1,s.length-1);d=d.replace("[","&#91;"),d=d.replace("]","&#93;");var h=_.template(e("#ngg-igw-placeholder").html());t.content=t.content.replace(s,h(e.extend(ngg_igw_i18n,{shortcode:d,ref:_.now()})))}}n("[ngg_images "),n("[ngg ")}),t.on("PostProcess",function(t){var n=e("<div/>").append(t.content);n.find(".nggPlaceholder").toArray().forEach(function(t){var n=e(t),o=n.data("shortcode");o="<p>["+_.unescape(o)+"]</p>",n.replaceWith(o)}),t.content=n.html()})},get_class_name:function(t){var e=t.getAttribute("class")?t.getAttribute("class"):t.className;return e||""},wm_close_event:function(t){t&&t.target&&t.target._id&&"ngg_attach_to_post_dialog"==t.target._id&&(e("html,body").css("overflow","auto"),tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select("p")[0]),tinyMCE.activeEditor.selection.collapse(0))},render_attach_to_post_interface:function(t){var n=nextgen_gallery_attach_to_post_url;void 0!==t&&(n+="&"+t.key+"="+encodeURIComponent(t.val),void 0!==t.ref&&(n+="&ref="+encodeURIComponent(t.ref)));for(var o=window;null!=o.parent&&o.parent!=o;)o=o.parent;o=e(o);var a=o.width(),r=o.height(),i=1600,c=1200,l=a-.05*a,g=r-.1*r;l<800&&(l=a-20),g<600&&(g=r-40),i>l&&(i=l),c>g&&(c=g),document.activeElement.blur(),Array.prototype.forEach.call(document.querySelectorAll("input, textarea"),function(t){t.blur()}),this.editor.windowManager.open({url:n,id:"ngg_attach_to_post_dialog",width:i,height:c,title:"NextGEN Gallery - Attach To Post"}),e("html,body").css("overflow","hidden"),e("#ngg_attach_to_post_dialog_ifr").css("overflow-y","auto"),e("#ngg_attach_to_post_dialog_ifr").css("overflow-x","hidden")}}),tinymce.PluginManager.add("NextGEN_AttachToPost",tinymce.plugins.NextGEN_AttachToPost)}(photocrati_ajax.wp_site_url,jQuery);
products/photocrati_nextgen/modules/attach_to_post/templates/display_settings_form.php CHANGED
@@ -1,3 +1,7 @@
1
- <form rel="<?php echo esc_attr($display_type_name) ?>" class="<?php echo esc_attr($css_class) ?>" method='POST' action='<?php echo esc_attr($_SERVER['REQUEST_URI'])?>'>
 
 
 
 
2
  <?php echo $settings ?>
3
  </form>
1
+ <form rel="<?php echo esc_attr($display_type_name) ?>"
2
+ class="<?php echo esc_attr($css_class) ?>"
3
+ method='POST'
4
+ action='<?php echo esc_attr($_SERVER['REQUEST_URI'])?>'
5
+ data-defaults="<?php print esc_attr(json_encode($defaults)); ?>">
6
  <?php echo $settings ?>
7
  </form>
products/photocrati_nextgen/modules/lightbox/package.module.lightbox.php CHANGED
@@ -49,6 +49,13 @@ class C_Lightbox_Library_Manager
49
  $none = new C_NGG_Lightbox('none');
50
  $none->title = __('None', 'nggallery');
51
  $this->register('none', $none);
 
 
 
 
 
 
 
52
  // Add Fancybox
53
  $fancybox = new C_NGG_Lightbox('fancybox');
54
  $fancybox->title = __('Fancybox', 'nggallery');
49
  $none = new C_NGG_Lightbox('none');
50
  $none->title = __('None', 'nggallery');
51
  $this->register('none', $none);
52
+ // Add Simplelightbox
53
+ $simplelightbox = new C_NGG_Lightbox('simplelightbox');
54
+ $simplelightbox->title = __('Simplelightbox', 'nggallery');
55
+ $simplelightbox->code = 'class="ngg-simplelightbox" rel="%GALLERY_NAME%"';
56
+ $simplelightbox->styles = array('photocrati-lightbox#simplelightbox/simplelightbox.css');
57
+ $simplelightbox->scripts = array('photocrati-lightbox#simplelightbox/simple-lightbox.js', 'photocrati-lightbox#simplelightbox/nextgen_simple_lightbox_init.js');
58
+ $this->register('simplelightbox', $simplelightbox);
59
  // Add Fancybox
60
  $fancybox = new C_NGG_Lightbox('fancybox');
61
  $fancybox->title = __('Fancybox', 'nggallery');
products/photocrati_nextgen/modules/lightbox/static/simplelightbox/nextgen_simple_lightbox_init.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+
3
+ var nextgen_simplelightbox_init = function() {
4
+ var selector = nextgen_lightbox_filter_selector($, $(".ngg-simplelightbox"));
5
+ selector.simpleLightbox({
6
+ history: false,
7
+ animationSlide: false,
8
+ animationSpeed: 100
9
+ });
10
+ };
11
+
12
+ $(window).bind('refreshed', nextgen_simplelightbox_init);
13
+ nextgen_simplelightbox_init();
14
+ });
products/photocrati_nextgen/modules/lightbox/static/simplelightbox/nextgen_simple_lightbox_init.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(i){var e=function(){nextgen_lightbox_filter_selector(i,i(".ngg-simplelightbox")).simpleLightbox({history:!1,animationSlide:!1,animationSpeed:100})};i(window).bind("refreshed",e),e()});
products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simple-lightbox.js ADDED
@@ -0,0 +1,581 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ By André Rinas, www.andrerinas.de
3
+ Available for use under the MIT License
4
+ 1.14.0
5
+ */
6
+ ;( function( $, window, document, undefined )
7
+ {
8
+ 'use strict';
9
+
10
+ $.fn.simpleLightbox = function( options )
11
+ {
12
+
13
+ var options = $.extend({
14
+ sourceAttr: 'href',
15
+ overlay: true,
16
+ spinner: true,
17
+ nav: true,
18
+ navText: ['&lsaquo;', '&rsaquo;'],
19
+ captions: true,
20
+ captionDelay: 0,
21
+ captionSelector: 'img',
22
+ captionType: 'attr',
23
+ captionsData: 'title',
24
+ captionPosition: 'bottom',
25
+ captionClass: '',
26
+ close: true,
27
+ closeText: '×',
28
+ swipeClose: true,
29
+ showCounter: true,
30
+ fileExt: 'png|jpg|jpeg|gif',
31
+ animationSlide: true,
32
+ animationSpeed: 250,
33
+ preloading: true,
34
+ enableKeyboard: true,
35
+ loop: true,
36
+ rel: false,
37
+ docClose: true,
38
+ swipeTolerance: 50,
39
+ className: 'simple-lightbox',
40
+ widthRatio: 0.8,
41
+ heightRatio: 0.9,
42
+ scaleImageToRatio: false,
43
+ disableRightClick: false,
44
+ disableScroll: true,
45
+ alertError: true,
46
+ alertErrorMessage: 'Image not found, next image will be loaded',
47
+ additionalHtml: false,
48
+ history: true,
49
+ throttleInterval: 0
50
+ }, options);
51
+
52
+ // global variables
53
+ var touchDevice = ( 'ontouchstart' in window ),
54
+ pointerEnabled = window.navigator.pointerEnabled || window.navigator.msPointerEnabled,
55
+ touched = function( event ){
56
+ if( touchDevice ) return true;
57
+ if( !pointerEnabled || typeof event === 'undefined' || typeof event.pointerType === 'undefined' ) return false;
58
+ if( typeof event.MSPOINTER_TYPE_MOUSE !== 'undefined' ) {
59
+ if( event.MSPOINTER_TYPE_MOUSE != event.pointerType ) return true;
60
+ }
61
+ else {
62
+ if( event.pointerType != 'mouse' ) return true;
63
+ }
64
+ return false;
65
+ },
66
+ swipeDiff = 0,
67
+ swipeYDiff = 0,
68
+ curImg = $(),
69
+ transPrefix = function(){
70
+ var s = document.body || document.documentElement;
71
+ s = s.style;
72
+ if( s.WebkitTransition === '' ) return '-webkit-';
73
+ if( s.MozTransition === '' ) return '-moz-';
74
+ if( s.OTransition === '' ) return '-o-';
75
+ if( s.transition === '' ) return '';
76
+ return false;
77
+ },
78
+ opened = false,
79
+ loaded = [],
80
+ getRelated = function(rel, jqObj) {
81
+ var $related = jqObj.filter(function () {
82
+ return ($(this).attr('rel') === rel);
83
+ });
84
+ return $related;
85
+ },
86
+ objects = (options.rel && options.rel !== false) ? getRelated(options.rel, $(this)) : this,
87
+ transPrefix = transPrefix(),
88
+ globalScrollbarwidth = 0,
89
+ canTransisions = (transPrefix !== false) ? true : false,
90
+ supportsPushState = ('pushState' in history),
91
+ historyhasChanged = false,
92
+ historyUpdateTimeout,
93
+ winLoc = window.location,
94
+ getHash = function(){
95
+ return winLoc.hash.substring(1);
96
+ },
97
+ initialHash = getHash(),
98
+ updateHash = function(){
99
+ var hash = getHash(),
100
+ newHash = 'pid='+(index+1);
101
+ var newURL = winLoc.href.split('#')[0] + '#' + newHash;
102
+
103
+ if(supportsPushState){
104
+ history[historyhasChanged ? 'replaceState' : 'pushState']('', document.title, newURL);
105
+ }else {
106
+ if(historyhasChanged) {
107
+ winLoc.replace( newURL );
108
+ } else {
109
+ winLoc.hash = newHash;
110
+ }
111
+ }
112
+ historyhasChanged = true;
113
+ },
114
+ resetHash = function() {
115
+ if (supportsPushState) {
116
+ history.pushState('', document.title, winLoc.pathname + winLoc.search );
117
+ } else {
118
+ winLoc.hash = '';
119
+ }
120
+ clearTimeout(historyUpdateTimeout);
121
+
122
+ },
123
+ updateURL = function(){
124
+ if(!historyhasChanged) {
125
+ updateHash(); // first time
126
+ } else {
127
+ historyUpdateTimeout = setTimeout(updateHash, 800);
128
+ }
129
+ },
130
+ throttle = function(func, limit) {
131
+ var inThrottle;
132
+ return function() {
133
+ var args = arguments;
134
+ var context = this;
135
+ if (!inThrottle) {
136
+ func.apply(context, args);
137
+ inThrottle = true;
138
+ setTimeout(function() {
139
+ return inThrottle = false;
140
+ }, limit);
141
+ }
142
+ };
143
+ },
144
+ prefix = 'simplelb',
145
+ overlay = $('<div>').addClass('sl-overlay'),
146
+ closeBtn = $('<button>').addClass('sl-close').html(options.closeText),
147
+ spinner = $('<div>').addClass('sl-spinner').html('<div></div>'),
148
+ nav = $('<div>').addClass('sl-navigation').html('<button class="sl-prev">'+options.navText[0]+'</button><button class="sl-next">'+options.navText[1]+'</button>'),
149
+ counter = $('<div>').addClass('sl-counter').html('<span class="sl-current"></span>/<span class="sl-total"></span>'),
150
+ animating = false,
151
+ index = 0,
152
+ caption = $('<div>').addClass('sl-caption '+options.captionClass+' pos-'+options.captionPosition),
153
+ image = $('<div>').addClass('sl-image'),
154
+ wrapper = $('<div>').addClass('sl-wrapper').addClass(options.className),
155
+ isValidLink = function( element ){
156
+ if(!options.fileExt) return true;
157
+ var filEext = /\.([0-9a-z]+)(?=[?#])|(\.)(?:[\w]+)$/gmi;
158
+ var testExt = $( element ).attr( options.sourceAttr ).match(filEext);
159
+ return testExt && $( element ).prop( 'tagName' ).toLowerCase() == 'a' && ( new RegExp( '\.(' + options.fileExt + ')$', 'i' ) ).test( testExt );
160
+ },
161
+ setup = function(){
162
+ if(options.close) closeBtn.appendTo(wrapper);
163
+ if(options.showCounter){
164
+ if(objects.length > 1){
165
+ counter.appendTo(wrapper);
166
+ counter.find('.sl-total').text(objects.length);
167
+ }
168
+ }
169
+ if(options.nav) nav.appendTo(wrapper);
170
+ if(options.spinner) spinner.appendTo(wrapper);
171
+ },
172
+ openImage = function(elem){
173
+ elem.trigger($.Event('show.simplelightbox'));
174
+ if(options.disableScroll) globalScrollbarwidth = handleScrollbar('hide');
175
+ wrapper.appendTo('body');
176
+ image.appendTo(wrapper);
177
+ if(options.overlay) overlay.appendTo($('body'));
178
+ animating = true;
179
+ index = objects.index(elem);
180
+ curImg = $( '<img/>' )
181
+ .hide()
182
+ .attr('src', elem.attr(options.sourceAttr));
183
+ if(loaded.indexOf(elem.attr(options.sourceAttr)) == -1){
184
+ loaded.push(elem.attr(options.sourceAttr));
185
+ }
186
+ image.html('').attr('style','');
187
+ curImg.appendTo(image);
188
+ addEvents();
189
+ overlay.fadeIn('fast');
190
+ $('.sl-close').fadeIn('fast');
191
+ spinner.show();
192
+ nav.fadeIn('fast');
193
+ $('.sl-wrapper .sl-counter .sl-current').text(index +1);
194
+ counter.fadeIn('fast');
195
+ adjustImage();
196
+ if(options.preloading) preload();
197
+ setTimeout( function(){ elem.trigger($.Event('shown.simplelightbox')); } ,options.animationSpeed);
198
+ },
199
+ adjustImage = function(dir){
200
+ if(!curImg.length) return;
201
+ var tmpImage = new Image(),
202
+ windowWidth = $( window ).width() * options.widthRatio,
203
+ windowHeight = $( window ).height() * options.heightRatio;
204
+ tmpImage.src = curImg.attr( 'src' );
205
+
206
+ $(tmpImage).on('error',function(ev){
207
+ //no image was found
208
+ objects.eq(index).trigger($.Event('error.simplelightbox'));
209
+ animating = false;
210
+ opened = true;
211
+ spinner.hide();
212
+ if(options.alertError){
213
+ alert(options.alertErrorMessage);
214
+ }
215
+ if(dir == 1 || dir == -1){
216
+ loadImage(dir);
217
+ } else {
218
+ loadImage(1);
219
+ }
220
+ return;
221
+ });
222
+
223
+
224
+ tmpImage.onload = function() {
225
+ if (typeof dir !== 'undefined') {
226
+ objects.eq(index)
227
+ .trigger($.Event('changed.simplelightbox'))
228
+ .trigger($.Event( (dir===1?'nextDone':'prevDone')+'.simplelightbox'));
229
+ }
230
+
231
+ // history
232
+ if(options.history){
233
+ updateURL();
234
+ }
235
+
236
+ if(loaded.indexOf(curImg.attr( 'src' )) == -1){
237
+ loaded.push(curImg.attr( 'src' ));
238
+ }
239
+ var imageWidth = tmpImage.width,
240
+ imageHeight = tmpImage.height;
241
+
242
+ if( options.scaleImageToRatio || imageWidth > windowWidth || imageHeight > windowHeight ){
243
+ var ratio = imageWidth / imageHeight > windowWidth / windowHeight ? imageWidth / windowWidth : imageHeight / windowHeight;
244
+ imageWidth /= ratio;
245
+ imageHeight /= ratio;
246
+ }
247
+
248
+ $('.sl-image').css({
249
+ 'top': ( $( window ).height() - imageHeight ) / 2 + 'px',
250
+ 'left': ( $( window ).width() - imageWidth - globalScrollbarwidth)/ 2 + 'px'
251
+ });
252
+ spinner.hide();
253
+ curImg
254
+ .css({
255
+ 'width': imageWidth + 'px',
256
+ 'height': imageHeight + 'px'
257
+ })
258
+ .fadeIn('fast');
259
+ opened = true;
260
+ var cSel = (options.captionSelector == 'self') ? objects.eq(index) : objects.eq(index).find(options.captionSelector);
261
+ var captionText;
262
+ if(options.captionType == 'data'){
263
+ captionText = cSel.data(options.captionsData);
264
+ } else if(options.captionType == 'text'){
265
+ captionText = cSel.html();
266
+ } else {
267
+ captionText = cSel.prop(options.captionsData);
268
+ }
269
+
270
+ if(!options.loop) {
271
+ if(index === 0){ $('.sl-prev').hide();}
272
+ if(index >= objects.length -1) {$('.sl-next').hide();}
273
+ if(index > 0){ $('.sl-prev').show(); }
274
+ if(index < objects.length -1){ $('.sl-next').show(); }
275
+ }
276
+
277
+ if(objects.length == 1) $('.sl-prev, .sl-next').hide();
278
+
279
+ if(dir == 1 || dir == -1){
280
+ var css = { 'opacity': 1.0 };
281
+ if( options.animationSlide ) {
282
+ if( canTransisions ) {
283
+ slide(0, 100 * dir + 'px');
284
+ setTimeout( function(){ slide( options.animationSpeed / 1000, 0 + 'px'); }, 50 );
285
+ }
286
+ else {
287
+ css.left = parseInt( $('.sl-image').css( 'left' ) ) + 100 * dir + 'px';
288
+ }
289
+ }
290
+
291
+ $('.sl-image').animate( css, options.animationSpeed, function(){
292
+ animating = false;
293
+ setCaption(captionText, imageWidth);
294
+ });
295
+ } else {
296
+ animating = false;
297
+ setCaption(captionText, imageWidth);
298
+ }
299
+ if(options.additionalHtml && $('.sl-additional-html').length === 0){
300
+ $('<div>').html(options.additionalHtml).addClass('sl-additional-html').appendTo($('.sl-image'));
301
+ }
302
+ };
303
+ },
304
+ setCaption = function(captiontext, imageWidth){
305
+ if(captiontext !== '' && typeof captiontext !== "undefined" && options.captions){
306
+ caption.html(captiontext).css({'width': imageWidth + 'px'}).hide().appendTo($('.sl-image')).delay(options.captionDelay).fadeIn('fast');
307
+ }
308
+ },
309
+ slide = function(speed, pos){
310
+ var styles = {};
311
+ styles[transPrefix + 'transform'] = 'translateX(' + pos + ')';
312
+ styles[transPrefix + 'transition'] = transPrefix + 'transform ' + speed + 's linear';
313
+ $('.sl-image').css(styles);
314
+ },
315
+ addEvents = function(){
316
+ // resize/responsive
317
+ $( window ).on( 'resize.'+prefix, adjustImage );
318
+
319
+ // close lightbox on close btn
320
+ $( document ).on('click.'+prefix+ ' touchstart.'+prefix, '.sl-close', function(e){
321
+ e.preventDefault();
322
+ if(opened){ close();}
323
+ });
324
+
325
+ if(options.history){
326
+ setTimeout(function() {
327
+ $(window).on('hashchange.'+prefix,function(){
328
+ if(opened){
329
+ if(getHash() === initialHash) {
330
+ close();
331
+ return;
332
+ }
333
+ }
334
+ });
335
+ }, 40);
336
+ }
337
+
338
+ // nav-buttons
339
+ nav.on('click.'+prefix, 'button', throttle(function(e){
340
+ e.preventDefault();
341
+ swipeDiff = 0;
342
+ loadImage( $(this).hasClass('sl-next') ? 1 : -1 );
343
+ }, options.throttleInterval));
344
+
345
+ // touchcontrols
346
+ var swipeStart = 0,
347
+ swipeEnd = 0,
348
+ swipeYStart = 0,
349
+ swipeYEnd = 0,
350
+ mousedown = false,
351
+ imageLeft = 0;
352
+
353
+ image
354
+ .on( 'touchstart.'+prefix+' mousedown.'+prefix, function(e)
355
+ {
356
+ if(mousedown) return true;
357
+ if( canTransisions ) imageLeft = parseInt( image.css( 'left' ) );
358
+ mousedown = true;
359
+ swipeDiff = 0;
360
+ swipeYDiff = 0;
361
+ swipeStart = e.originalEvent.pageX || e.originalEvent.touches[ 0 ].pageX;
362
+ swipeYStart = e.originalEvent.pageY || e.originalEvent.touches[ 0 ].pageY;
363
+ return false;
364
+ })
365
+ .on( 'touchmove.'+prefix+' mousemove.'+prefix+' pointermove MSPointerMove', function(e)
366
+ {
367
+ if(!mousedown) return true;
368
+ e.preventDefault();
369
+ swipeEnd = e.originalEvent.pageX || e.originalEvent.touches[ 0 ].pageX;
370
+ swipeYEnd = e.originalEvent.pageY || e.originalEvent.touches[ 0 ].pageY;
371
+ swipeDiff = swipeStart - swipeEnd;
372
+ swipeYDiff = swipeYStart - swipeYEnd;
373
+ if( options.animationSlide ) {
374
+ if( canTransisions ) slide( 0, -swipeDiff + 'px' );
375
+ else image.css( 'left', imageLeft - swipeDiff + 'px' );
376
+ }
377
+ })
378
+ .on( 'touchend.'+prefix+' mouseup.'+prefix+' touchcancel.'+prefix+' mouseleave.'+prefix+' pointerup pointercancel MSPointerUp MSPointerCancel',function(e)
379
+ {
380
+ if(mousedown){
381
+ mousedown = false;
382
+ var possibleDir = true;
383
+ if(!options.loop) {
384
+ if(index === 0 && swipeDiff < 0){ possibleDir = false; }
385
+ if(index >= objects.length -1 && swipeDiff > 0) { possibleDir = false; }
386
+ }
387
+ if( Math.abs( swipeDiff ) > options.swipeTolerance && possibleDir ) {
388
+ loadImage( swipeDiff > 0 ? 1 : -1 );
389
+ }
390
+ else if( options.animationSlide )
391
+ {
392
+ if( canTransisions ) slide( options.animationSpeed / 1000, 0 + 'px' );
393
+ else image.animate({ 'left': imageLeft + 'px' }, options.animationSpeed / 2 );
394
+ }
395
+
396
+ if( options.swipeClose && Math.abs(swipeYDiff) > 50 && Math.abs( swipeDiff ) < options.swipeTolerance) {
397
+ close();
398
+ }
399
+ }
400
+ });
401
+ },
402
+ removeEvents = function(){
403
+ nav.off('click', 'button');
404
+ $( document ).off('click.'+prefix, '.sl-close');
405
+ $( window ).off( 'resize.'+prefix);
406
+ $( window ).off( 'hashchange.'+prefix);
407
+ },
408
+ preload = function(){
409
+ var next = (index+1 < 0) ? objects.length -1: (index+1 >= objects.length -1) ? 0 : index+1,
410
+ prev = (index-1 < 0) ? objects.length -1: (index-1 >= objects.length -1) ? 0 : index-1;
411
+ $( '<img />' ).attr( 'src', objects.eq(next).attr( options.sourceAttr ) ).on('load', function(){
412
+ if(loaded.indexOf($(this).attr('src')) == -1){
413
+ loaded.push($(this).attr('src'));
414
+ }
415
+ objects.eq(index).trigger($.Event('nextImageLoaded.simplelightbox'));
416
+ });
417
+ $( '<img />' ).attr( 'src', objects.eq(prev).attr( options.sourceAttr ) ).on('load', function(){
418
+ if(loaded.indexOf($(this).attr('src')) == -1){
419
+ loaded.push($(this).attr('src'));
420
+ }
421
+ objects.eq(index).trigger($.Event('prevImageLoaded.simplelightbox'));
422
+ });
423
+
424
+ },
425
+ loadImage = function(dir){
426
+ objects.eq(index)
427
+ .trigger($.Event('change.simplelightbox'))
428
+ .trigger($.Event( (dir===1?'next':'prev')+'.simplelightbox'));
429
+
430
+ var newIndex = index + dir;
431
+ if(animating || (newIndex < 0 || newIndex >= objects.length) && options.loop === false ) return;
432
+ index = (newIndex < 0) ? objects.length -1: (newIndex > objects.length -1) ? 0 : newIndex;
433
+ $('.sl-wrapper .sl-counter .sl-current').text(index +1);
434
+ var css = { 'opacity': 0 };
435
+ if( options.animationSlide ) {
436
+ if( canTransisions ) slide(options.animationSpeed / 1000, ( -100 * dir ) - swipeDiff + 'px');
437
+ else css.left = parseInt( $('.sl-image').css( 'left' ) ) + -100 * dir + 'px';
438
+ }
439
+
440
+ $('.sl-image').animate( css, options.animationSpeed, function(){
441
+ setTimeout( function(){
442
+ // fadeout old image
443
+ var elem = objects.eq(index);
444
+ curImg
445
+ .attr('src', elem.attr(options.sourceAttr));
446
+ if(loaded.indexOf(elem.attr(options.sourceAttr)) == -1){
447
+ spinner.show();
448
+ }
449
+ $('.sl-caption').remove();
450
+ adjustImage(dir);
451
+ if(options.preloading) preload();
452
+ }, 100);
453
+ });
454
+ },
455
+ close = function(){
456
+ if(animating) return;
457
+ var elem = objects.eq(index),
458
+ triggered = false;
459
+
460
+ elem.trigger($.Event('close.simplelightbox'));
461
+ if(options.history){
462
+ resetHash();
463
+ }
464
+ $('.sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter').fadeOut('fast', function(){
465
+ if(options.disableScroll) handleScrollbar('show');
466
+ $('.sl-wrapper, .sl-overlay').remove();
467
+ removeEvents();
468
+ if(!triggered) elem.trigger($.Event('closed.simplelightbox'));
469
+ triggered = true;
470
+ });
471
+ curImg = $();
472
+ opened = false;
473
+ animating = false;
474
+ },
475
+ handleScrollbar = function(type){
476
+ var scrollbarWidth = 0;
477
+ if(type == 'hide'){
478
+ var fullWindowWidth = window.innerWidth;
479
+ if (!fullWindowWidth) {
480
+ var documentElementRect = document.documentElement.getBoundingClientRect();
481
+ fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);
482
+ }
483
+ if(document.body.clientWidth < fullWindowWidth){
484
+ var scrollDiv = document.createElement('div'),
485
+ padding = parseInt($('body').css('padding-right'),10);
486
+ scrollDiv.className = 'sl-scrollbar-measure';
487
+ $('body').append(scrollDiv);
488
+ scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
489
+ $(document.body)[0].removeChild(scrollDiv);
490
+ $('body').data('padding',padding);
491
+ if(scrollbarWidth > 0){
492
+ $('body').addClass('hidden-scroll').css({'padding-right':padding+scrollbarWidth});
493
+ }
494
+ }
495
+ } else {
496
+ $('body').removeClass('hidden-scroll').css({'padding-right':$('body').data('padding')});
497
+ }
498
+ return scrollbarWidth;
499
+ };
500
+
501
+ // events
502
+ setup();
503
+
504
+ // open lightbox
505
+ objects.on( 'click.'+prefix, function( e ){
506
+ if(isValidLink(this)){
507
+ e.preventDefault();
508
+ if(animating) return false;
509
+ openImage($(this));
510
+ }
511
+ });
512
+
513
+ // close on click on doc
514
+ $( document ).on('click.'+prefix+ ' touchstart.'+prefix, function(e){
515
+ if(opened){
516
+ if((options.docClose && $(e.target).closest('.sl-image').length === 0 && $(e.target).closest('.sl-navigation').length === 0)){
517
+ close();
518
+ }
519
+ }
520
+ });
521
+
522
+ // disable rightclick
523
+ if(options.disableRightClick){
524
+ $( document ).on('contextmenu', '.sl-image img', function(e){
525
+ return false;
526
+ });
527
+ }
528
+
529
+
530
+ // keyboard-control
531
+ if( options.enableKeyboard ){
532
+ $( document ).on( 'keyup.'+prefix, throttle(function( e ){
533
+ swipeDiff = 0;
534
+ // keyboard control only if lightbox is open
535
+ if(opened){
536
+ e.preventDefault();
537
+ var key = e.keyCode;
538
+ if( key == 27 ) {
539
+ close();
540
+ }
541
+ if( key == 37 || e.keyCode == 39 ) {
542
+ loadImage( e.keyCode == 39 ? 1 : -1 );
543
+ }
544
+ }
545
+ }, options.throttleInterval));
546
+ }
547
+
548
+ // Public methods
549
+ this.open = function(elem){
550
+ elem = elem || $(this[0]);
551
+ openImage(elem);
552
+ };
553
+
554
+ this.next = function(){
555
+ loadImage( 1 );
556
+ };
557
+
558
+ this.prev = function(){
559
+ loadImage( -1 );
560
+ };
561
+
562
+ this.close = function(){
563
+ close();
564
+ };
565
+
566
+ this.destroy = function(){
567
+ $( document ).off('click.'+prefix).off('keyup.'+prefix);
568
+ close();
569
+ $('.sl-overlay, .sl-wrapper').remove();
570
+ this.off('click');
571
+ };
572
+
573
+ this.refresh = function(){
574
+ this.destroy();
575
+ $(this).simpleLightbox(options);
576
+ };
577
+
578
+ return this;
579
+
580
+ };
581
+ })( jQuery, window, document );
products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simple-lightbox.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t,e,i,n){"use strict";t.fn.simpleLightbox=function(n){var a,n=t.extend({sourceAttr:"href",overlay:!0,spinner:!0,nav:!0,navText:["&lsaquo;","&rsaquo;"],captions:!0,captionDelay:0,captionSelector:"img",captionType:"attr",captionsData:"title",captionPosition:"bottom",captionClass:"",close:!0,closeText:"×",swipeClose:!0,showCounter:!0,fileExt:"png|jpg|jpeg|gif",animationSlide:!0,animationSpeed:250,preloading:!0,enableKeyboard:!0,loop:!0,rel:!1,docClose:!0,swipeTolerance:50,className:"simple-lightbox",widthRatio:.8,heightRatio:.9,scaleImageToRatio:!1,disableRightClick:!1,disableScroll:!0,alertError:!0,alertErrorMessage:"Image not found, next image will be loaded",additionalHtml:!1,history:!0,throttleInterval:0},n),o=(e.navigator.pointerEnabled||e.navigator.msPointerEnabled,0),s=0,l=t(),r=function(){var t=i.body||i.documentElement;return t=t.style,""===t.WebkitTransition?"-webkit-":""===t.MozTransition?"-moz-":""===t.OTransition?"-o-":""===t.transition&&""},c=!1,p=[],d=n.rel&&!1!==n.rel?function(e,i){return i.filter(function(){return t(this).attr("rel")===e})}(n.rel,t(this)):this,r=r(),h=0,u=!1!==r,g="pushState"in history,f=!1,m=e.location,v=function(){return m.hash.substring(1)},b=v(),x=function(){var t=(v(),"pid="+(M+1)),e=m.href.split("#")[0]+"#"+t;g?history[f?"replaceState":"pushState"]("",i.title,e):f?m.replace(e):m.hash=t,f=!0},y=function(){g?history.pushState("",i.title,m.pathname+m.search):m.hash="",clearTimeout(a)},w=function(){f?a=setTimeout(x,800):x()},T=function(t,e){var i;return function(){var n=arguments,a=this;i||(t.apply(a,n),i=!0,setTimeout(function(){return i=!1},e))}},E="simplelb",C=t("<div>").addClass("sl-overlay"),S=t("<button>").addClass("sl-close").html(n.closeText),I=t("<div>").addClass("sl-spinner").html("<div></div>"),k=t("<div>").addClass("sl-navigation").html('<button class="sl-prev">'+n.navText[0]+'</button><button class="sl-next">'+n.navText[1]+"</button>"),q=t("<div>").addClass("sl-counter").html('<span class="sl-current"></span>/<span class="sl-total"></span>'),D=!1,M=0,R=t("<div>").addClass("sl-caption "+n.captionClass+" pos-"+n.captionPosition),A=t("<div>").addClass("sl-image"),O=t("<div>").addClass("sl-wrapper").addClass(n.className),P=function(e){if(!n.fileExt)return!0;var i=/\.([0-9a-z]+)(?=[?#])|(\.)(?:[\w]+)$/gim,a=t(e).attr(n.sourceAttr).match(i);return a&&"a"==t(e).prop("tagName").toLowerCase()&&new RegExp(".("+n.fileExt+")$","i").test(a)},z=function(e){e.trigger(t.Event("show.simplelightbox")),n.disableScroll&&(h=$("hide")),O.appendTo("body"),A.appendTo(O),n.overlay&&C.appendTo(t("body")),D=!0,M=d.index(e),l=t("<img/>").hide().attr("src",e.attr(n.sourceAttr)),-1==p.indexOf(e.attr(n.sourceAttr))&&p.push(e.attr(n.sourceAttr)),A.html("").attr("style",""),l.appendTo(A),N(),C.fadeIn("fast"),t(".sl-close").fadeIn("fast"),I.show(),k.fadeIn("fast"),t(".sl-wrapper .sl-counter .sl-current").text(M+1),q.fadeIn("fast"),L(),n.preloading&&j(),setTimeout(function(){e.trigger(t.Event("shown.simplelightbox"))},n.animationSpeed)},L=function(i){if(l.length){var a=new Image,o=t(e).width()*n.widthRatio,s=t(e).height()*n.heightRatio;a.src=l.attr("src"),t(a).on("error",function(e){d.eq(M).trigger(t.Event("error.simplelightbox")),D=!1,c=!0,I.hide(),n.alertError&&alert(n.alertErrorMessage),H(1==i||-1==i?i:1)}),a.onload=function(){void 0!==i&&d.eq(M).trigger(t.Event("changed.simplelightbox")).trigger(t.Event((1===i?"nextDone":"prevDone")+".simplelightbox")),n.history&&w(),-1==p.indexOf(l.attr("src"))&&p.push(l.attr("src"));var r=a.width,g=a.height;if(n.scaleImageToRatio||r>o||g>s){var f=r/g>o/s?r/o:g/s;r/=f,g/=f}t(".sl-image").css({top:(t(e).height()-g)/2+"px",left:(t(e).width()-r-h)/2+"px"}),I.hide(),l.css({width:r+"px",height:g+"px"}).fadeIn("fast"),c=!0;var m,v="self"==n.captionSelector?d.eq(M):d.eq(M).find(n.captionSelector);if(m="data"==n.captionType?v.data(n.captionsData):"text"==n.captionType?v.html():v.prop(n.captionsData),n.loop||(0===M&&t(".sl-prev").hide(),M>=d.length-1&&t(".sl-next").hide(),M>0&&t(".sl-prev").show(),M<d.length-1&&t(".sl-next").show()),1==d.length&&t(".sl-prev, .sl-next").hide(),1==i||-1==i){var b={opacity:1};n.animationSlide&&(u?(X(0,100*i+"px"),setTimeout(function(){X(n.animationSpeed/1e3,"0px")},50)):b.left=parseInt(t(".sl-image").css("left"))+100*i+"px"),t(".sl-image").animate(b,n.animationSpeed,function(){D=!1,W(m,r)})}else D=!1,W(m,r);n.additionalHtml&&0===t(".sl-additional-html").length&&t("<div>").html(n.additionalHtml).addClass("sl-additional-html").appendTo(t(".sl-image"))}}},W=function(e,i){""!==e&&void 0!==e&&n.captions&&R.html(e).css({width:i+"px"}).hide().appendTo(t(".sl-image")).delay(n.captionDelay).fadeIn("fast")},X=function(e,i){var n={};n[r+"transform"]="translateX("+i+")",n[r+"transition"]=r+"transform "+e+"s linear",t(".sl-image").css(n)},N=function(){t(e).on("resize."+E,L),t(i).on("click.simplelb touchstart."+E,".sl-close",function(t){t.preventDefault(),c&&K()}),n.history&&setTimeout(function(){t(e).on("hashchange."+E,function(){if(c&&v()===b)return void K()})},40),k.on("click."+E,"button",T(function(e){e.preventDefault(),o=0,H(t(this).hasClass("sl-next")?1:-1)},n.throttleInterval));var a=0,l=0,r=0,p=0,h=!1,g=0;A.on("touchstart.simplelb mousedown."+E,function(t){return!!h||(u&&(g=parseInt(A.css("left"))),h=!0,o=0,s=0,a=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,r=t.originalEvent.pageY||t.originalEvent.touches[0].pageY,!1)}).on("touchmove.simplelb mousemove.simplelb pointermove MSPointerMove",function(t){if(!h)return!0;t.preventDefault(),l=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,p=t.originalEvent.pageY||t.originalEvent.touches[0].pageY,o=a-l,s=r-p,n.animationSlide&&(u?X(0,-o+"px"):A.css("left",g-o+"px"))}).on("touchend.simplelb mouseup.simplelb touchcancel.simplelb mouseleave.simplelb pointerup pointercancel MSPointerUp MSPointerCancel",function(t){if(h){h=!1;var e=!0;n.loop||(0===M&&o<0&&(e=!1),M>=d.length-1&&o>0&&(e=!1)),Math.abs(o)>n.swipeTolerance&&e?H(o>0?1:-1):n.animationSlide&&(u?X(n.animationSpeed/1e3,"0px"):A.animate({left:g+"px"},n.animationSpeed/2)),n.swipeClose&&Math.abs(s)>50&&Math.abs(o)<n.swipeTolerance&&K()}})},Y=function(){k.off("click","button"),t(i).off("click."+E,".sl-close"),t(e).off("resize."+E),t(e).off("hashchange."+E)},j=function(){var e=M+1<0?d.length-1:M+1>=d.length-1?0:M+1,i=M-1<0?d.length-1:M-1>=d.length-1?0:M-1;t("<img />").attr("src",d.eq(e).attr(n.sourceAttr)).on("load",function(){-1==p.indexOf(t(this).attr("src"))&&p.push(t(this).attr("src")),d.eq(M).trigger(t.Event("nextImageLoaded.simplelightbox"))}),t("<img />").attr("src",d.eq(i).attr(n.sourceAttr)).on("load",function(){-1==p.indexOf(t(this).attr("src"))&&p.push(t(this).attr("src")),d.eq(M).trigger(t.Event("prevImageLoaded.simplelightbox"))})},H=function(e){d.eq(M).trigger(t.Event("change.simplelightbox")).trigger(t.Event((1===e?"next":"prev")+".simplelightbox"));var i=M+e;if(!(D||(i<0||i>=d.length)&&!1===n.loop)){M=i<0?d.length-1:i>d.length-1?0:i,t(".sl-wrapper .sl-counter .sl-current").text(M+1);var a={opacity:0};n.animationSlide&&(u?X(n.animationSpeed/1e3,-100*e-o+"px"):a.left=parseInt(t(".sl-image").css("left"))+-100*e+"px"),t(".sl-image").animate(a,n.animationSpeed,function(){setTimeout(function(){var i=d.eq(M);l.attr("src",i.attr(n.sourceAttr)),-1==p.indexOf(i.attr(n.sourceAttr))&&I.show(),t(".sl-caption").remove(),L(e),n.preloading&&j()},100)})}},K=function(){if(!D){var e=d.eq(M),i=!1;e.trigger(t.Event("close.simplelightbox")),n.history&&y(),t(".sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter").fadeOut("fast",function(){n.disableScroll&&$("show"),t(".sl-wrapper, .sl-overlay").remove(),Y(),i||e.trigger(t.Event("closed.simplelightbox")),i=!0}),l=t(),c=!1,D=!1}},$=function(n){var a=0;if("hide"==n){var o=e.innerWidth;if(!o){var s=i.documentElement.getBoundingClientRect();o=s.right-Math.abs(s.left)}if(i.body.clientWidth<o){var l=i.createElement("div"),r=parseInt(t("body").css("padding-right"),10);l.className="sl-scrollbar-measure",t("body").append(l),a=l.offsetWidth-l.clientWidth,t(i.body)[0].removeChild(l),t("body").data("padding",r),a>0&&t("body").addClass("hidden-scroll").css({"padding-right":r+a})}}else t("body").removeClass("hidden-scroll").css({"padding-right":t("body").data("padding")});return a};return function(){n.close&&S.appendTo(O),n.showCounter&&d.length>1&&(q.appendTo(O),q.find(".sl-total").text(d.length)),n.nav&&k.appendTo(O),n.spinner&&I.appendTo(O)}(),d.on("click."+E,function(e){if(P(this)){if(e.preventDefault(),D)return!1;z(t(this))}}),t(i).on("click.simplelb touchstart."+E,function(e){c&&n.docClose&&0===t(e.target).closest(".sl-image").length&&0===t(e.target).closest(".sl-navigation").length&&K()}),n.disableRightClick&&t(i).on("contextmenu",".sl-image img",function(t){return!1}),n.enableKeyboard&&t(i).on("keyup."+E,T(function(t){if(o=0,c){t.preventDefault();var e=t.keyCode;27==e&&K(),37!=e&&39!=t.keyCode||H(39==t.keyCode?1:-1)}},n.throttleInterval)),this.open=function(e){e=e||t(this[0]),z(e)},this.next=function(){H(1)},this.prev=function(){H(-1)},this.close=function(){K()},this.destroy=function(){t(i).off("click."+E).off("keyup."+E),K(),t(".sl-overlay, .sl-wrapper").remove(),this.off("click")},this.refresh=function(){this.destroy(),t(this).simpleLightbox(n)},this}}(jQuery,window,document);
products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simplelightbox.css ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* line 27, ../sass/simplelightbox.scss */
2
+ body.hidden-scroll {
3
+ overflow: hidden;
4
+ }
5
+
6
+ /* line 30, ../sass/simplelightbox.scss */
7
+ .sl-overlay {
8
+ position: fixed;
9
+ left: 0;
10
+ right: 0;
11
+ top: 0;
12
+ bottom: 0;
13
+ background: #fff;
14
+ opacity: 0.95;
15
+ display: none;
16
+ z-index: 100050;
17
+ }
18
+
19
+ /* line 41, ../sass/simplelightbox.scss */
20
+ .sl-wrapper {
21
+ z-index: 100040;
22
+ }
23
+ /* line 43, ../sass/simplelightbox.scss */
24
+ .sl-wrapper button {
25
+ border: 0 none;
26
+ background: transparent;
27
+ font-size: 28px;
28
+ padding: 0;
29
+ cursor: pointer;
30
+ }
31
+ /* line 49, ../sass/simplelightbox.scss */
32
+ .sl-wrapper button:hover {
33
+ opacity: 0.7;
34
+ }
35
+ /* line 54, ../sass/simplelightbox.scss */
36
+ .sl-wrapper .sl-close {
37
+ display: none;
38
+ position: fixed;
39
+ right: 30px;
40
+ top: 30px;
41
+ z-index: 100060;
42
+ margin-top: -14px;
43
+ margin-right: -14px;
44
+ height: 44px;
45
+ width: 44px;
46
+ line-height: 44px;
47
+ font-family: Arial, Baskerville, monospace;
48
+ color: #000;
49
+ font-size: 3rem;
50
+ }
51
+ /* line 69, ../sass/simplelightbox.scss */
52
+ .sl-wrapper .sl-close:focus {
53
+ outline: none;
54
+ }
55
+ /* line 74, ../sass/simplelightbox.scss */
56
+ .sl-wrapper .sl-counter {
57
+ display: none;
58
+ position: fixed;
59
+ top: 30px;
60
+ left: 30px;
61
+ z-index: 100060;
62
+ color: #000;
63
+ font-size: 1rem;
64
+ }
65
+ /* line 84, ../sass/simplelightbox.scss */
66
+ .sl-wrapper .sl-navigation {
67
+ width: 100%;
68
+ display: none;
69
+ }
70
+ /* line 87, ../sass/simplelightbox.scss */
71
+ .sl-wrapper .sl-navigation button {
72
+ position: fixed;
73
+ top: 50%;
74
+ margin-top: -22px;
75
+ height: 44px;
76
+ width: 22px;
77
+ line-height: 44px;
78
+ text-align: center;
79
+ display: block;
80
+ z-index: 100060;
81
+ font-family: Arial, Baskerville, monospace;
82
+ color: #000;
83
+ }
84
+ /* line 99, ../sass/simplelightbox.scss */
85
+ .sl-wrapper .sl-navigation button.sl-next {
86
+ right: 5px;
87
+ font-size: 2rem;
88
+ }
89
+ /* line 104, ../sass/simplelightbox.scss */
90
+ .sl-wrapper .sl-navigation button.sl-prev {
91
+ left: 5px;
92
+ font-size: 2rem;
93
+ }
94
+ /* line 109, ../sass/simplelightbox.scss */
95
+ .sl-wrapper .sl-navigation button:focus {
96
+ outline: none;
97
+ }
98
+ @media (min-width: 35.5em) {
99
+ /* line 87, ../sass/simplelightbox.scss */
100
+ .sl-wrapper .sl-navigation button {
101
+ width: 44px;
102
+ }
103
+ /* line 116, ../sass/simplelightbox.scss */
104
+ .sl-wrapper .sl-navigation button.sl-next {
105
+ right: 10px;
106
+ font-size: 3rem;
107
+ }
108
+ /* line 121, ../sass/simplelightbox.scss */
109
+ .sl-wrapper .sl-navigation button.sl-prev {
110
+ left: 10px;
111
+ font-size: 3rem;
112
+ }
113
+ }
114
+ @media (min-width: 50em) {
115
+ /* line 87, ../sass/simplelightbox.scss */
116
+ .sl-wrapper .sl-navigation button {
117
+ width: 44px;
118
+ }
119
+ /* line 129, ../sass/simplelightbox.scss */
120
+ .sl-wrapper .sl-navigation button.sl-next {
121
+ right: 20px;
122
+ font-size: 3rem;
123
+ }
124
+ /* line 134, ../sass/simplelightbox.scss */
125
+ .sl-wrapper .sl-navigation button.sl-prev {
126
+ left: 20px;
127
+ font-size: 3rem;
128
+ }
129
+ }
130
+ /* line 142, ../sass/simplelightbox.scss */
131
+ .sl-wrapper .sl-image {
132
+ position: fixed;
133
+ -ms-touch-action: none;
134
+ touch-action: none;
135
+ z-index: 100060;
136
+ }
137
+ /* line 147, ../sass/simplelightbox.scss */
138
+ .sl-wrapper .sl-image img {
139
+ margin: 0;
140
+ padding: 0;
141
+ display: block;
142
+ border: 0 none;
143
+ }
144
+ @media (min-width: 35.5em) {
145
+ /* line 147, ../sass/simplelightbox.scss */
146
+ .sl-wrapper .sl-image img {
147
+ border: 0 none;
148
+ }
149
+ }
150
+ @media (min-width: 50em) {
151
+ /* line 147, ../sass/simplelightbox.scss */
152
+ .sl-wrapper .sl-image img {
153
+ border: 0 none;
154
+ }
155
+ }
156
+ /* line 160, ../sass/simplelightbox.scss */
157
+ .sl-wrapper .sl-image iframe {
158
+ background: #000;
159
+ border: 0 none;
160
+ }
161
+ @media (min-width: 35.5em) {
162
+ /* line 160, ../sass/simplelightbox.scss */
163
+ .sl-wrapper .sl-image iframe {
164
+ border: 0 none;
165
+ }
166
+ }
167
+ @media (min-width: 50em) {
168
+ /* line 160, ../sass/simplelightbox.scss */
169
+ .sl-wrapper .sl-image iframe {
170
+ border: 0 none;
171
+ }
172
+ }
173
+ /* line 170, ../sass/simplelightbox.scss */
174
+ .sl-wrapper .sl-image .sl-caption {
175
+ display: none;
176
+ padding: 10px;
177
+ color: #fff;
178
+ background: rgba(0, 0, 0, 0.8);
179
+ font-size: 1rem;
180
+ position: absolute;
181
+ bottom: 0;
182
+ left: 0;
183
+ right: 0;
184
+ box-sizing: border-box; /* Added by Imagely @ 2018-09-24 for compatibility with Photocrati theme */
185
+ }
186
+ /* line 181, ../sass/simplelightbox.scss */
187
+ .sl-wrapper .sl-image .sl-caption.pos-top {
188
+ bottom: auto;
189
+ top: 0;
190
+ }
191
+ /* line 186, ../sass/simplelightbox.scss */
192
+ .sl-wrapper .sl-image .sl-caption.pos-outside {
193
+ bottom: auto;
194
+ }
195
+ /* line 191, ../sass/simplelightbox.scss */
196
+ .sl-wrapper .sl-image .sl-download {
197
+ display: none;
198
+ position: absolute;
199
+ bottom: 5px;
200
+ right: 5px;
201
+ color: #000;
202
+ z-index: 100060;
203
+ }
204
+
205
+ /* line 202, ../sass/simplelightbox.scss */
206
+ .sl-spinner {
207
+ display: none;
208
+ border: 5px solid #333;
209
+ border-radius: 40px;
210
+ height: 40px;
211
+ left: 50%;
212
+ margin: -20px 0 0 -20px;
213
+ opacity: 0;
214
+ position: fixed;
215
+ top: 50%;
216
+ width: 40px;
217
+ z-index: 100007;
218
+ -webkit-animation: pulsate 1s ease-out infinite;
219
+ -moz-animation: pulsate 1s ease-out infinite;
220
+ -ms-animation: pulsate 1s ease-out infinite;
221
+ -o-animation: pulsate 1s ease-out infinite;
222
+ animation: pulsate 1s ease-out infinite;
223
+ }
224
+
225
+ /* line 221, ../sass/simplelightbox.scss */
226
+ .sl-scrollbar-measure {
227
+ position: absolute;
228
+ top: -9999px;
229
+ width: 50px;
230
+ height: 50px;
231
+ overflow: scroll;
232
+ }
233
+
234
+ @-webkit-keyframes pulsate {
235
+ 0% {
236
+ transform: scale(0.1);
237
+ opacity: 0.0;
238
+ }
239
+ 50% {
240
+ opacity: 1;
241
+ }
242
+ 100% {
243
+ transform: scale(1.2);
244
+ opacity: 0;
245
+ }
246
+ }
247
+ @keyframes pulsate {
248
+ 0% {
249
+ transform: scale(0.1);
250
+ opacity: 0.0;
251
+ }
252
+ 50% {
253
+ opacity: 1;
254
+ }
255
+ 100% {
256
+ transform: scale(1.2);
257
+ opacity: 0;
258
+ }
259
+ }
260
+ @-moz-keyframes pulsate {
261
+ 0% {
262
+ transform: scale(0.1);
263
+ opacity: 0.0;
264
+ }
265
+ 50% {
266
+ opacity: 1;
267
+ }
268
+ 100% {
269
+ transform: scale(1.2);
270
+ opacity: 0;
271
+ }
272
+ }
273
+ @-o-keyframes pulsate {
274
+ 0% {
275
+ transform: scale(0.1);
276
+ opacity: 0.0;
277
+ }
278
+ 50% {
279
+ opacity: 1;
280
+ }
281
+ 100% {
282
+ transform: scale(1.2);
283
+ opacity: 0;
284
+ }
285
+ }
286
+ @-ms-keyframes pulsate {
287
+ 0% {
288
+ transform: scale(0.1);
289
+ opacity: 0.0;
290
+ }
291
+ 50% {
292
+ opacity: 1;
293
+ }
294
+ 100% {
295
+ transform: scale(1.2);
296
+ opacity: 0;
297
+ }
298
+ }
products/photocrati_nextgen/modules/lightbox/static/simplelightbox/simplelightbox.min.css ADDED
@@ -0,0 +1 @@
 
1
+ body.hidden-scroll{overflow:hidden}.sl-overlay{position:fixed;left:0;right:0;top:0;bottom:0;background:#fff;opacity:.95;display:none;z-index:100050}.sl-wrapper{z-index:100040}.sl-wrapper button{border:0 none;background:0 0;font-size:28px;padding:0;cursor:pointer}.sl-wrapper button:hover{opacity:.7}.sl-wrapper .sl-close{display:none;position:fixed;right:30px;top:30px;z-index:100060;margin-top:-14px;margin-right:-14px;height:44px;width:44px;line-height:44px;font-family:Arial,Baskerville,monospace;color:#000;font-size:3rem}.sl-wrapper .sl-close:focus{outline:0}.sl-wrapper .sl-counter{display:none;position:fixed;top:30px;left:30px;z-index:100060;color:#000;font-size:1rem}.sl-wrapper .sl-navigation{width:100%;display:none}.sl-wrapper .sl-navigation button{position:fixed;top:50%;margin-top:-22px;height:44px;width:22px;line-height:44px;text-align:center;display:block;z-index:100060;font-family:Arial,Baskerville,monospace;color:#000}.sl-wrapper .sl-navigation button.sl-next{right:5px;font-size:2rem}.sl-wrapper .sl-navigation button.sl-prev{left:5px;font-size:2rem}.sl-wrapper .sl-navigation button:focus{outline:0}@media (min-width:35.5em){.sl-wrapper .sl-navigation button{width:44px}.sl-wrapper .sl-navigation button.sl-next{right:10px;font-size:3rem}.sl-wrapper .sl-navigation button.sl-prev{left:10px;font-size:3rem}}@media (min-width:50em){.sl-wrapper .sl-navigation button{width:44px}.sl-wrapper .sl-navigation button.sl-next{right:20px;font-size:3rem}.sl-wrapper .sl-navigation button.sl-prev{left:20px;font-size:3rem}}.sl-wrapper .sl-image{position:fixed;-ms-touch-action:none;touch-action:none;z-index:100060}.sl-wrapper .sl-image img{margin:0;padding:0;display:block;border:0 none}@media (min-width:35.5em){.sl-wrapper .sl-image img{border:0 none}}@media (min-width:50em){.sl-wrapper .sl-image img{border:0 none}}.sl-wrapper .sl-image iframe{background:#000;border:0 none}@media (min-width:35.5em){.sl-wrapper .sl-image iframe{border:0 none}}@media (min-width:50em){.sl-wrapper .sl-image iframe{border:0 none}}.sl-wrapper .sl-image .sl-caption{display:none;padding:10px;color:#fff;background:rgba(0,0,0,.8);font-size:1rem;position:absolute;bottom:0;left:0;right:0;box-sizing:border-box}.sl-wrapper .sl-image .sl-caption.pos-top{bottom:auto;top:0}.sl-wrapper .sl-image .sl-caption.pos-outside{bottom:auto}.sl-wrapper .sl-image .sl-download{display:none;position:absolute;bottom:5px;right:5px;color:#000;z-index:100060}.sl-spinner{display:none;border:5px solid #333;border-radius:40px;height:40px;left:50%;margin:-20px 0 0 -20px;opacity:0;position:fixed;top:50%;width:40px;z-index:100007;-webkit-animation:pulsate 1s ease-out infinite;-moz-animation:pulsate 1s ease-out infinite;-ms-animation:pulsate 1s ease-out infinite;-o-animation:pulsate 1s ease-out infinite;animation:pulsate 1s ease-out infinite}.sl-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@-webkit-keyframes pulsate{0%{transform:scale(.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@keyframes pulsate{0%{transform:scale(.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@-moz-keyframes pulsate{0%{transform:scale(.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@-o-keyframes pulsate{0%{transform:scale(.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@-ms-keyframes pulsate{0%{transform:scale(.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}
products/photocrati_nextgen/modules/mvc/module.mvc.php CHANGED
@@ -27,7 +27,7 @@ class M_MVC extends C_Base_Module
27
  'photocrati-mvc',
28
  'MVC Framework',
29
  'Provides an MVC architecture for the plugin to use',
30
- '3.0.0',
31
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery',
32
  'Imagely',
33
  'https://www.imagely.com'
27
  'photocrati-mvc',
28
  'MVC Framework',
29
  'Provides an MVC architecture for the plugin to use',
30
+ '3.0.0.1',
31
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery',
32
  'Imagely',
33
  'https://www.imagely.com'
products/photocrati_nextgen/modules/mvc/package.module.mvc.php CHANGED
@@ -488,7 +488,7 @@ class Mixin_Mvc_View_Instance_Methods extends Mixin
488
  {
489
  $retval = array();
490
  foreach ($this->object->_params as $key => $value) {
491
- if (strpos($key, '_template') !== FALSE) {
492
  $value = $this->object->get_template_abspath($value);
493
  }
494
  $retval[$key] = $value;
@@ -505,7 +505,7 @@ class Mixin_Mvc_View_Instance_Methods extends Mixin
505
  if (!$value) {
506
  $value = $this->object->_template;
507
  }
508
- if ($value[0] == '/' && @file_exists($value)) {
509
  // key is already abspath
510
  } else {
511
  $value = $this->object->find_template_abspath($value);
488
  {
489
  $retval = array();
490
  foreach ($this->object->_params as $key => $value) {
491
+ if (strpos($key, '_template') === 0) {
492
  $value = $this->object->get_template_abspath($value);
493
  }
494
  $retval[$key] = $value;
505
  if (!$value) {
506
  $value = $this->object->_template;
507
  }
508
+ if (strpos($value, DIRECTORY_SEPARATOR) !== FALSE && @file_exists($value)) {
509
  // key is already abspath
510
  } else {
511
  $value = $this->object->find_template_abspath($value);
products/photocrati_nextgen/modules/nextgen_admin/module.nextgen_admin.php CHANGED
@@ -26,7 +26,7 @@ class M_NextGen_Admin extends C_Base_Module
26
  'photocrati-nextgen_admin',
27
  'NextGEN Administration',
28
  'Provides a framework for adding Administration pages',
29
- '3.0.0',
30
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
31
  'Imagely',
32
  'https://www.imagely.com'
26
  'photocrati-nextgen_admin',
27
  'NextGEN Administration',
28
  'Provides a framework for adding Administration pages',
29
+ '3.0.0.1',
30
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
31
  'Imagely',
32
  'https://www.imagely.com'
products/photocrati_nextgen/modules/nextgen_admin/static/nextgen_admin_page.css CHANGED
@@ -449,6 +449,10 @@ table.nextgen_settings_position {
449
  box-shadow: inset 0 0 2px 1px rgba(100,100,100,.05);
450
  }
451
 
 
 
 
 
452
  #ngg_page_content .ngg_page_content_main .select2-container {
453
  width: 200px !important;
454
  line-height: 0;
@@ -660,6 +664,11 @@ table.nextgen_settings_position {
660
  width: 100% !important;
661
  }
662
 
 
 
 
 
 
663
  /***** 6) NGG Admin CSS: NextGEN Pro Custom Post Types *****/
664
 
665
  /* First, CSS for post type lists */
449
  box-shadow: inset 0 0 2px 1px rgba(100,100,100,.05);
450
  }
451
 
452
+ #ngg_page_content .ngg_page_content_main select {
453
+ font-size: 13px;
454
+ }
455
+
456
  #ngg_page_content .ngg_page_content_main .select2-container {
457
  width: 200px !important;
458
  line-height: 0;
664
  width: 100% !important;
665
  }
666
 
667
+ #tr_photocrati-nextgen_basic_imagebrowser_ngg_triggers_display,
668
+ #tr_photocrati-nextgen_basic_slideshow_ngg_triggers_display {
669
+ display:none;
670
+ }
671
+
672
  /***** 6) NGG Admin CSS: NextGEN Pro Custom Post Types *****/
673
 
674
  /* First, CSS for post type lists */
products/photocrati_nextgen/modules/nextgen_admin/static/nextgen_admin_page.min.css CHANGED
@@ -1 +1 @@
1
- .ngg-admin .notice,.ngg-admin div.error,.ngg-admin div.updated{margin:20px 15px 0 0}.ngg-admin #ngg_page_content .notice,.ngg-admin #ngg_page_content div.error,.ngg-admin #ngg_page_content div.updated{margin:20px 0 20px 0}.hidden{display:none}.nextgen_advanced_toggle_link{font-size:11px;position:relative;bottom:5px;color:#444}.url_field{width:400px;max-width:100%}.nextgen_settings_colorpicker{width:85px!important;text-align:center;margin-left:50px}#nextgen_settings_wmXpos,#nextgen_settings_wmYpos{width:65px!important}table.nextgen_settings_position{width:auto!important}#ngg_page_content label.tooltip,#ngg_page_content span.tooltip{outline:0;background-image:url(information.png);background-repeat:no-repeat;padding-left:22px;padding-bottom:4px;background-size:18px}#poststuff .ui-accordion h3{padding-left:25px}#lightbox_effects_content table tr td:first-child{vertical-align:top;text-align:right;padding-right:7px;padding-top:5px}#lightbox_effects_content tr{height:28px}.ngg-admin #screen-meta-links{padding-bottom:20px}.ngg-admin #wpbody{position:static}#ngg_page_content{padding-bottom:0;width:98%;font-family:lato,sans-serif;height:auto;margin-top:25px;float:left;box-shadow:0 0 100px 10px rgba(0,0,0,.05)}#adminmenu .wp-submenu a[href*=ngg_pro_upgrade]{color:#9fbb1a;font-weight:600}.toplevel_page_nextgen-gallery #ngg_page_content{margin-top:20px}#ngg_page_content.ngg_settings_page{background:#fff}.ngg_gallery_sort,.ngg_manage_albums,.ngg_manage_galleries,.ngg_manage_images{background:#fcfcfc}#ngg_page_content .wrap{margin:0}#ngg_page_content .about-wrap{max-width:100%;background:#fff;float:left;background:#fcfcfc}#ngg_page_content a{color:#9fbb1a}#ngg_page_content .button-primary,#ngg_page_content .button-secondary,#ngg_page_content button{background-color:#9fbb1a;color:#fff!important;border:none!important;box-shadow:none!important;text-shadow:none!important;height:35px!important;padding:0 24px!important;line-height:35px;width:auto!important;border-radius:3px;text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700;font-family:Lato,sans-serif}#ngg_page_content .button-primary:hover,#ngg_page_content .button-secondary:hover,#ngg_page_content button:hover{background-color:#a9c524}#ngg_page_content .button-primary:active,#ngg_page_content .button-secondary:active,#ngg_page_content button:active{vertical-align:middle}#ngg_page_content .button-secondary{background-color:#888!important}.ngg-admin #ngg_page_content .notice button,.ngg-admin #ngg_page_content div.error button,.ngg-admin #ngg_page_content div.updated button{background-color:transparent!important;padding:0}#ngg_page_content button,.ngg-admin .notice button,.ngg-admin div.error button,.ngg-admin div.updated button{background:0 0}#ngg_page_content button.wp-color-result{height:24px!important;padding:0 0 0 30px!important;border:1px solid #ddd!important}#ngg_page_content button.wp-color-result:hover{background-color:transparent}#ngg_page_content input[type=checkbox]{height:16px!important;width:16px!important}#ngg_page_content.ngg_settings_page form>p{width:81%;background:#fff;margin:0;float:right}#ngg_page_content .ngg_save_settings_button{margin:30px;font-weight:700;height:40px!important;padding:0 40px!important}#ngg_page_content ::-webkit-input-placeholder{color:#aaa}#ngg_page_content :-ms-input-placeholder{color:#aaa}#ngg_page_content ::-moz-placeholder{color:#aaa;opacity:1}#ngg_page_content :-moz-placeholder{color:#aaa;opacity:1}.ngg-admin .select2-drop.select2-drop-above .select2-search input{width:100%}#ngg_page_content .ngg_page_content_header{border-bottom:10px solid #9fbb1a;height:80px;padding:0 0 0 20px;background:#143650;margin-top:-23px}#ngg_page_content .ngg_page_content_header img{height:40px;padding-top:20px;padding-right:20px;float:left;width:auto}#ngg_page_content .ngg_page_content_header h2,#ngg_page_content .ngg_page_content_header h3{line-height:80px;color:#fff;font-size:18px;font-family:Lato,sans-serif;text-transform:uppercase;letter-spacing:2px;text-align:left;font-weight:900}#ngg_page_content .ngg_page_content_header p{float:right;margin:-98px 0 0 0;font-size:15px;font-style:italic;font-weight:400;color:#cdd3d8;background:rgba(93,134,167,.18);padding:0 40px;border-left:1px solid #566b7c;color:#a7b8c6;line-height:80px}#ngg_page_content .ngg_page_content_header p a{text-decoration:none;font-weight:500;background:#aac43b;color:#fff;padding:5px 10px;font-style:normal;margin:-1px 0 0 20px;border-radius:1px;text-transform:uppercase}#ngg_page_content .ngg_page_content_header .ngg_save_settings_button{margin:0!important}#ngg_page_content .ngg_page_content_menu{padding:20px;width:20%;float:left;padding:0;height:100%;background:0 0}#ngg_page_content .ngg_page_content_menu a{box-shadow:none!important;cursor:pointer;display:block;padding:20px 10px 20px 15px;line-height:22px;margin:0;text-decoration:none;color:#2b5d89;text-transform:uppercase;font-size:11px;border-bottom:1px solid #eee;font-weight:600;letter-spacing:1.2px}.responsive-menu-icon{cursor:pointer;display:none;margin-bottom:5px;text-align:left}.responsive-menu-icon::before{color:#fff;content:'\f0c9';display:block;font:normal 20px/1 FontAwesome;margin:0 auto;text-align:center}#ngg_page_content .ngg_page_content_menu .ngg_page_content_menu_active,#ngg_page_content .ngg_page_content_menu a:active{outline:0;outline-width:0;outline-color:transparent;border-right:1px solid #fff;background:#9ebc1b;position:relative;color:#fff;margin-right:-1px;font-weight:800;border-bottom:1px solid #9dbd1b}#ngg_page_content .ngg_page_content_menu a:before{content:"\f107";float:left;font:normal 16px/1 FontAwesome;height:16px;right:0;margin-top:3px;text-align:right;z-index:9999;padding-right:10px;content:"\f1de"}#ngg_page_content .ngg_page_content_menu .ngg_page_content_menu_active:after,#ngg_page_content .ngg_page_content_menu a:active:after{right:0;border:8px solid transparent;content:"";width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}#ngg_page_content .ngg_page_content_main{padding:10px 20px 20px 30px;min-height:600px;float:left;background:#fff;box-sizing:border-box;width:100%;box-shadow:0 -5px 4px 2px rgba(0,0,0,.05)}#ngg_page_content .ngg_overview .ngg_page_content_main,#ngg_page_content.ngg_settings_page .ngg_page_content_main{width:80%}.gallery_page_ngg_display_settings #ngg_page_content.ngg_settings_page .ngg_page_content_main{min-height:1000px}.gallery_page_ngg_other_options #ngg_page_content.ngg_settings_page .ngg_page_content_main{min-height:400px}#ngg_page_content .ngg_manage_tags .ngg_page_content_main{padding:0}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main>div,#ngg_page_content .ngg_overview .ngg_page_content_main>div,#ngg_page_content.ngg_settings_page .ngg_page_content_main>div{display:none}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main>div:first-of-type,#ngg_page_content .ngg_overview .ngg_page_content_main>div:first-of-type,#ngg_page_content.ngg_settings_page .ngg_page_content_main>div:first-of-type{display:block}#ngg_page_content.ngg_settings_page .ngg_page_content_main h3{color:rgba(29,36,42,.85);font-size:18px;margin:20px 0 30px;text-transform:uppercase}#ngg_page_content .ngg_page_content_main input,#ngg_page_content .ngg_page_content_main select{color:#888;height:35px;border:1px solid #ddd;padding-left:10px;box-shadow:none;width:200px;box-shadow:inset 0 0 2px 1px rgba(100,100,100,.05)}#ngg_page_content .ngg_page_content_main .select2-container{width:200px!important;line-height:0}#ngg_page_content .ngg_page_content_main .select2-selection--multiple,#ngg_page_content .ngg_page_content_main .select2-selection--single{border:1px solid #ddd}#ngg_page_content .ngg_page_content_main .select2-search{width:100%}#ngg_page_content .ngg_page_content_main .select2-search__field{border-radius:3px}#ngg_page_content .ngg_page_content_main .select2-selection__choice{background:#9fbb1a;background-image:none;border:none;box-shadow:none;color:#fff;line-height:20px;padding:7px 10px 7px 8px;width:92%}#ngg_page_content .ngg_page_content_main .select2-selection__choice__remove{color:#fff;margin-right:6px}#ngg_page_content .ngg_page_content_main div[data-id=lightbox_effects] .select2-container,#ngg_page_content .ngg_page_content_main div[data-id=lightbox_effects] input,#ngg_page_content .ngg_page_content_main div[data-id=lightbox_effects] select{width:250px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main input[type=radio],#ngg_page_content.ngg_settings_page .ngg_page_content_main input[type=radio]{border-radius:50%!important;height:16px!important;width:16px!important;padding:0!important;vertical-align:middle}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main input[type=radio]:checked:before,#ngg_page_content.ngg_settings_page .ngg_page_content_main input[type=radio]:checked:before{background-color:#9fbb1a;border-radius:50%;color:transparent;content:"\2022";display:block;height:16px;margin:0 0 0 -1px;vertical-align:middle;width:16px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table,#ngg_page_content.ngg_settings_page .ngg_page_content_main table{color:rgba(29,36,42,.85);border-collapse:collapse;width:100%}#ngg_page_content table .sorting-indicator:before{color:#fff!important}#attach_to_post_tabs #displayed_tab #display_settings_tab_content table tr,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr{border:1px solid #f7f8f3;padding:5px 0!important;height:auto}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr th{line-height:30px;vertical-align:middle;padding:10px 20px;box-sizing:border-box}.ngg-admin #ngg_page_content .widefat td,.ngg-admin #ngg_page_content .widefat th{padding:10px;color:rgba(118,169,52,.75);color:#aaa;vertical-align:middle}.ngg-admin #ngg_page_content .widefat tfoot th,.ngg-admin #ngg_page_content .widefat thead th{padding:0 10px;color:#fff;text-transform:uppercase}#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr th{font-weight:400!important;font-size:13px!important;line-height:1.5!important}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr td:first-of-type{width:300px;text-align:left;font-weight:400;padding-top:8px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table table tr td:first-of-type,#ngg_page_content.ngg_settings_page .ngg_page_content_main table table tr td:first-of-type{width:auto;font-weight:400;padding:10px 20px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr:nth-of-type(2n),#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr:nth-of-type(2n){background-color:#f7f8f3}#ngg_page_content.ngg_settings_page .ngg_page_content_main tr.watermark_field{padding:10px 0!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table{border:1px solid #d3e1c8}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table td{padding:5px 15px!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table td:first-of-type{width:auto!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table tr{border:none;padding:0!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field img{max-width:100%}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main label,#ngg_page_content.ngg_settings_page .ngg_page_content_main label,#ngg_page_content.ngg_settings_page .ngg_page_content_main p.description{font-size:14px;color:#666}#ngg_page_content.ngg_settings_page .ngg_page_content_main label{margin-right:5px}#ngg_page_content.ngg_settings_page .ngg_page_content_main label:last-of-type{margin-right:15px}#ngg_page_content.ngg_settings_page .nextgen_settings_position td,#ngg_page_content.ngg_settings_page .nextgen_settings_position tr:nth-of-type(2n){border:none!important}#ngg_page_content.ngg_settings_page .nextgen_pro_lightbox_admin_header{background:#38576f!important;margin-top:20px}.nextgen_pro_lightbox_admin_header td{padding-left:0!important}.nextgen_pro_lightbox_admin_header td h3{text-transform:none!important;color:#fff!important;margin:0 0 0 20px!important}.ngg_options_promo{background:#224460;color:#fff;font-family:Lato,sans-serif;font-size:14px;font-weight:600}.ngg_options_promo a{text-decoration:none;font-weight:600;margin-left:6px}.gallery_page_ngg_other_options #ngg_page_content .ngg_page_content_main tbody tr td.ngg_options_promo{width:100%!important}.ngg-post-type .ngg_page_content_main .button,.ngg-post-type .ngg_page_content_main .page-title-action{background-color:#9fbb1a!important;color:#fff!important;border:none!important;box-shadow:none!important;text-shadow:none!important;height:35px!important;padding:0 15px!important;line-height:35px;width:auto!important}.ngg-post-type .ngg_page_content_main .button:hover,.ngg-post-type .ngg_page_content_main .page-title-action:hover{background-color:#a9c524!important}.ngg-post-type .ngg_page_content_main .page-title-action{padding:8px 16px!important}.ngg-post-type .ngg_admin_notice{display:none}.ngg-post-type .ngg_page_content_main .tablenav{margin:0 0 20px}.ngg-post-type .ngg_page_content_main .tablenav .actions,.ngg-post-type .ngg_page_content_main .tablenav .tablenav-pages{margin:10px 0}.ngg-post-type .ngg_page_content_main .tablenav .tablenav-pages a,.ngg-post-type .ngg_page_content_main .tablenav-pages-navspan{background:#556472;border:none;color:#fff!important;margin:0 2px}.ngg-post-type #ngg_page_content .ngg_page_content_main .tablenav input.current-page{width:50px!important}.ngg-post-type .ngg_page_content_main table{box-shadow:none;table-layout:auto;border:1px solid rgba(159,187,26,.08)}.ngg-post-type .ngg_page_content_main table tfoot,.ngg-post-type .ngg_page_content_main table thead{background-color:#38576f;text-transform:uppercase}.ngg-post-type .ngg_page_content_main table tfoot{background-color:#38576f}.ngg-post-type .ngg_page_content_main table tfoot a,.ngg-post-type .ngg_page_content_main table thead a{padding:0}.ngg-post-type .ngg_page_content_main table tfoot span,.ngg-post-type .ngg_page_content_main table thead span{color:#fff;font-size:15px}.ngg-post-type .ngg_page_content_main table thead td,.ngg-post-type .ngg_page_content_main table thead th{background-color:transparent;border:none;color:#fff}.ngg-post-type .ngg_page_content_main table thead td{padding:12px 5px!important}.ngg-post-type #ngg_page_content .ngg_page_content_main input[type=checkbox]{height:13px!important;width:13px!important;min-width:auto;margin-top:2px}.ngg-post-type #ngg_page_content .ngg_page_content_main input[type=checkbox]:checked:before{color:#9fbb1a;margin:-5px 0 0 -5px}.ngg-post-type #ngg_page_content .sorting-indicator:before{color:#fff!important}.ngg-post-type .ngg_page_content_main .striped>tbody>:nth-child(odd){background-color:#f7f8f3}.ngg-post-type .ngg_page_content_main a.row-title{font-weight:400}.ngg-post-type .ngg_page_content_main .row-actions{left:0;padding-top:0}.ngg-post-type .ngg_page_content_main .row-actions a{color:rgba(118,169,52,.75)!important;color:#aaa!important}.ngg-post-type .ngg_page_content_main td.column-title strong{margin-bottom:0}.ngg-post-type #wpbody-content .quick-edit-row-page .inline-edit-col-left{width:100%}.ngg-post-type #ngg_page_content .widefat td,.ngg-post-type #ngg_page_content .widefat th{padding:10px;color:rgba(118,169,52,.75);color:#aaa;vertical-align:middle}.ngg-post-type #ngg_page_content .widefat tfoot th,.ngg-post-type #ngg_page_content .widefat thead th{padding:0 10px;color:#fff;text-transform:uppercase}.ngg-post-type .ngg_page_content_main .tablenav.bottom{margin:10px 0 0}.ngg-admin #postbox-container-2 h2.ui-sortable-handle,.ngg-post-type #ngg_page_content h3.accordion_tab{padding:10px;background:#38576f;margin-bottom:0}.ngg-admin #postbox-container-2 h2.ui-sortable-handle,.ngg-post-type #ngg_page_content h3.accordion_tab a{color:#fff;text-decoration:none}.ngg-admin #postbox-container-2 .postbox,.ngg-post-type .accordion>div{border-left:1px solid rgba(159,187,26,.05);border-bottom:1px solid rgba(159,187,26,.05);border-right:1px solid rgba(159,187,26,.05);margin-bottom:30px;background-color:#f7f8f3}.ngg-post-type .accordion>div{padding:20px;margin-bottom:30px}.ngg-post-type .accordion>div table{border:none}.ngg-admin #postbox-container-2 .postbox .inside{margin:0}.ngg-admin #postbox-container-2 .postbox .inside a{color:#9fbb1a}.ngg-admin #postbox-container-2 .postbox .inside td,.ngg-admin #postbox-container-2 .postbox .inside th{padding:5px 10px}.ngg-admin #postbox-container-2 .postbox .inside .button-primary,.ngg-post-type .accordion>div .button-primary{margin:15px 0 0}.ngg-post-type table input[type=text]{margin:0}@media (max-width:1030px){#ngg_page_content .ngg_page_content_header p{padding:0 20px}}@media (max-width:900px){#ngg_page_content .ngg_page_content_header p{display:none}}@media (max-width:782px){.ngg-post-type #ngg_page_content button.toggle-row{width:40px!important;height:40px!important;background:0 0!important}.ngg-post-type tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){padding:3px 8px 3px 35%}.ngg-post-type #ngg_page_content .ngg_page_content_main input[type=checkbox]:checked:before{font:400 20px/1 dashicons!important}#ngg_page_content .ngg_page_content_header img{padding-right:10px}#ngg_page_content .ngg_overview .ngg_page_content_header h3,#ngg_page_content .ngg_page_content_header h3{font-size:14px}#ngg_page_content .ngg_overview .ngg_page_content_main,#ngg_page_content .ngg_page_content_menu,#ngg_page_content.ngg_settings_page .ngg_page_content_main{width:100%}#ngg_page_content .ngg_page_content_main,#ngg_page_content.ngg_settings_page .ngg_page_content_main{padding:20px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table,#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main tbody,#ngg_page_content.ngg_settings_page .ngg_page_content_main table,#ngg_page_content.ngg_settings_page .ngg_page_content_main tbody{display:block!important;max-width:100%}#ngg_page_content.ngg_settings_page .ngg_page_content_main tbody.hidden{display:none!important}#attach_to_post_tabs #displayed_tab #ngg_page_content #slug_configuration{display:none!important}#attach_to_post_tabs #displayed_tab #display_settings_tab_content table tr,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr{display:block!important;padding:10px 0 20px!important}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr th{display:block;padding:2px 10px}#ngg_page_content.ngg_settings_page .ngg_page_content_main table.nextgen_settings_position tr td{display:table-cell}#ngg_page_content.ngg_settings_page .ngg_page_content_main h2,#ngg_page_content.ngg_settings_page .ngg_page_content_main h3{text-align:center}#ngg_page_content.ngg_settings_page form>p{width:100%;padding:15px;box-sizing:border-box}#ngg_page_content .ngg_page_content_main input,#ngg_page_content .ngg_page_content_main select{max-width:100%;margin:5px 0;box-sizing:border-box}#ngg_page_content .ngg_page_content_main .select2-container,#ngg_page_content .ngg_page_content_main input[type=number],#ngg_page_content .ngg_page_content_main input[type=text],#ngg_page_content .ngg_page_content_main select{width:100%!important}#ngg_page_content button.wp-color-result{width:auto!important}#ngg_page_content button.wp-color-result .wp-color-result-text{line-height:22px}.ngg-post-type .ngg_page_content_main .subsubsub{width:100%}.ngg-post-type .ngg_page_content_main .tablenav .actions{width:100%}.ngg-post-type #ngg_page_content .ngg_page_content_main input,.ngg-post-type #ngg_page_content .ngg_page_content_main select{width:100%!important;max-width:100%;margin:5px 0;box-sizing:border-box}#ngg_page_content input[type=checkbox]{width:16px!important}#ngg_page_content .button-primary,#ngg_page_content .button-secondary,#ngg_page_content button{width:100%!important;margin:4px 0;display:block;text-align:center}.ngg-post-type .ngg_page_content_main .button,.ngg-post-type .ngg_page_content_main .page-title-action{width:80%!important;margin:4px 0;display:block;text-align:center;margin:10px auto 20px;padding:0!important}.ngg-post-type .ngg_page_content_main .displaying-num{display:none}#gallery_selection label{display:block;padding-bottom:8px}.post-type-ngg_pricelist .accordion table{width:100%!important}.post-type-ngg_pricelist .accordion #manual_shipping_options td{display:block;width:100%!important}.post-type-ngg_pricelist #ngg_page_content .accordion table input.shipping_rate{width:100%;max-width:100%}.post-type-ngg_pricelist .accordion input[type=checkbox]:checked:before{font:400 21px/1 dashicons}.ngg-post-type #ngg_page_content h1{text-align:center;display:block}#ngg_page_content .responsive-menu-icon{display:block;background:#9fbb1a;padding:10px 0 15px}#ngg_page_content .responsive-menu{display:none;float:none;margin:0}#ngg_page_content .responsive-menu a{display:block}#ngg_page_content .ngg_page_content_menu .ngg_page_content_menu_active:after,#ngg_page_content .ngg_page_content_menu a:active:after{display:none}}
1
+ .ngg-admin .notice,.ngg-admin div.error,.ngg-admin div.updated{margin:20px 15px 0 0}.ngg-admin #ngg_page_content .notice,.ngg-admin #ngg_page_content div.error,.ngg-admin #ngg_page_content div.updated{margin:20px 0 20px 0}.hidden{display:none}.nextgen_advanced_toggle_link{font-size:11px;position:relative;bottom:5px;color:#444}.url_field{width:400px;max-width:100%}.nextgen_settings_colorpicker{width:85px!important;text-align:center;margin-left:50px}#nextgen_settings_wmXpos,#nextgen_settings_wmYpos{width:65px!important}table.nextgen_settings_position{width:auto!important}#ngg_page_content label.tooltip,#ngg_page_content span.tooltip{outline:0;background-image:url(information.png);background-repeat:no-repeat;padding-left:22px;padding-bottom:4px;background-size:18px}#poststuff .ui-accordion h3{padding-left:25px}#lightbox_effects_content table tr td:first-child{vertical-align:top;text-align:right;padding-right:7px;padding-top:5px}#lightbox_effects_content tr{height:28px}.ngg-admin #screen-meta-links{padding-bottom:20px}.ngg-admin #wpbody{position:static}#ngg_page_content{padding-bottom:0;width:98%;font-family:lato,sans-serif;height:auto;margin-top:25px;float:left;box-shadow:0 0 100px 10px rgba(0,0,0,.05)}#adminmenu .wp-submenu a[href*=ngg_pro_upgrade]{color:#9fbb1a;font-weight:600}.toplevel_page_nextgen-gallery #ngg_page_content{margin-top:20px}#ngg_page_content.ngg_settings_page{background:#fff}.ngg_gallery_sort,.ngg_manage_albums,.ngg_manage_galleries,.ngg_manage_images{background:#fcfcfc}#ngg_page_content .wrap{margin:0}#ngg_page_content .about-wrap{max-width:100%;background:#fff;float:left;background:#fcfcfc}#ngg_page_content a{color:#9fbb1a}#ngg_page_content .button-primary,#ngg_page_content .button-secondary,#ngg_page_content button{background-color:#9fbb1a;color:#fff!important;border:none!important;box-shadow:none!important;text-shadow:none!important;height:35px!important;padding:0 24px!important;line-height:35px;width:auto!important;border-radius:3px;text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700;font-family:Lato,sans-serif}#ngg_page_content .button-primary:hover,#ngg_page_content .button-secondary:hover,#ngg_page_content button:hover{background-color:#a9c524}#ngg_page_content .button-primary:active,#ngg_page_content .button-secondary:active,#ngg_page_content button:active{vertical-align:middle}#ngg_page_content .button-secondary{background-color:#888!important}.ngg-admin #ngg_page_content .notice button,.ngg-admin #ngg_page_content div.error button,.ngg-admin #ngg_page_content div.updated button{background-color:transparent!important;padding:0}#ngg_page_content button,.ngg-admin .notice button,.ngg-admin div.error button,.ngg-admin div.updated button{background:0 0}#ngg_page_content button.wp-color-result{height:24px!important;padding:0 0 0 30px!important;border:1px solid #ddd!important}#ngg_page_content button.wp-color-result:hover{background-color:transparent}#ngg_page_content input[type=checkbox]{height:16px!important;width:16px!important}#ngg_page_content.ngg_settings_page form>p{width:81%;background:#fff;margin:0;float:right}#ngg_page_content .ngg_save_settings_button{margin:30px;font-weight:700;height:40px!important;padding:0 40px!important}#ngg_page_content ::-webkit-input-placeholder{color:#aaa}#ngg_page_content :-ms-input-placeholder{color:#aaa}#ngg_page_content ::-moz-placeholder{color:#aaa;opacity:1}#ngg_page_content :-moz-placeholder{color:#aaa;opacity:1}.ngg-admin .select2-drop.select2-drop-above .select2-search input{width:100%}#ngg_page_content .ngg_page_content_header{border-bottom:10px solid #9fbb1a;height:80px;padding:0 0 0 20px;background:#143650;margin-top:-23px}#ngg_page_content .ngg_page_content_header img{height:40px;padding-top:20px;padding-right:20px;float:left;width:auto}#ngg_page_content .ngg_page_content_header h2,#ngg_page_content .ngg_page_content_header h3{line-height:80px;color:#fff;font-size:18px;font-family:Lato,sans-serif;text-transform:uppercase;letter-spacing:2px;text-align:left;font-weight:900}#ngg_page_content .ngg_page_content_header p{float:right;margin:-98px 0 0 0;font-size:15px;font-style:italic;font-weight:400;color:#cdd3d8;background:rgba(93,134,167,.18);padding:0 40px;border-left:1px solid #566b7c;color:#a7b8c6;line-height:80px}#ngg_page_content .ngg_page_content_header p a{text-decoration:none;font-weight:500;background:#aac43b;color:#fff;padding:5px 10px;font-style:normal;margin:-1px 0 0 20px;border-radius:1px;text-transform:uppercase}#ngg_page_content .ngg_page_content_header .ngg_save_settings_button{margin:0!important}#ngg_page_content .ngg_page_content_menu{padding:20px;width:20%;float:left;padding:0;height:100%;background:0 0}#ngg_page_content .ngg_page_content_menu a{box-shadow:none!important;cursor:pointer;display:block;padding:20px 10px 20px 15px;line-height:22px;margin:0;text-decoration:none;color:#2b5d89;text-transform:uppercase;font-size:11px;border-bottom:1px solid #eee;font-weight:600;letter-spacing:1.2px}.responsive-menu-icon{cursor:pointer;display:none;margin-bottom:5px;text-align:left}.responsive-menu-icon::before{color:#fff;content:'\f0c9';display:block;font:normal 20px/1 FontAwesome;margin:0 auto;text-align:center}#ngg_page_content .ngg_page_content_menu .ngg_page_content_menu_active,#ngg_page_content .ngg_page_content_menu a:active{outline:0;outline-width:0;outline-color:transparent;border-right:1px solid #fff;background:#9ebc1b;position:relative;color:#fff;margin-right:-1px;font-weight:800;border-bottom:1px solid #9dbd1b}#ngg_page_content .ngg_page_content_menu a:before{content:"\f107";float:left;font:normal 16px/1 FontAwesome;height:16px;right:0;margin-top:3px;text-align:right;z-index:9999;padding-right:10px;content:"\f1de"}#ngg_page_content .ngg_page_content_menu .ngg_page_content_menu_active:after,#ngg_page_content .ngg_page_content_menu a:active:after{right:0;border:8px solid transparent;content:"";width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}#ngg_page_content .ngg_page_content_main{padding:10px 20px 20px 30px;min-height:600px;float:left;background:#fff;box-sizing:border-box;width:100%;box-shadow:0 -5px 4px 2px rgba(0,0,0,.05)}#ngg_page_content .ngg_overview .ngg_page_content_main,#ngg_page_content.ngg_settings_page .ngg_page_content_main{width:80%}.gallery_page_ngg_display_settings #ngg_page_content.ngg_settings_page .ngg_page_content_main{min-height:1000px}.gallery_page_ngg_other_options #ngg_page_content.ngg_settings_page .ngg_page_content_main{min-height:400px}#ngg_page_content .ngg_manage_tags .ngg_page_content_main{padding:0}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main>div,#ngg_page_content .ngg_overview .ngg_page_content_main>div,#ngg_page_content.ngg_settings_page .ngg_page_content_main>div{display:none}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main>div:first-of-type,#ngg_page_content .ngg_overview .ngg_page_content_main>div:first-of-type,#ngg_page_content.ngg_settings_page .ngg_page_content_main>div:first-of-type{display:block}#ngg_page_content.ngg_settings_page .ngg_page_content_main h3{color:rgba(29,36,42,.85);font-size:18px;margin:20px 0 30px;text-transform:uppercase}#ngg_page_content .ngg_page_content_main input,#ngg_page_content .ngg_page_content_main select{color:#888;height:35px;border:1px solid #ddd;padding-left:10px;box-shadow:none;width:200px;box-shadow:inset 0 0 2px 1px rgba(100,100,100,.05)}#ngg_page_content .ngg_page_content_main select{font-size:13px}#ngg_page_content .ngg_page_content_main .select2-container{width:200px!important;line-height:0}#ngg_page_content .ngg_page_content_main .select2-selection--multiple,#ngg_page_content .ngg_page_content_main .select2-selection--single{border:1px solid #ddd}#ngg_page_content .ngg_page_content_main .select2-search{width:100%}#ngg_page_content .ngg_page_content_main .select2-search__field{border-radius:3px}#ngg_page_content .ngg_page_content_main .select2-selection__choice{background:#9fbb1a;background-image:none;border:none;box-shadow:none;color:#fff;line-height:20px;padding:7px 10px 7px 8px;width:92%}#ngg_page_content .ngg_page_content_main .select2-selection__choice__remove{color:#fff;margin-right:6px}#ngg_page_content .ngg_page_content_main div[data-id=lightbox_effects] .select2-container,#ngg_page_content .ngg_page_content_main div[data-id=lightbox_effects] input,#ngg_page_content .ngg_page_content_main div[data-id=lightbox_effects] select{width:250px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main input[type=radio],#ngg_page_content.ngg_settings_page .ngg_page_content_main input[type=radio]{border-radius:50%!important;height:16px!important;width:16px!important;padding:0!important;vertical-align:middle}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main input[type=radio]:checked:before,#ngg_page_content.ngg_settings_page .ngg_page_content_main input[type=radio]:checked:before{background-color:#9fbb1a;border-radius:50%;color:transparent;content:"\2022";display:block;height:16px;margin:0 0 0 -1px;vertical-align:middle;width:16px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table,#ngg_page_content.ngg_settings_page .ngg_page_content_main table{color:rgba(29,36,42,.85);border-collapse:collapse;width:100%}#ngg_page_content table .sorting-indicator:before{color:#fff!important}#attach_to_post_tabs #displayed_tab #display_settings_tab_content table tr,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr{border:1px solid #f7f8f3;padding:5px 0!important;height:auto}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr th{line-height:30px;vertical-align:middle;padding:10px 20px;box-sizing:border-box}.ngg-admin #ngg_page_content .widefat td,.ngg-admin #ngg_page_content .widefat th{padding:10px;color:rgba(118,169,52,.75);color:#aaa;vertical-align:middle}.ngg-admin #ngg_page_content .widefat tfoot th,.ngg-admin #ngg_page_content .widefat thead th{padding:0 10px;color:#fff;text-transform:uppercase}#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr th{font-weight:400!important;font-size:13px!important;line-height:1.5!important}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr td:first-of-type{width:300px;text-align:left;font-weight:400;padding-top:8px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table table tr td:first-of-type,#ngg_page_content.ngg_settings_page .ngg_page_content_main table table tr td:first-of-type{width:auto;font-weight:400;padding:10px 20px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr:nth-of-type(2n),#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr:nth-of-type(2n){background-color:#f7f8f3}#ngg_page_content.ngg_settings_page .ngg_page_content_main tr.watermark_field{padding:10px 0!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table{border:1px solid #d3e1c8}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table td{padding:5px 15px!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table td:first-of-type{width:auto!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field table tr{border:none;padding:0!important}#ngg_page_content.ngg_settings_page .ngg_page_content_main .watermark_field img{max-width:100%}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main label,#ngg_page_content.ngg_settings_page .ngg_page_content_main label,#ngg_page_content.ngg_settings_page .ngg_page_content_main p.description{font-size:14px;color:#666}#ngg_page_content.ngg_settings_page .ngg_page_content_main label{margin-right:5px}#ngg_page_content.ngg_settings_page .ngg_page_content_main label:last-of-type{margin-right:15px}#ngg_page_content.ngg_settings_page .nextgen_settings_position td,#ngg_page_content.ngg_settings_page .nextgen_settings_position tr:nth-of-type(2n){border:none!important}#ngg_page_content.ngg_settings_page .nextgen_pro_lightbox_admin_header{background:#38576f!important;margin-top:20px}.nextgen_pro_lightbox_admin_header td{padding-left:0!important}.nextgen_pro_lightbox_admin_header td h3{text-transform:none!important;color:#fff!important;margin:0 0 0 20px!important}.ngg_options_promo{background:#224460;color:#fff;font-family:Lato,sans-serif;font-size:14px;font-weight:600}.ngg_options_promo a{text-decoration:none;font-weight:600;margin-left:6px}.gallery_page_ngg_other_options #ngg_page_content .ngg_page_content_main tbody tr td.ngg_options_promo{width:100%!important}#tr_photocrati-nextgen_basic_imagebrowser_ngg_triggers_display,#tr_photocrati-nextgen_basic_slideshow_ngg_triggers_display{display:none}.ngg-post-type .ngg_page_content_main .button,.ngg-post-type .ngg_page_content_main .page-title-action{background-color:#9fbb1a!important;color:#fff!important;border:none!important;box-shadow:none!important;text-shadow:none!important;height:35px!important;padding:0 15px!important;line-height:35px;width:auto!important}.ngg-post-type .ngg_page_content_main .button:hover,.ngg-post-type .ngg_page_content_main .page-title-action:hover{background-color:#a9c524!important}.ngg-post-type .ngg_page_content_main .page-title-action{padding:8px 16px!important}.ngg-post-type .ngg_admin_notice{display:none}.ngg-post-type .ngg_page_content_main .tablenav{margin:0 0 20px}.ngg-post-type .ngg_page_content_main .tablenav .actions,.ngg-post-type .ngg_page_content_main .tablenav .tablenav-pages{margin:10px 0}.ngg-post-type .ngg_page_content_main .tablenav .tablenav-pages a,.ngg-post-type .ngg_page_content_main .tablenav-pages-navspan{background:#556472;border:none;color:#fff!important;margin:0 2px}.ngg-post-type #ngg_page_content .ngg_page_content_main .tablenav input.current-page{width:50px!important}.ngg-post-type .ngg_page_content_main table{box-shadow:none;table-layout:auto;border:1px solid rgba(159,187,26,.08)}.ngg-post-type .ngg_page_content_main table tfoot,.ngg-post-type .ngg_page_content_main table thead{background-color:#38576f;text-transform:uppercase}.ngg-post-type .ngg_page_content_main table tfoot{background-color:#38576f}.ngg-post-type .ngg_page_content_main table tfoot a,.ngg-post-type .ngg_page_content_main table thead a{padding:0}.ngg-post-type .ngg_page_content_main table tfoot span,.ngg-post-type .ngg_page_content_main table thead span{color:#fff;font-size:15px}.ngg-post-type .ngg_page_content_main table thead td,.ngg-post-type .ngg_page_content_main table thead th{background-color:transparent;border:none;color:#fff}.ngg-post-type .ngg_page_content_main table thead td{padding:12px 5px!important}.ngg-post-type #ngg_page_content .ngg_page_content_main input[type=checkbox]{height:13px!important;width:13px!important;min-width:auto;margin-top:2px}.ngg-post-type #ngg_page_content .ngg_page_content_main input[type=checkbox]:checked:before{color:#9fbb1a;margin:-5px 0 0 -5px}.ngg-post-type #ngg_page_content .sorting-indicator:before{color:#fff!important}.ngg-post-type .ngg_page_content_main .striped>tbody>:nth-child(odd){background-color:#f7f8f3}.ngg-post-type .ngg_page_content_main a.row-title{font-weight:400}.ngg-post-type .ngg_page_content_main .row-actions{left:0;padding-top:0}.ngg-post-type .ngg_page_content_main .row-actions a{color:rgba(118,169,52,.75)!important;color:#aaa!important}.ngg-post-type .ngg_page_content_main td.column-title strong{margin-bottom:0}.ngg-post-type #wpbody-content .quick-edit-row-page .inline-edit-col-left{width:100%}.ngg-post-type #ngg_page_content .widefat td,.ngg-post-type #ngg_page_content .widefat th{padding:10px;color:rgba(118,169,52,.75);color:#aaa;vertical-align:middle}.ngg-post-type #ngg_page_content .widefat tfoot th,.ngg-post-type #ngg_page_content .widefat thead th{padding:0 10px;color:#fff;text-transform:uppercase}.ngg-post-type .ngg_page_content_main .tablenav.bottom{margin:10px 0 0}.ngg-admin #postbox-container-2 h2.ui-sortable-handle,.ngg-post-type #ngg_page_content h3.accordion_tab{padding:10px;background:#38576f;margin-bottom:0}.ngg-admin #postbox-container-2 h2.ui-sortable-handle,.ngg-post-type #ngg_page_content h3.accordion_tab a{color:#fff;text-decoration:none}.ngg-admin #postbox-container-2 .postbox,.ngg-post-type .accordion>div{border-left:1px solid rgba(159,187,26,.05);border-bottom:1px solid rgba(159,187,26,.05);border-right:1px solid rgba(159,187,26,.05);margin-bottom:30px;background-color:#f7f8f3}.ngg-post-type .accordion>div{padding:20px;margin-bottom:30px}.ngg-post-type .accordion>div table{border:none}.ngg-admin #postbox-container-2 .postbox .inside{margin:0}.ngg-admin #postbox-container-2 .postbox .inside a{color:#9fbb1a}.ngg-admin #postbox-container-2 .postbox .inside td,.ngg-admin #postbox-container-2 .postbox .inside th{padding:5px 10px}.ngg-admin #postbox-container-2 .postbox .inside .button-primary,.ngg-post-type .accordion>div .button-primary{margin:15px 0 0}.ngg-post-type table input[type=text]{margin:0}@media (max-width:1030px){#ngg_page_content .ngg_page_content_header p{padding:0 20px}}@media (max-width:900px){#ngg_page_content .ngg_page_content_header p{display:none}}@media (max-width:782px){.ngg-post-type #ngg_page_content button.toggle-row{width:40px!important;height:40px!important;background:0 0!important}.ngg-post-type tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){padding:3px 8px 3px 35%}.ngg-post-type #ngg_page_content .ngg_page_content_main input[type=checkbox]:checked:before{font:400 20px/1 dashicons!important}#ngg_page_content .ngg_page_content_header img{padding-right:10px}#ngg_page_content .ngg_overview .ngg_page_content_header h3,#ngg_page_content .ngg_page_content_header h3{font-size:14px}#ngg_page_content .ngg_overview .ngg_page_content_main,#ngg_page_content .ngg_page_content_menu,#ngg_page_content.ngg_settings_page .ngg_page_content_main{width:100%}#ngg_page_content .ngg_page_content_main,#ngg_page_content.ngg_settings_page .ngg_page_content_main{padding:20px}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table,#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main tbody,#ngg_page_content.ngg_settings_page .ngg_page_content_main table,#ngg_page_content.ngg_settings_page .ngg_page_content_main tbody{display:block!important;max-width:100%}#ngg_page_content.ngg_settings_page .ngg_page_content_main tbody.hidden{display:none!important}#attach_to_post_tabs #displayed_tab #ngg_page_content #slug_configuration{display:none!important}#attach_to_post_tabs #displayed_tab #display_settings_tab_content table tr,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr{display:block!important;padding:10px 0 20px!important}#attach_to_post_tabs #displayed_tab #ngg_page_content .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr td,#ngg_page_content.ngg_settings_page .ngg_page_content_main table tr th{display:block;padding:2px 10px}#ngg_page_content.ngg_settings_page .ngg_page_content_main table.nextgen_settings_position tr td{display:table-cell}#ngg_page_content.ngg_settings_page .ngg_page_content_main h2,#ngg_page_content.ngg_settings_page .ngg_page_content_main h3{text-align:center}#ngg_page_content.ngg_settings_page form>p{width:100%;padding:15px;box-sizing:border-box}#ngg_page_content .ngg_page_content_main input,#ngg_page_content .ngg_page_content_main select{max-width:100%;margin:5px 0;box-sizing:border-box}#ngg_page_content .ngg_page_content_main .select2-container,#ngg_page_content .ngg_page_content_main input[type=number],#ngg_page_content .ngg_page_content_main input[type=text],#ngg_page_content .ngg_page_content_main select{width:100%!important}#ngg_page_content button.wp-color-result{width:auto!important}#ngg_page_content button.wp-color-result .wp-color-result-text{line-height:22px}.ngg-post-type .ngg_page_content_main .subsubsub{width:100%}.ngg-post-type .ngg_page_content_main .tablenav .actions{width:100%}.ngg-post-type #ngg_page_content .ngg_page_content_main input,.ngg-post-type #ngg_page_content .ngg_page_content_main select{width:100%!important;max-width:100%;margin:5px 0;box-sizing:border-box}#ngg_page_content input[type=checkbox]{width:16px!important}#ngg_page_content .button-primary,#ngg_page_content .button-secondary,#ngg_page_content button{width:100%!important;margin:4px 0;display:block;text-align:center}.ngg-post-type .ngg_page_content_main .button,.ngg-post-type .ngg_page_content_main .page-title-action{width:80%!important;margin:4px 0;display:block;text-align:center;margin:10px auto 20px;padding:0!important}.ngg-post-type .ngg_page_content_main .displaying-num{display:none}#gallery_selection label{display:block;padding-bottom:8px}.post-type-ngg_pricelist .accordion table{width:100%!important}.post-type-ngg_pricelist .accordion #manual_shipping_options td{display:block;width:100%!important}.post-type-ngg_pricelist #ngg_page_content .accordion table input.shipping_rate{width:100%;max-width:100%}.post-type-ngg_pricelist .accordion input[type=checkbox]:checked:before{font:400 21px/1 dashicons}.ngg-post-type #ngg_page_content h1{text-align:center;display:block}#ngg_page_content .responsive-menu-icon{display:block;background:#9fbb1a;padding:10px 0 15px}#ngg_page_content .responsive-menu{display:none;float:none;margin:0}#ngg_page_content .responsive-menu a{display:block}#ngg_page_content .ngg_page_content_menu .ngg_page_content_menu_active:after,#ngg_page_content .ngg_page_content_menu a:active:after{display:none}}
products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php CHANGED
@@ -9,6 +9,7 @@
9
 
10
  define('NGG_BASIC_COMPACT_ALBUM', 'photocrati-nextgen_basic_compact_album');
11
  define('NGG_BASIC_EXTENDED_ALBUM', 'photocrati-nextgen_basic_extended_album');
 
12
 
13
  class M_NextGen_Basic_Album extends C_Base_Module
14
  {
@@ -22,10 +23,10 @@ class M_NextGen_Basic_Album extends C_Base_Module
22
  $context = FALSE)
23
  {
24
  parent::define(
25
- 'photocrati-nextgen_basic_album',
26
  'NextGEN Basic Album',
27
  "Provides support for NextGEN's Basic Album",
28
- '3.0.0',
29
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
30
  'Imagely',
31
  'https://www.imagely.com'
@@ -123,6 +124,10 @@ class M_NextGen_Basic_Album extends C_Base_Module
123
  }
124
 
125
  add_filter('ngg_atp_show_display_type', array($this, 'atp_show_basic_albums'), 10, 2);
 
 
 
 
126
  }
127
 
128
  /**
@@ -187,6 +192,19 @@ class M_NextGen_Basic_Album extends C_Base_Module
187
  'Mixin_Nextgen_Basic_Album_Form' => 'mixin.nextgen_basic_album_form.php'
188
  );
189
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  }
191
 
192
  class C_NextGen_Basic_Album_Installer extends C_Gallery_Display_Installer
@@ -196,6 +214,7 @@ class C_NextGen_Basic_Album_Installer extends C_Gallery_Display_Installer
196
  $this->install_display_type(
197
  NGG_BASIC_COMPACT_ALBUM, array(
198
  'title' => __('NextGEN Basic Compact Album', 'nggallery'),
 
199
  'entity_types' => array('album', 'gallery'),
200
  'preview_image_relpath' => 'photocrati-nextgen_basic_album#compact_preview.jpg',
201
  'default_source' => 'albums',
@@ -211,6 +230,7 @@ class C_NextGen_Basic_Album_Installer extends C_Gallery_Display_Installer
211
  $this->install_display_type(
212
  NGG_BASIC_EXTENDED_ALBUM, array(
213
  'title' => __('NextGEN Basic Extended Album', 'nggallery'),
 
214
  'entity_types' => array('album', 'gallery'),
215
  'preview_image_relpath' => 'photocrati-nextgen_basic_album#extended_preview.jpg',
216
  'default_source' => 'albums',
9
 
10
  define('NGG_BASIC_COMPACT_ALBUM', 'photocrati-nextgen_basic_compact_album');
11
  define('NGG_BASIC_EXTENDED_ALBUM', 'photocrati-nextgen_basic_extended_album');
12
+ define('NGG_BASIC_ALBUM', 'photocrati-nextgen_basic_album');
13
 
14
  class M_NextGen_Basic_Album extends C_Base_Module
15
  {
23
  $context = FALSE)
24
  {
25
  parent::define(
26
+ NGG_BASIC_ALBUM,
27
  'NextGEN Basic Album',
28
  "Provides support for NextGEN's Basic Album",
29
+ '3.0.0.5',
30
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
31
  'Imagely',
32
  'https://www.imagely.com'
124
  }
125
 
126
  add_filter('ngg_atp_show_display_type', array($this, 'atp_show_basic_albums'), 10, 2);
127
+
128
+ add_filter('ngg_' . NGG_BASIC_COMPACT_ALBUM . '_template_dirs', array($this, 'filter_compact_view_dir'));
129
+
130
+ add_filter('ngg_' . NGG_BASIC_EXTENDED_ALBUM . '_template_dirs', array($this, 'filter_extended_view_dir'));
131
  }
132
 
133
  /**
192
  'Mixin_Nextgen_Basic_Album_Form' => 'mixin.nextgen_basic_album_form.php'
193
  );
194
  }
195
+
196
+ function filter_compact_view_dir($dirs)
197
+ {
198
+ $dirs['default'] = C_Component_Registry::get_instance()->get_module_dir(NGG_BASIC_ALBUM) . DIRECTORY_SEPARATOR . 'templates/compact';
199
+ return $dirs;
200
+ }
201
+
202
+ function filter_extended_view_dir($dirs)
203
+ {
204
+ $dirs['default'] = C_Component_Registry::get_instance()->get_module_dir(NGG_BASIC_ALBUM) . DIRECTORY_SEPARATOR . 'templates/extended';
205
+ return $dirs;
206
+ }
207
+
208
  }
209
 
210
  class C_NextGen_Basic_Album_Installer extends C_Gallery_Display_Installer
214
  $this->install_display_type(
215
  NGG_BASIC_COMPACT_ALBUM, array(
216
  'title' => __('NextGEN Basic Compact Album', 'nggallery'),
217
+ 'module_id' => NGG_BASIC_ALBUM,
218
  'entity_types' => array('album', 'gallery'),
219
  'preview_image_relpath' => 'photocrati-nextgen_basic_album#compact_preview.jpg',
220
  'default_source' => 'albums',
230
  $this->install_display_type(
231
  NGG_BASIC_EXTENDED_ALBUM, array(
232
  'title' => __('NextGEN Basic Extended Album', 'nggallery'),
233
+ 'module_id' => NGG_BASIC_ALBUM,
234
  'entity_types' => array('album', 'gallery'),
235
  'preview_image_relpath' => 'photocrati-nextgen_basic_album#extended_preview.jpg',
236
  'default_source' => 'albums',
products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php CHANGED
@@ -713,20 +713,27 @@ class A_NextGen_Basic_Album_Mapper extends Mixin
713
  if (isset($entity->name) && in_array($entity->name, array(NGG_BASIC_COMPACT_ALBUM, NGG_BASIC_EXTENDED_ALBUM))) {
714
  // Set defaults for both display (album) types
715
  $settings = C_NextGen_Settings::get_instance();
 
 
716
  $this->object->_set_default_value($entity, 'settings', 'galleries_per_page', $settings->galPagedGalleries);
717
  $this->object->_set_default_value($entity, 'settings', 'enable_breadcrumbs', 1);
718
  $this->object->_set_default_value($entity, 'settings', 'disable_pagination', 0);
719
  $this->object->_set_default_value($entity, 'settings', 'enable_descriptions', 0);
720
  $this->object->_set_default_value($entity, 'settings', 'template', '');
721
  $this->object->_set_default_value($entity, 'settings', 'open_gallery_in_lightbox', 0);
 
 
 
 
 
 
 
 
 
722
  // Thumbnail dimensions -- only used by extended albums
723
  if ($entity->name == NGG_BASIC_EXTENDED_ALBUM) {
724
- $this->_set_default_value($entity, 'settings', 'override_thumbnail_settings', 0);
725
- $this->_set_default_value($entity, 'settings', 'thumbnail_width', $settings->thumbwidth);
726
- $this->_set_default_value($entity, 'settings', 'thumbnail_height', $settings->thumbheight);
727
- $this->_set_default_value($entity, 'settings', 'thumbnail_quality', $settings->thumbquality);
728
- $this->_set_default_value($entity, 'settings', 'thumbnail_crop', $settings->thumbfix);
729
- $this->_set_default_value($entity, 'settings', 'thumbnail_watermark', 0);
730
  }
731
  if (defined('NGG_BASIC_THUMBNAILS')) {
732
  $this->object->_set_default_value($entity, 'settings', 'gallery_display_type', NGG_BASIC_THUMBNAILS);
@@ -824,7 +831,7 @@ class Mixin_NextGen_Basic_Album_Form extends Mixin_Display_Type_Form
824
  {
825
  function _get_field_names()
826
  {
827
- return array('nextgen_basic_album_gallery_display_type', 'nextgen_basic_album_galleries_per_page', 'nextgen_basic_album_enable_breadcrumbs', 'nextgen_basic_templates_template', 'nextgen_basic_album_enable_descriptions');
828
  }
829
  /**
830
  * Renders the Gallery Display Type field
713
  if (isset($entity->name) && in_array($entity->name, array(NGG_BASIC_COMPACT_ALBUM, NGG_BASIC_EXTENDED_ALBUM))) {
714
  // Set defaults for both display (album) types
715
  $settings = C_NextGen_Settings::get_instance();
716
+ $default_template = isset($entity->settings["template"]) ? 'default' : 'default-view.php';
717
+ $this->object->_set_default_value($entity, 'settings', 'display_view', $default_template);
718
  $this->object->_set_default_value($entity, 'settings', 'galleries_per_page', $settings->galPagedGalleries);
719
  $this->object->_set_default_value($entity, 'settings', 'enable_breadcrumbs', 1);
720
  $this->object->_set_default_value($entity, 'settings', 'disable_pagination', 0);
721
  $this->object->_set_default_value($entity, 'settings', 'enable_descriptions', 0);
722
  $this->object->_set_default_value($entity, 'settings', 'template', '');
723
  $this->object->_set_default_value($entity, 'settings', 'open_gallery_in_lightbox', 0);
724
+ $this->_set_default_value($entity, 'settings', 'override_thumbnail_settings', 1);
725
+ $this->_set_default_value($entity, 'settings', 'thumbnail_quality', $settings->thumbquality);
726
+ $this->_set_default_value($entity, 'settings', 'thumbnail_crop', 1);
727
+ $this->_set_default_value($entity, 'settings', 'thumbnail_watermark', 0);
728
+ // Thumbnail dimensions -- only used by extended albums
729
+ if ($entity->name == NGG_BASIC_COMPACT_ALBUM) {
730
+ $this->_set_default_value($entity, 'settings', 'thumbnail_width', 240);
731
+ $this->_set_default_value($entity, 'settings', 'thumbnail_height', 160);
732
+ }
733
  // Thumbnail dimensions -- only used by extended albums
734
  if ($entity->name == NGG_BASIC_EXTENDED_ALBUM) {
735
+ $this->_set_default_value($entity, 'settings', 'thumbnail_width', 300);
736
+ $this->_set_default_value($entity, 'settings', 'thumbnail_height', 200);
 
 
 
 
737
  }
738
  if (defined('NGG_BASIC_THUMBNAILS')) {
739
  $this->object->_set_default_value($entity, 'settings', 'gallery_display_type', NGG_BASIC_THUMBNAILS);
831
  {
832
  function _get_field_names()
833
  {
834
+ return array('nextgen_basic_album_gallery_display_type', 'nextgen_basic_album_galleries_per_page', 'nextgen_basic_album_enable_breadcrumbs', 'display_view', 'nextgen_basic_templates_template', 'nextgen_basic_album_enable_descriptions');
835
  }
836
  /**
837
  * Renders the Gallery Display Type field
products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.css CHANGED
@@ -3,6 +3,10 @@
3
  overflow: hidden;
4
  margin: 0;
5
  padding: .5em 0 .5em 0;
 
 
 
 
6
  }
7
 
8
  ul.ngg-breadcrumbs > li {
3
  overflow: hidden;
4
  margin: 0;
5
  padding: .5em 0 .5em 0;
6
+ margin-left: 0 !important;
7
+ text-transform: uppercase;
8
+ font-size: 14px;
9
+ margin: 30px 0 30px !important;
10
  }
11
 
12
  ul.ngg-breadcrumbs > li {
products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.min.css CHANGED
@@ -1 +1 @@
1
- .ngg-breadcrumbs{list-style:none;overflow:hidden;margin:0;padding:.5em 0 .5em 0}ul.ngg-breadcrumbs>li{float:left;padding:0 .3em 0 .15em;margin:0;vertical-align:middle;border:none;list-style-type:none}.ngg-breadcrumbs .ngg-breadcrumb-divisor{margin:0;padding:0 0 0 .15em}
1
+ .ngg-breadcrumbs{list-style:none;overflow:hidden;margin:0;padding:.5em 0 .5em 0;margin-left:0!important;text-transform:uppercase;font-size:14px;margin:30px 0 30px!important}ul.ngg-breadcrumbs>li{float:left;padding:0 .3em 0 .15em;margin:0;vertical-align:middle;border:none;list-style-type:none}.ngg-breadcrumbs .ngg-breadcrumb-divisor{margin:0;padding:0 0 0 .15em}
products/photocrati_nextgen/modules/nextgen_basic_album/static/nextgen_basic_album.css CHANGED
@@ -5,6 +5,8 @@
5
  width: 100%;
6
  clear: both;
7
  display: block !important;
 
 
8
  }
9
 
10
  .ngg-album {
@@ -45,6 +47,7 @@
45
  text-align: left;
46
  }
47
 
 
48
  /* ----------- Album Styles Compact -------------*/
49
 
50
  .ngg-album-compact {
@@ -120,4 +123,126 @@
120
  .ngg-clear {
121
  clear: both;
122
  float: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  }
5
  width: 100%;
6
  clear: both;
7
  display: block !important;
8
+ margin-top: 40px;
9
+ margin-bottom: 50px;
10
  }
11
 
12
  .ngg-album {
47
  text-align: left;
48
  }
49
 
50
+
51
  /* ----------- Album Styles Compact -------------*/
52
 
53
  .ngg-album-compact {
123
  .ngg-clear {
124
  clear: both;
125
  float: none;
126
+ }
127
+
128
+ /* ----------- Extended Album - Updated Default Template -------------*/
129
+
130
+ .ngg-albumoverview.default-view .ngg-album {
131
+ border: 1px solid rgba(150,150,150,.4);
132
+ margin-bottom: 15px;
133
+ padding: 40px 36px 30px;
134
+ }
135
+
136
+ .ngg-albumoverview.default-view .ngg-albumtitle {
137
+ font-size: 17px;
138
+ text-transform: uppercase;
139
+ }
140
+
141
+ .ngg-albumoverview.default-view .ngg-thumbnail {
142
+ margin-right: 20px;
143
+ }
144
+
145
+ .ngg-albumoverview.default-view .ngg-thumbnail img {
146
+ background: transparent;
147
+ border: 1px solid rgba(150,150,150,.1);
148
+ padding: 0px;
149
+ margin: 0;
150
+ }
151
+
152
+ .ngg-albumoverview.default-view .ngg-thumbnail img:hover {
153
+ background-color: transparent;
154
+ }
155
+
156
+ .ngg-albumoverview.default-view .ngg-description,
157
+ .ngg-albumoverview.default-view .ngg-description p {
158
+ font-size: 15px;
159
+ margin: 0 0 10px;
160
+ }
161
+
162
+ .ngg-albumoverview.default-view p.ngg-album-gallery-image-counter {
163
+ display: none;
164
+ }
165
+
166
+ @media (max-width: 960px) {
167
+ .ngg-albumoverview.default-view .ngg-albumtitle {
168
+ font-size: 16px;
169
+ }
170
+ .ngg-albumoverview.default-view .ngg-description,
171
+ .ngg-albumoverview.default-view .ngg-description p {
172
+ font-size: 14px;
173
+ }
174
+ }
175
+
176
+ @media (max-width: 800px) {
177
+ .ngg-albumoverview.default-view .ngg-album {
178
+ padding: 22px 20px 14px;
179
+ }
180
+ .ngg-albumoverview.default-view .ngg-thumbnail img {
181
+ max-width: 240px;
182
+ }
183
+ .ngg-albumoverview.default-view .ngg-albumtitle {
184
+ font-size: 15px;
185
+ }
186
+ .ngg-albumoverview.default-view .ngg-description,
187
+ .ngg-albumoverview.default-view .ngg-description p {
188
+ font-size: 13px;
189
+ }
190
+
191
+ }
192
+
193
+ @media (max-width: 600px) {
194
+ .ngg-albumoverview.default-view .ngg-album {
195
+ padding: 40px 36px 30px;
196
+ }
197
+ .ngg-albumoverview.default-view .ngg-album,
198
+ .ngg-albumoverview.default-view .ngg-albumtitle,
199
+ .ngg-albumoverview.default-view .ngg-description {
200
+ text-align: center;
201
+ }
202
+ .ngg-albumoverview.default-view .ngg-thumbnail {
203
+ float:none;
204
+ margin-right: 0;
205
+ margin-bottom: 20px;
206
+ }
207
+ .ngg-albumoverview.default-view .ngg-thumbnail img {
208
+ max-width: 100%;
209
+ }
210
+ }
211
+
212
+ /* ----------- Compact Album - Updated Default Template -------------*/
213
+
214
+ .ngg-albumoverview.default-view {
215
+ text-align: center;
216
+ }
217
+
218
+ .ngg-albumoverview.default-view .ngg-album-compact {
219
+ text-align: center;
220
+ margin: 0 10px 10px 0 !important;
221
+ padding: 10px !important;
222
+ border: 1px solid rgba(150,150,150,.3);
223
+ box-shadow: 0 0 4px 2px rgba(150,150,150,.1);
224
+ float: none;
225
+ display: inline-block;
226
+ }
227
+
228
+ .ngg-albumoverview.default-view .ngg-album-compactbox,
229
+ .ngg-albumoverview.default-view .ngg-album-compactbox .Thumb {
230
+ border: none !important;
231
+ }
232
+
233
+ .ngg-albumoverview.default-view .ngg-album-compactbox:before,
234
+ .ngg-albumoverview.default-view .ngg-album-compactbox:after,
235
+ .ngg-albumoverview.default-view p.ngg-album-gallery-image-counter {
236
+ display: none;
237
+ }
238
+
239
+ .ngg-albumoverview.default-view .ngg-album-compact h4 {
240
+ padding: 0;
241
+ }
242
+
243
+
244
+ .ngg-albumoverview.default-view .ngg-album-compact h4 .ngg-album-desc {
245
+ font-size: 14px;
246
+ letter-spacing: 1.4px;
247
+ box-shadow: none;
248
  }
products/photocrati_nextgen/modules/nextgen_basic_album/static/nextgen_basic_album.min.css CHANGED
@@ -1 +1 @@
1
- .ngg-albumoverview{margin-top:10px;width:100%;clear:both;display:block!important}.ngg-album{height:100%;overflow:hidden;padding:5px;margin-bottom:5px;border:1px solid #ccc}.ngg-albumtitle{text-align:left;font-weight:700;margin:0;padding:0;font-size:1.4em;margin-bottom:10px}.ngg-thumbnail{float:left;margin-right:12px}.ngg-thumbnail img{background-color:#fff;border:1px solid #a9a9a9;margin:4px 0 4px 5px;padding:4px;position:relative}.ngg-thumbnail img:hover{background-color:#a9a9a9}.ngg-description{text-align:left}.ngg-album-compact{float:left;padding:0 12px 4px 0!important;margin:0!important;text-align:left}.ngg-album-compact a{border:none}.ngg-album-compactbox{margin:0!important;padding:8px!important;box-sizing:border-box;-moz-box-sizing:border-box;position:relative;border:1px solid gray;border-radius:6px;z-index:1}.ngg-album-compactbox:before{content:' ';position:absolute;top:0;left:0;right:0;bottom:-7px;border-bottom:1px solid gray;border-radius:6px;z-index:-1}.ngg-album-compactbox:after{content:' ';position:absolute;top:0;left:0;right:0;bottom:-4px;border-bottom:1px solid gray;border-radius:6px;z-index:-1}.ngg-album-compactbox .Thumb{margin:0!important;padding:0!important;border:1px solid #000!important}.ngg-album-compact h4{font-size:15px;font-weight:700;margin:0;margin-top:10px}.ngg-album-compact h4 .ngg-album-desc{overflow:hidden;display:block;height:54px}.ngg-album-compact p{font-size:11px;margin:0}.ngg-clear{clear:both;float:none}
1
+ .ngg-albumoverview{margin-top:10px;width:100%;clear:both;display:block!important;margin-top:40px;margin-bottom:50px}.ngg-album{height:100%;overflow:hidden;padding:5px;margin-bottom:5px;border:1px solid #ccc}.ngg-albumtitle{text-align:left;font-weight:700;margin:0;padding:0;font-size:1.4em;margin-bottom:10px}.ngg-thumbnail{float:left;margin-right:12px}.ngg-thumbnail img{background-color:#fff;border:1px solid #a9a9a9;margin:4px 0 4px 5px;padding:4px;position:relative}.ngg-thumbnail img:hover{background-color:#a9a9a9}.ngg-description{text-align:left}.ngg-album-compact{float:left;padding:0 12px 4px 0!important;margin:0!important;text-align:left}.ngg-album-compact a{border:none}.ngg-album-compactbox{margin:0!important;padding:8px!important;box-sizing:border-box;-moz-box-sizing:border-box;position:relative;border:1px solid gray;border-radius:6px;z-index:1}.ngg-album-compactbox:before{content:' ';position:absolute;top:0;left:0;right:0;bottom:-7px;border-bottom:1px solid gray;border-radius:6px;z-index:-1}.ngg-album-compactbox:after{content:' ';position:absolute;top:0;left:0;right:0;bottom:-4px;border-bottom:1px solid gray;border-radius:6px;z-index:-1}.ngg-album-compactbox .Thumb{margin:0!important;padding:0!important;border:1px solid #000!important}.ngg-album-compact h4{font-size:15px;font-weight:700;margin:0;margin-top:10px}.ngg-album-compact h4 .ngg-album-desc{overflow:hidden;display:block;height:54px}.ngg-album-compact p{font-size:11px;margin:0}.ngg-clear{clear:both;float:none}.ngg-albumoverview.default-view .ngg-album{border:1px solid rgba(150,150,150,.4);margin-bottom:15px;padding:40px 36px 30px}.ngg-albumoverview.default-view .ngg-albumtitle{font-size:17px;text-transform:uppercase}.ngg-albumoverview.default-view .ngg-thumbnail{margin-right:20px}.ngg-albumoverview.default-view .ngg-thumbnail img{background:0 0;border:1px solid rgba(150,150,150,.1);padding:0;margin:0}.ngg-albumoverview.default-view .ngg-thumbnail img:hover{background-color:transparent}.ngg-albumoverview.default-view .ngg-description,.ngg-albumoverview.default-view .ngg-description p{font-size:15px;margin:0 0 10px}.ngg-albumoverview.default-view p.ngg-album-gallery-image-counter{display:none}@media (max-width:960px){.ngg-albumoverview.default-view .ngg-albumtitle{font-size:16px}.ngg-albumoverview.default-view .ngg-description,.ngg-albumoverview.default-view .ngg-description p{font-size:14px}}@media (max-width:800px){.ngg-albumoverview.default-view .ngg-album{padding:22px 20px 14px}.ngg-albumoverview.default-view .ngg-thumbnail img{max-width:240px}.ngg-albumoverview.default-view .ngg-albumtitle{font-size:15px}.ngg-albumoverview.default-view .ngg-description,.ngg-albumoverview.default-view .ngg-description p{font-size:13px}}@media (max-width:600px){.ngg-albumoverview.default-view .ngg-album{padding:40px 36px 30px}.ngg-albumoverview.default-view .ngg-album,.ngg-albumoverview.default-view .ngg-albumtitle,.ngg-albumoverview.default-view .ngg-description{text-align:center}.ngg-albumoverview.default-view .ngg-thumbnail{float:none;margin-right:0;margin-bottom:20px}.ngg-albumoverview.default-view .ngg-thumbnail img{max-width:100%}}.ngg-albumoverview.default-view{text-align:center}.ngg-albumoverview.default-view .ngg-album-compact{text-align:center;margin:0 10px 10px 0!important;padding:10px!important;border:1px solid rgba(150,150,150,.3);box-shadow:0 0 4px 2px rgba(150,150,150,.1);float:none;display:inline-block}.ngg-albumoverview.default-view .ngg-album-compactbox,.ngg-albumoverview.default-view .ngg-album-compactbox .Thumb{border:none!important}.ngg-albumoverview.default-view .ngg-album-compactbox:after,.ngg-albumoverview.default-view .ngg-album-compactbox:before,.ngg-albumoverview.default-view p.ngg-album-gallery-image-counter{display:none}.ngg-albumoverview.default-view .ngg-album-compact h4{padding:0}.ngg-albumoverview.default-view .ngg-album-compact h4 .ngg-album-desc{font-size:14px;letter-spacing:1.4px;box-shadow:none}
products/photocrati_nextgen/modules/nextgen_basic_album/templates/compact/default-view.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery); ?>
2
+ <div class="ngg-albumoverview default-view">
3
+ <?php
4
+ foreach ($galleries as $gallery) {
5
+ if ($open_gallery_in_lightbox && $gallery->entity_type == 'gallery') {
6
+ $anchor = $gallery->displayed_gallery->effect_code . "
7
+ href='" . nextgen_esc_url($gallery->pagelink) . "'
8
+ data-src='" . esc_attr($gallery->previewpic_fullsized_url) . "'
9
+ data-fullsize='" . esc_attr($gallery->previewpic_fullsized_url) . "'
10
+ data-thumbnail='" . esc_attr($gallery->previewurl) . "'
11
+ data-title='" . esc_attr($gallery->previewpic_image->alttext) . "'
12
+ data-description='" . esc_attr(stripslashes($gallery->previewpic_image->description)) . "'
13
+ data-image-id='" . esc_attr($gallery->previewpic) . "'";
14
+ } else {
15
+ $anchor = "title='" . esc_attr($gallery->title) . "'
16
+ href='" . nextgen_esc_url($gallery->pagelink) . "'";
17
+ }
18
+ ?>
19
+ <div class="ngg-album-compact">
20
+ <div class="ngg-album-compactbox">
21
+ <div class="ngg-album-link">
22
+ <?php $this->start_element('nextgen_gallery.album_gallery', 'item', $gallery); ?>
23
+ <a <?php echo $anchor; ?>>
24
+ <img class="Thumb"
25
+ alt="<?php echo esc_attr($gallery->title); ?>"
26
+ src="<?php echo nextgen_esc_url($gallery->previewurl); ?>"/>
27
+ </a>
28
+ <?php $this->end_element(); ?>
29
+ </div>
30
+ </div>
31
+ <?php if (!empty($image_gen_params)) {
32
+ $max_width = 'style="max-width: ' . ($image_gen_params['width'] + 20) . 'px"';
33
+ } else {
34
+ $max_width = '';
35
+ } ?>
36
+ <h4>
37
+ <a class='ngg-album-desc' <?php echo $anchor; echo $max_width; ?>><?php print wp_kses($gallery->title, M_I18N::get_kses_allowed_html()); ?></a>
38
+ </h4>
39
+ <p class="ngg-album-gallery-image-counter">
40
+ <?php if (isset($gallery->counter) && $gallery->counter > 0) { ?>
41
+ <strong><?php echo $gallery->counter; ?></strong>&nbsp;<?php _e('Photos', 'nggallery'); ?>
42
+ <?php } else { ?>
43
+ &nbsp;
44
+ <?php } ?>
45
+ </p>
46
+ </div>
47
+ <?php } ?>
48
+ <br class="ngg-clear"/>
49
+ <?php echo $pagination ?>
50
+ </div>
51
+ <?php $this->end_element(); ?>
products/photocrati_nextgen/modules/nextgen_basic_album/templates/extended/default-view.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery); ?>
2
+ <div class="ngg-albumoverview default-view">
3
+ <?php foreach ($galleries as $gallery) {
4
+ if ($open_gallery_in_lightbox && $gallery->entity_type == 'gallery') {
5
+ $anchor = $gallery->displayed_gallery->effect_code . "
6
+ href='" . nextgen_esc_url($gallery->pagelink) . "'
7
+ data-src='" . esc_attr($gallery->previewpic_fullsized_url) . "'
8
+ data-fullsize='" . esc_attr($gallery->previewpic_fullsized_url) . "'
9
+ data-thumbnail='" . esc_attr($gallery->previewurl) . "'
10
+ data-title='" . esc_attr($gallery->previewpic_image->alttext) . "'
11
+ data-description='" . esc_attr(stripslashes($gallery->previewpic_image->description)) . "'
12
+ data-image-id='" . esc_attr($gallery->previewpic) . "'";
13
+ } else {
14
+ $anchor = "class='gallery_link' href='" . nextgen_esc_url($gallery->pagelink) . "'";
15
+ } ?>
16
+ <div class="ngg-album">
17
+ <div class="ngg-albumcontent">
18
+ <div class="ngg-thumbnail">
19
+ <a <?php echo $anchor; ?>>
20
+ <img class="Thumb"
21
+ alt="<?php echo esc_attr($gallery->title); ?>"
22
+ src="<?php echo nextgen_esc_url($gallery->previewurl); ?>"/>
23
+ </a>
24
+ </div>
25
+ <div class="ngg-albumtitle">
26
+ <a <?php echo $anchor; ?>><?php print wp_kses($gallery->title, M_I18N::get_kses_allowed_html()); ?></a>
27
+ </div>
28
+ <div class="ngg-description">
29
+ <p><?php print wp_kses($gallery->galdesc, M_I18N::get_kses_allowed_html()); ?></p>
30
+ <?php if (isset($gallery->counter) && $gallery->counter > 0) { ?>
31
+ <p class="ngg-album-gallery-image-counter"><strong><?php echo $gallery->counter; ?></strong>&nbsp;<?php _e('Photos', 'nggallery'); ?></p>
32
+ <?php } ?>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <?php } ?>
37
+ <?php echo $pagination; ?>
38
+ </div>
39
+ <?php $this->end_element(); ?>
products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php CHANGED
@@ -16,6 +16,11 @@ define(
16
  'photocrati-nextgen_basic_slideshow'
17
  );
18
 
 
 
 
 
 
19
 
20
  class M_NextGen_Basic_Gallery extends C_Base_Module
21
  {
@@ -29,10 +34,10 @@ class M_NextGen_Basic_Gallery extends C_Base_Module
29
  $context = FALSE)
30
  {
31
  parent::define(
32
- 'photocrati-nextgen_basic_gallery',
33
  'NextGEN Basic Gallery',
34
  "Provides NextGEN Gallery's basic thumbnail/slideshow integrated gallery",
35
- '3.0.0',
36
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
37
  'Imagely',
38
  'https://www.imagely.com'
@@ -152,6 +157,10 @@ class M_NextGen_Basic_Gallery extends C_Base_Module
152
  add_action('ngg_routes', array(&$this, 'define_routes'));
153
 
154
  add_filter('ngg_atp_show_display_type', array($this, 'atp_show_basic_galleries'), 10, 2);
 
 
 
 
155
  }
156
 
157
  function define_routes($router)
@@ -287,6 +296,19 @@ class M_NextGen_Basic_Gallery extends C_Base_Module
287
  $renderer = C_Displayed_Gallery_Renderer::get_instance();
288
  return $renderer->display_images($params, $inner_content);
289
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  }
291
 
292
  /**
@@ -346,6 +368,7 @@ class C_NextGen_Basic_Gallery_Installer extends C_Gallery_Display_Installer
346
  $this->install_display_type(NGG_BASIC_THUMBNAILS,
347
  array(
348
  'title' => __('NextGEN Basic Thumbnails', 'nggallery'),
 
349
  'entity_types' => array('image'),
350
  'preview_image_relpath' => 'photocrati-nextgen_basic_gallery#thumb_preview.jpg',
351
  'default_source' => 'galleries',
@@ -361,6 +384,7 @@ class C_NextGen_Basic_Gallery_Installer extends C_Gallery_Display_Installer
361
  $this->install_display_type(NGG_BASIC_SLIDESHOW,
362
  array(
363
  'title' => __('NextGEN Basic Slideshow', 'nggallery'),
 
364
  'entity_types' => array('image'),
365
  'preview_image_relpath' => 'photocrati-nextgen_basic_gallery#slideshow_preview.jpg',
366
  'default_source' => 'galleries',
16
  'photocrati-nextgen_basic_slideshow'
17
  );
18
 
19
+ define(
20
+ 'NGG_BASIC_GALLERY',
21
+ 'photocrati-nextgen_basic_gallery'
22
+ );
23
+
24
 
25
  class M_NextGen_Basic_Gallery extends C_Base_Module
26
  {
34
  $context = FALSE)
35
  {
36
  parent::define(
37
+ NGG_BASIC_GALLERY,
38
  'NextGEN Basic Gallery',
39
  "Provides NextGEN Gallery's basic thumbnail/slideshow integrated gallery",
40
+ '3.0.0.6',
41
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
42
  'Imagely',
43
  'https://www.imagely.com'
157
  add_action('ngg_routes', array(&$this, 'define_routes'));
158
 
159
  add_filter('ngg_atp_show_display_type', array($this, 'atp_show_basic_galleries'), 10, 2);
160
+
161
+ add_filter('ngg_' . NGG_BASIC_THUMBNAILS . '_template_dirs', array($this, 'filter_thumbnail_view_dir'));
162
+
163
+ add_filter('ngg_' . NGG_BASIC_SLIDESHOW . '_template_dirs', array($this, 'filter_slideshow_view_dir'));
164
  }
165
 
166
  function define_routes($router)
296
  $renderer = C_Displayed_Gallery_Renderer::get_instance();
297
  return $renderer->display_images($params, $inner_content);
298
  }
299
+
300
+ function filter_thumbnail_view_dir($dirs)
301
+ {
302
+ $dirs['default'] = C_Component_Registry::get_instance()->get_module_dir(NGG_BASIC_GALLERY) . DIRECTORY_SEPARATOR . 'templates/thumbnails';
303
+ return $dirs;
304
+ }
305
+
306
+ function filter_slideshow_view_dir($dirs)
307
+ {
308
+ $dirs['default'] = C_Component_Registry::get_instance()->get_module_dir(NGG_BASIC_GALLERY) . DIRECTORY_SEPARATOR . 'templates/slideshow';
309
+ return $dirs;
310
+ }
311
+
312
  }
313
 
314
  /**
368
  $this->install_display_type(NGG_BASIC_THUMBNAILS,
369
  array(
370
  'title' => __('NextGEN Basic Thumbnails', 'nggallery'),
371
+ 'module_id' => NGG_BASIC_GALLERY,
372
  'entity_types' => array('image'),
373
  'preview_image_relpath' => 'photocrati-nextgen_basic_gallery#thumb_preview.jpg',
374
  'default_source' => 'galleries',
384
  $this->install_display_type(NGG_BASIC_SLIDESHOW,
385
  array(
386
  'title' => __('NextGEN Basic Slideshow', 'nggallery'),
387
+ 'module_id' => NGG_BASIC_GALLERY,
388
  'entity_types' => array('image'),
389
  'preview_image_relpath' => 'photocrati-nextgen_basic_gallery#slideshow_preview.jpg',
390
  'default_source' => 'galleries',
products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php CHANGED
@@ -84,12 +84,15 @@ class A_NextGen_Basic_Gallery_Mapper extends Mixin
84
  $this->object->_set_default_value($entity, 'settings', 'show_thumbnail_link', $settings->galShowSlide ? 1 : 0);
85
  $this->object->_set_default_value($entity, 'settings', 'thumbnail_link_text', $settings->galTextGallery);
86
  $this->object->_set_default_value($entity, 'settings', 'template', '');
 
87
  // Part of the pro-modules
88
  $this->object->_set_default_value($entity, 'settings', 'ngg_triggers_display', 'never');
89
  }
90
  function set_thumbnail_defaults($entity)
91
  {
92
  $settings = C_NextGen_Settings::get_instance();
 
 
93
  $this->object->_set_default_value($entity, 'settings', 'images_per_page', $settings->galImages);
94
  $this->object->_set_default_value($entity, 'settings', 'number_of_columns', $settings->galColumns);
95
  $this->object->_set_default_value($entity, 'settings', 'thumbnail_width', $settings->thumbwidth);
@@ -227,6 +230,9 @@ class A_NextGen_Basic_Slideshow_Controller extends Mixin
227
  */
228
  function index_action($displayed_gallery, $return = FALSE)
229
  {
 
 
 
230
  // Get the images to be displayed
231
  $current_page = (int) $this->param('nggpage', 1);
232
  if ($images = $displayed_gallery->get_included_entities()) {
@@ -265,10 +271,11 @@ class A_NextGen_Basic_Slideshow_Controller extends Mixin
265
  */
266
  function enqueue_frontend_resources($displayed_gallery)
267
  {
268
- wp_register_script('jquery-cycle', $this->get_static_url("photocrati-nextgen_basic_gallery#slideshow/jquery.cycle.all.js"), array('jquery'), NGG_SCRIPT_VERSION);
269
- wp_enqueue_script('jquery-cycle');
270
- wp_enqueue_style('nextgen_basic_slideshow_style', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow.css'), FALSE, NGG_SCRIPT_VERSION);
271
- wp_enqueue_script('waitforimages', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/jquery.waitforimages.js'), array('jquery'), NGG_SCRIPT_VERSION);
 
272
  $this->call_parent('enqueue_frontend_resources', $displayed_gallery);
273
  $this->enqueue_ngg_styles();
274
  }
@@ -279,7 +286,7 @@ class A_NextGen_Basic_Slideshow_Controller extends Mixin
279
  */
280
  function _get_js_lib_url()
281
  {
282
- return $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow.js');
283
  }
284
  }
285
  /**
@@ -302,7 +309,7 @@ class A_NextGen_Basic_Slideshow_Form extends Mixin_Display_Type_Form
302
  */
303
  function _get_field_names()
304
  {
305
- return array('nextgen_basic_slideshow_gallery_dimensions', 'nextgen_basic_slideshow_cycle_effect', 'nextgen_basic_slideshow_cycle_interval', 'nextgen_basic_slideshow_show_thumbnail_link', 'nextgen_basic_slideshow_thumbnail_link_text');
306
  }
307
  function _render_nextgen_basic_slideshow_cycle_interval_field($display_type)
308
  {
@@ -361,7 +368,7 @@ class A_NextGen_Basic_Thumbnail_Form extends Mixin_Display_Type_Form
361
  */
362
  function _get_field_names()
363
  {
364
- return array('thumbnail_override_settings', 'nextgen_basic_thumbnails_images_per_page', 'nextgen_basic_thumbnails_number_of_columns', 'ajax_pagination', 'nextgen_basic_thumbnails_hidden', 'nextgen_basic_thumbnails_imagebrowser_effect', 'nextgen_basic_thumbnails_show_slideshow_link', 'nextgen_basic_thumbnails_slideshow_link_text', 'nextgen_basic_templates_template');
365
  }
366
  /**
367
  * Renders the images_per_page settings field
84
  $this->object->_set_default_value($entity, 'settings', 'show_thumbnail_link', $settings->galShowSlide ? 1 : 0);
85
  $this->object->_set_default_value($entity, 'settings', 'thumbnail_link_text', $settings->galTextGallery);
86
  $this->object->_set_default_value($entity, 'settings', 'template', '');
87
+ $this->object->_set_default_value($entity, 'settings', 'display_view', 'default');
88
  // Part of the pro-modules
89
  $this->object->_set_default_value($entity, 'settings', 'ngg_triggers_display', 'never');
90
  }
91
  function set_thumbnail_defaults($entity)
92
  {
93
  $settings = C_NextGen_Settings::get_instance();
94
+ $default_template = isset($entity->settings["template"]) ? 'default' : 'default-view.php';
95
+ $this->object->_set_default_value($entity, 'settings', 'display_view', $default_template);
96
  $this->object->_set_default_value($entity, 'settings', 'images_per_page', $settings->galImages);
97
  $this->object->_set_default_value($entity, 'settings', 'number_of_columns', $settings->galColumns);
98
  $this->object->_set_default_value($entity, 'settings', 'thumbnail_width', $settings->thumbwidth);
230
  */
231
  function index_action($displayed_gallery, $return = FALSE)
232
  {
233
+ // We now hide option for triggers on this display type.
234
+ // This ensures they do not show based on past settings.
235
+ $displayed_gallery->display_settings['ngg_triggers_display'] = 'never';
236
  // Get the images to be displayed
237
  $current_page = (int) $this->param('nggpage', 1);
238
  if ($images = $displayed_gallery->get_included_entities()) {
271
  */
272
  function enqueue_frontend_resources($displayed_gallery)
273
  {
274
+ wp_enqueue_style('ngg_basic_slideshow_style', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/ngg_basic_slideshow.css'), FALSE, NGG_SCRIPT_VERSION);
275
+ // Add new scripts for slick based slideshow
276
+ wp_enqueue_script('ngg_slick', $this->get_static_url("photocrati-nextgen_basic_gallery#slideshow/slick/slick.min.js"), array('jquery'), NGG_SCRIPT_VERSION);
277
+ wp_enqueue_style('ngg_slick_slideshow_style', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/slick/slick.css'), FALSE, NGG_SCRIPT_VERSION);
278
+ wp_enqueue_style('ngg_slick_slideshow_theme', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/slick/slick-theme.css'), FALSE, NGG_SCRIPT_VERSION);
279
  $this->call_parent('enqueue_frontend_resources', $displayed_gallery);
280
  $this->enqueue_ngg_styles();
281
  }
286
  */
287
  function _get_js_lib_url()
288
  {
289
+ return $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/ngg_basic_slideshow.js');
290
  }
291
  }
292
  /**
309
  */
310
  function _get_field_names()
311
  {
312
+ return array('nextgen_basic_slideshow_gallery_dimensions', 'nextgen_basic_slideshow_show_thumbnail_link', 'nextgen_basic_slideshow_thumbnail_link_text', 'display_view');
313
  }
314
  function _render_nextgen_basic_slideshow_cycle_interval_field($display_type)
315
  {
368
  */
369
  function _get_field_names()
370
  {
371
+ return array('thumbnail_override_settings', 'nextgen_basic_thumbnails_images_per_page', 'nextgen_basic_thumbnails_number_of_columns', 'ajax_pagination', 'nextgen_basic_thumbnails_hidden', 'nextgen_basic_thumbnails_imagebrowser_effect', 'nextgen_basic_thumbnails_show_slideshow_link', 'nextgen_basic_thumbnails_slideshow_link_text', 'display_view', 'nextgen_basic_templates_template');
372
  }
373
  /**
374
  * Renders the images_per_page settings field
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/imagerotator.swf DELETED
File without changes
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/jquery.cycle.all.js DELETED
@@ -1,1548 +0,0 @@
1
- /*!
2
- * jQuery Cycle Plugin (with Transition Definitions)
3
- * Examples and documentation at: http://jquery.malsup.com/cycle/
4
- * Copyright (c) 2007-2010 M. Alsup
5
- * Version: 2.9999.6 (11-SEP-2012)
6
- * Dual licensed under the MIT and GPL licenses.
7
- * http://jquery.malsup.com/license.html
8
- * Requires: jQuery v1.3.2 or later
9
- */
10
- ;(function($, undefined) {
11
- "use strict";
12
-
13
- var ver = '2.9999.6';
14
-
15
- // if $.support is not defined (pre jQuery 1.3) add what I need
16
- if ($.support === undefined) {
17
- $.support = {
18
- opacity: !($.browser.msie)
19
- };
20
- }
21
-
22
- function debug(s) {
23
- if ($.fn.cycle.debug)
24
- log(s);
25
- }
26
- function log() {
27
- if (window.console && console.log)
28
- console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
29
- }
30
- $.expr[':'].paused = function(el) {
31
- return el.cyclePause;
32
- };
33
-
34
-
35
- // the options arg can be...
36
- // a number - indicates an immediate transition should occur to the given slide index
37
- // a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
38
- // an object - properties to control the slideshow
39
- //
40
- // the arg2 arg can be...
41
- // the name of an fx (only used in conjunction with a numeric value for 'options')
42
- // the value true (only used in first arg == 'resume') and indicates
43
- // that the resume should occur immediately (not wait for next timeout)
44
-
45
- $.fn.cycle = function(options, arg2) {
46
- var o = { s: this.selector, c: this.context };
47
-
48
- // in 1.3+ we can fix mistakes with the ready state
49
- if (this.length === 0 && options != 'stop') {
50
- if (!$.isReady && o.s) {
51
- log('DOM not ready, queuing slideshow');
52
- $(function() {
53
- $(o.s,o.c).cycle(options,arg2);
54
- });
55
- return this;
56
- }
57
- // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
58
- log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
59
- return this;
60
- }
61
-
62
- // iterate the matched nodeset
63
- return this.each(function() {
64
- var opts = handleArguments(this, options, arg2);
65
- if (opts === false)
66
- return;
67
-
68
- opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;
69
-
70
- // stop existing slideshow for this container (if there is one)
71
- if (this.cycleTimeout)
72
- clearTimeout(this.cycleTimeout);
73
- this.cycleTimeout = this.cyclePause = 0;
74
- this.cycleStop = 0; // issue #108
75
-
76
- var $cont = $(this);
77
- var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
78
- var els = $slides.get();
79
-
80
- if (els.length < 2) {
81
- log('terminating; too few slides: ' + els.length);
82
- return;
83
- }
84
-
85
- var opts2 = buildOptions($cont, $slides, els, opts, o);
86
- if (opts2 === false)
87
- return;
88
-
89
- var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.backwards);
90
-
91
- // if it's an auto slideshow, kick it off
92
- if (startTime) {
93
- startTime += (opts2.delay || 0);
94
- if (startTime < 10)
95
- startTime = 10;
96
- debug('first timeout: ' + startTime);
97
- this.cycleTimeout = setTimeout(function(){go(els,opts2,0,!opts.backwards);}, startTime);
98
- }
99
- });
100
- };
101
-
102
- function triggerPause(cont, byHover, onPager) {
103
- var opts = $(cont).data('cycle.opts');
104
- var paused = !!cont.cyclePause;
105
- if (paused && opts.paused)
106
- opts.paused(cont, opts, byHover, onPager);
107
- else if (!paused && opts.resumed)
108
- opts.resumed(cont, opts, byHover, onPager);
109
- }
110
-
111
- // process the args that were passed to the plugin fn
112
- function handleArguments(cont, options, arg2) {
113
- if (cont.cycleStop === undefined)
114
- cont.cycleStop = 0;
115
- if (options === undefined || options === null)
116
- options = {};
117
- if (options.constructor == String) {
118
- switch(options) {
119
- case 'destroy':
120
- case 'stop':
121
- var opts = $(cont).data('cycle.opts');
122
- if (!opts)
123
- return false;
124
- cont.cycleStop++; // callbacks look for change
125
- if (cont.cycleTimeout)
126
- clearTimeout(cont.cycleTimeout);
127
- cont.cycleTimeout = 0;
128
- if (opts.elements)
129
- $(opts.elements).stop();
130
- $(cont).removeData('cycle.opts');
131
- if (options == 'destroy')
132
- destroy(cont, opts);
133
- return false;
134
- case 'toggle':
135
- cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
136
- checkInstantResume(cont.cyclePause, arg2, cont);
137
- triggerPause(cont);
138
- return false;
139
- case 'pause':
140
- cont.cyclePause = 1;
141
- triggerPause(cont);
142
- return false;
143
- case 'resume':
144
- cont.cyclePause = 0;
145
- checkInstantResume(false, arg2, cont);
146
- triggerPause(cont);
147
- return false;
148
- case 'prev':
149
- case 'next':
150
- opts = $(cont).data('cycle.opts');
151
- if (!opts) {
152
- log('options not found, "prev/next" ignored');
153
- return false;
154
- }
155
- $.fn.cycle[options](opts);
156
- return false;
157
- default:
158
- options = { fx: options };
159
- }
160
- return options;
161
- }
162
- else if (options.constructor == Number) {
163
- // go to the requested slide
164
- var num = options;
165
- options = $(cont).data('cycle.opts');
166
- if (!options) {
167
- log('options not found, can not advance slide');
168
- return false;
169
- }
170
- if (num < 0 || num >= options.elements.length) {
171
- log('invalid slide index: ' + num);
172
- return false;
173
- }
174
- options.nextSlide = num;
175
- if (cont.cycleTimeout) {
176
- clearTimeout(cont.cycleTimeout);
177
- cont.cycleTimeout = 0;
178
- }
179
- if (typeof arg2 == 'string')
180
- options.oneTimeFx = arg2;
181
- go(options.elements, options, 1, num >= options.currSlide);
182
- return false;
183
- }
184
- return options;
185
-
186
- function checkInstantResume(isPaused, arg2, cont) {
187
- if (!isPaused && arg2 === true) { // resume now!
188
- var options = $(cont).data('cycle.opts');
189
- if (!options) {
190
- log('options not found, can not resume');
191
- return false;
192
- }
193
- if (cont.cycleTimeout) {
194
- clearTimeout(cont.cycleTimeout);
195
- cont.cycleTimeout = 0;
196
- }
197
- go(options.elements, options, 1, !options.backwards);
198
- }
199
- }
200
- }
201
-
202
- function removeFilter(el, opts) {
203
- if (!$.support.opacity && opts.cleartype && el.style.filter) {
204
- try { el.style.removeAttribute('filter'); }
205
- catch(smother) {} // handle old opera versions
206
- }
207
- }
208
-
209
- // unbind event handlers
210
- function destroy(cont, opts) {
211
- if (opts.next)
212
- $(opts.next).unbind(opts.prevNextEvent);
213
- if (opts.prev)
214
- $(opts.prev).unbind(opts.prevNextEvent);
215
-
216
- if (opts.pager || opts.pagerAnchorBuilder)
217
- $.each(opts.pagerAnchors || [], function() {
218
- this.unbind().remove();
219
- });
220
- opts.pagerAnchors = null;
221
- $(cont).unbind('mouseenter.cycle mouseleave.cycle');
222
- if (opts.destroy) // callback
223
- opts.destroy(opts);
224
- }
225
-
226
- // one-time initialization
227
- function buildOptions($cont, $slides, els, options, o) {
228
- var startingSlideSpecified;
229
- // support metadata plugin (v1.0 and v2.0)
230
- var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
231
- var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null;
232
- if (meta)
233
- opts = $.extend(opts, meta);
234
- if (opts.autostop)
235
- opts.countdown = opts.autostopCount || els.length;
236
-
237
- var cont = $cont[0];
238
- $cont.data('cycle.opts', opts);
239
- opts.$cont = $cont;
240
- opts.stopCount = cont.cycleStop;
241
- opts.elements = els;
242
- opts.before = opts.before ? [opts.before] : [];
243
- opts.after = opts.after ? [opts.after] : [];
244
-
245
- // push some after callbacks
246
- if (!$.support.opacity && opts.cleartype)
247
- opts.after.push(function() { removeFilter(this, opts); });
248
- if (opts.continuous)
249
- opts.after.push(function() { go(els,opts,0,!opts.backwards); });
250
-
251
- saveOriginalOpts(opts);
252
-
253
- // clearType corrections
254
- if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
255
- clearTypeFix($slides);
256
-
257
- // container requires non-static position so that slides can be position within
258
- if ($cont.css('position') == 'static')
259
- $cont.css('position', 'relative');
260
- if (opts.width)
261
- $cont.width(opts.width);
262
- if (opts.height && opts.height != 'auto')
263
- $cont.height(opts.height);
264
-
265
- if (opts.startingSlide !== undefined) {
266
- opts.startingSlide = parseInt(opts.startingSlide,10);
267
- if (opts.startingSlide >= els.length || opts.startSlide < 0)
268
- opts.startingSlide = 0; // catch bogus input
269
- else
270
- startingSlideSpecified = true;
271
- }
272
- else if (opts.backwards)
273
- opts.startingSlide = els.length - 1;
274
- else
275
- opts.startingSlide = 0;
276
-
277
- // if random, mix up the slide array
278
- if (opts.random) {
279
- opts.randomMap = [];
280
- for (var i = 0; i < els.length; i++)
281
- opts.randomMap.push(i);
282
- opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
283
- if (startingSlideSpecified) {
284
- // try to find the specified starting slide and if found set start slide index in the map accordingly
285
- for ( var cnt = 0; cnt < els.length; cnt++ ) {
286
- if ( opts.startingSlide == opts.randomMap[cnt] ) {
287
- opts.randomIndex = cnt;
288
- }
289
- }
290
- }
291
- else {
292
- opts.randomIndex = 1;
293
- opts.startingSlide = opts.randomMap[1];
294
- }
295
- }
296
- else if (opts.startingSlide >= els.length)
297
- opts.startingSlide = 0; // catch bogus input
298
- opts.currSlide = opts.startingSlide || 0;
299
- var first = opts.startingSlide;
300
-
301
- // set position and zIndex on all the slides
302
- $slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
303
- var z;
304
- if (opts.backwards)
305
- z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
306
- else
307
- z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
308
- $(this).css('z-index', z);
309
- });
310
-
311
- // make sure first slide is visible
312
- $(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
313
- removeFilter(els[first], opts);
314
-
315
- // stretch slides
316
- if (opts.fit) {
317
- if (!opts.aspect) {
318
- if (opts.width)
319
- $slides.width(opts.width);
320
- if (opts.height && opts.height != 'auto')
321
- $slides.height(opts.height);
322
- } else {
323
- $slides.each(function(){
324
- var $slide = $(this);
325
- var ratio = (opts.aspect === true) ? $slide.width()/$slide.height() : opts.aspect;
326
- if( opts.width && $slide.width() != opts.width ) {
327
- $slide.width( opts.width );
328
- $slide.height( opts.width / ratio );
329
- }
330
-
331
- if( opts.height && $slide.height() < opts.height ) {
332
- $slide.height( opts.height );
333
- $slide.width( opts.height * ratio );
334
- }
335
- });
336
- }
337
- }
338
-
339
- if (opts.center && ((!opts.fit) || opts.aspect)) {
340
- $slides.each(function(){
341
- var $slide = $(this);
342
- $slide.css({
343
- "margin-left": opts.width ?
344
- ((opts.width - $slide.width()) / 2) + "px" :
345
- 0,
346
- "margin-top": opts.height ?
347
- ((opts.height - $slide.height()) / 2) + "px" :
348
- 0
349
- });
350
- });
351
- }
352
-
353
- if (opts.center && !opts.fit && !opts.slideResize) {
354
- $slides.each(function(){
355
- var $slide = $(this);
356
- $slide.css({
357
- "margin-left": opts.width ? ((opts.width - $slide.width()) / 2) + "px" : 0,
358
- "margin-top": opts.height ? ((opts.height - $slide.height()) / 2) + "px" : 0
359
- });
360
- });
361
- }
362
-
363
- // stretch container
364
- var reshape = (opts.containerResize || opts.containerResizeHeight) && !$cont.innerHeight();
365
- if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
366
- var maxw = 0, maxh = 0;
367
- for(var j=0; j < els.length; j++) {
368
- var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
369
- if (!w) w = e.offsetWidth || e.width || $e.attr('width');
370
- if (!h) h = e.offsetHeight || e.height || $e.attr('height');
371
- maxw = w > maxw ? w : maxw;
372
- maxh = h > maxh ? h : maxh;
373
- }
374
- if (opts.containerResize && maxw > 0 && maxh > 0)
375
- $cont.css({width:maxw+'px',height:maxh+'px'});
376
- if (opts.containerResizeHeight && maxh > 0)
377
- $cont.css({height:maxh+'px'});
378
- }
379
-
380
- var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
381
- if (opts.pause)
382
- $cont.bind('mouseenter.cycle', function(){
383
- pauseFlag = true;
384
- this.cyclePause++;
385
- triggerPause(cont, true);
386
- }).bind('mouseleave.cycle', function(){
387
- if (pauseFlag)
388
- this.cyclePause--;
389
- triggerPause(cont, true);
390
- });
391
-
392
- if (supportMultiTransitions(opts) === false)
393
- return false;
394
-
395
- // apparently a lot of people use image slideshows without height/width attributes on the images.
396
- // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
397
- var requeue = false;
398
- options.requeueAttempts = options.requeueAttempts || 0;
399
- $slides.each(function() {
400
- // try to get height/width of each slide
401
- var $el = $(this);
402
- this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
403
- this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
404
-
405
- if ( $el.is('img') ) {
406
- // sigh.. sniffing, hacking, shrugging... this crappy hack tries to account for what browsers do when
407
- // an image is being downloaded and the markup did not include sizing info (height/width attributes);
408
- // there seems to be some "default" sizes used in this situation
409
- var loadingIE = ($.browser.msie && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
410
- var loadingFF = ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
411
- var loadingOp = ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
412
- var loadingOther = (this.cycleH === 0 && this.cycleW === 0 && !this.complete);
413
- // don't requeue for images that are still loading but have a valid size
414
- if (loadingIE || loadingFF || loadingOp || loadingOther) {
415
- if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
416
- log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
417
- setTimeout(function() {$(o.s,o.c).cycle(options);}, opts.requeueTimeout);
418
- requeue = true;
419
- return false; // break each loop
420
- }
421
- else {
422
- log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
423
- }
424
- }
425
- }
426
- return true;
427
- });
428
-
429
- if (requeue)
430
- return false;
431
-
432
- opts.cssBefore = opts.cssBefore || {};
433
- opts.cssAfter = opts.cssAfter || {};
434
- opts.cssFirst = opts.cssFirst || {};
435
- opts.animIn = opts.animIn || {};
436
- opts.animOut = opts.animOut || {};
437
-
438
- $slides.not(':eq('+first+')').css(opts.cssBefore);
439
- $($slides[first]).css(opts.cssFirst);
440
-
441
- if (opts.timeout) {
442
- opts.timeout = parseInt(opts.timeout,10);
443
- // ensure that timeout and speed settings are sane
444
- if (opts.speed.constructor == String)
445
- opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed,10);
446
- if (!opts.sync)
447
- opts.speed = opts.speed / 2;
448
-
449
- var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
450
- while((opts.timeout - opts.speed) < buffer) // sanitize timeout
451
- opts.timeout += opts.speed;
452
- }
453
- if (opts.easing)
454
- opts.easeIn = opts.easeOut = opts.easing;
455
- if (!opts.speedIn)
456
- opts.speedIn = opts.speed;
457
- if (!opts.speedOut)
458
- opts.speedOut = opts.speed;
459
-
460
- opts.slideCount = els.length;
461
- opts.currSlide = opts.lastSlide = first;
462
- if (opts.random) {
463
- if (++opts.randomIndex == els.length)
464
- opts.randomIndex = 0;
465
- opts.nextSlide = opts.randomMap[opts.randomIndex];
466
- }
467
- else if (opts.backwards)
468
- opts.nextSlide = opts.startingSlide === 0 ? (els.length-1) : opts.startingSlide-1;
469
- else
470
- opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
471
-
472
- // run transition init fn
473
- if (!opts.multiFx) {
474
- var init = $.fn.cycle.transitions[opts.fx];
475
- if ($.isFunction(init))
476
- init($cont, $slides, opts);
477
- else if (opts.fx != 'custom' && !opts.multiFx) {
478
- log('unknown transition: ' + opts.fx,'; slideshow terminating');
479
- return false;
480
- }
481
- }
482
-
483
- // fire artificial events
484
- var e0 = $slides[first];
485
- if (!opts.skipInitializationCallbacks) {
486
- if (opts.before.length)
487
- opts.before[0].apply(e0, [e0, e0, opts, true]);
488
- if (opts.after.length)
489
- opts.after[0].apply(e0, [e0, e0, opts, true]);
490
- }
491
- if (opts.next)
492
- $(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);});
493
- if (opts.prev)
494
- $(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);});
495
- if (opts.pager || opts.pagerAnchorBuilder)
496
- buildPager(els,opts);
497
-
498
- exposeAddSlide(opts, els);
499
-
500
- return opts;
501
- }
502
-
503
- // save off original opts so we can restore after clearing state
504
- function saveOriginalOpts(opts) {
505
- opts.original = { before: [], after: [] };
506
- opts.original.cssBefore = $.extend({}, opts.cssBefore);
507
- opts.original.cssAfter = $.extend({}, opts.cssAfter);
508
- opts.original.animIn = $.extend({}, opts.animIn);
509
- opts.original.animOut = $.extend({}, opts.animOut);
510
- $.each(opts.before, function() { opts.original.before.push(this); });
511
- $.each(opts.after, function() { opts.original.after.push(this); });
512
- }
513
-
514
- function supportMultiTransitions(opts) {
515
- var i, tx, txs = $.fn.cycle.transitions;
516
- // look for multiple effects
517
- if (opts.fx.indexOf(',') > 0) {
518
- opts.multiFx = true;
519
- opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
520
- // discard any bogus effect names
521
- for (i=0; i < opts.fxs.length; i++) {
522
- var fx = opts.fxs[i];
523
- tx = txs[fx];
524
- if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
525
- log('discarding unknown transition: ',fx);
526
- opts.fxs.splice(i,1);
527
- i--;
528
- }
529
- }
530
- // if we have an empty list then we threw everything away!
531
- if (!opts.fxs.length) {
532
- log('No valid transitions named; slideshow terminating.');
533
- return false;
534
- }
535
- }
536
- else if (opts.fx == 'all') { // auto-gen the list of transitions
537
- opts.multiFx = true;
538
- opts.fxs = [];
539
- for (var p in txs) {
540
- if (txs.hasOwnProperty(p)) {
541
- tx = txs[p];
542
- if (txs.hasOwnProperty(p) && $.isFunction(tx))
543
- opts.fxs.push(p);
544
- }
545
- }
546
- }
547
- if (opts.multiFx && opts.randomizeEffects) {
548
- // munge the fxs array to make effect selection random
549
- var r1 = Math.floor(Math.random() * 20) + 30;
550
- for (i = 0; i < r1; i++) {
551
- var r2 = Math.floor(Math.random() * opts.fxs.length);
552
- opts.fxs.push(opts.fxs.splice(r2,1)[0]);
553
- }
554
- debug('randomized fx sequence: ',opts.fxs);
555
- }
556
- return true;
557
- }
558
-
559
- // provide a mechanism for adding slides after the slideshow has started
560
- function exposeAddSlide(opts, els) {
561
- opts.addSlide = function(newSlide, prepend) {
562
- var $s = $(newSlide), s = $s[0];
563
- if (!opts.autostopCount)
564
- opts.countdown++;
565
- els[prepend?'unshift':'push'](s);
566
- if (opts.els)
567
- opts.els[prepend?'unshift':'push'](s); // shuffle needs this
568
- opts.slideCount = els.length;
569
-
570
- // add the slide to the random map and resort
571
- if (opts.random) {
572
- opts.randomMap.push(opts.slideCount-1);
573
- opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
574
- }
575
-
576
- $s.css('position','absolute');
577
- $s[prepend?'prependTo':'appendTo'](opts.$cont);
578
-
579
- if (prepend) {
580
- opts.currSlide++;
581
- opts.nextSlide++;
582
- }
583
-
584
- if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
585
- clearTypeFix($s);
586
-
587
- if (opts.fit && opts.width)
588
- $s.width(opts.width);
589
- if (opts.fit && opts.height && opts.height != 'auto')
590
- $s.height(opts.height);
591
- s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
592
- s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();
593
-
594
- $s.css(opts.cssBefore);
595
-
596
- if (opts.pager || opts.pagerAnchorBuilder)
597
- $.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
598
-
599
- if ($.isFunction(opts.onAddSlide))
600
- opts.onAddSlide($s);
601
- else
602
- $s.hide(); // default behavior
603
- };
604
- }
605
-
606
- // reset internal state; we do this on every pass in order to support multiple effects
607
- $.fn.cycle.resetState = function(opts, fx) {
608
- fx = fx || opts.fx;
609
- opts.before = []; opts.after = [];
610
- opts.cssBefore = $.extend({}, opts.original.cssBefore);
611
- opts.cssAfter = $.extend({}, opts.original.cssAfter);
612
- opts.animIn = $.extend({}, opts.original.animIn);
613
- opts.animOut = $.extend({}, opts.original.animOut);
614
- opts.fxFn = null;
615
- $.each(opts.original.before, function() { opts.before.push(this); });
616
- $.each(opts.original.after, function() { opts.after.push(this); });
617
-
618
- // re-init
619
- var init = $.fn.cycle.transitions[fx];
620
- if ($.isFunction(init))
621
- init(opts.$cont, $(opts.elements), opts);
622
- };
623
-
624
- // this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
625
- function go(els, opts, manual, fwd) {
626
- var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
627
-
628
- // opts.busy is true if we're in the middle of an animation
629
- if (manual && opts.busy && opts.manualTrump) {
630
- // let manual transitions requests trump active ones
631
- debug('manualTrump in go(), stopping active transition');
632
- $(els).stop(true,true);
633
- opts.busy = 0;
634
- clearTimeout(p.cycleTimeout);
635
- }
636
-
637
- // don't begin another timeout-based transition if there is one active
638
- if (opts.busy) {
639
- debug('transition active, ignoring new tx request');
640
- return;
641
- }
642
-
643
-
644
- // stop cycling if we have an outstanding stop request
645
- if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
646
- return;
647
-
648
- // check to see if we should stop cycling based on autostop options
649
- if (!manual && !p.cyclePause && !opts.bounce &&
650
- ((opts.autostop && (--opts.countdown <= 0)) ||
651
- (opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
652
- if (opts.end)
653
- opts.end(opts);
654
- return;
655
- }
656
-
657
- // if slideshow is paused, only transition on a manual trigger
658
- var changed = false;
659
- if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
660
- changed = true;
661
- var fx = opts.fx;
662
- // keep trying to get the slide size if we don't have it yet
663
- curr.cycleH = curr.cycleH || $(curr).height();
664
- curr.cycleW = curr.cycleW || $(curr).width();
665
- next.cycleH = next.cycleH || $(next).height();
666
- next.cycleW = next.cycleW || $(next).width();
667
-
668
- // support multiple transition types
669
- if (opts.multiFx) {
670
- if (fwd && (opts.lastFx === undefined || ++opts.lastFx >= opts.fxs.length))
671
- opts.lastFx = 0;
672
- else if (!fwd && (opts.lastFx === undefined || --opts.lastFx < 0))
673
- opts.lastFx = opts.fxs.length - 1;
674
- fx = opts.fxs[opts.lastFx];
675
- }
676
-
677
- // one-time fx overrides apply to: $('div').cycle(3,'zoom');
678
- if (opts.oneTimeFx) {
679
- fx = opts.oneTimeFx;
680
- opts.oneTimeFx = null;
681
- }
682
-
683
- $.fn.cycle.resetState(opts, fx);
684
-
685
- // run the before callbacks
686
- if (opts.before.length)
687
- $.each(opts.before, function(i,o) {
688
- if (p.cycleStop != opts.stopCount) return;
689
- o.apply(next, [curr, next, opts, fwd]);
690
- });
691
-
692
- // stage the after callacks
693
- var after = function() {
694
- opts.busy = 0;
695
- $.each(opts.after, function(i,o) {
696
- if (p.cycleStop != opts.stopCount) return;
697
- o.apply(next, [curr, next, opts, fwd]);
698
- });
699
- if (!p.cycleStop) {
700
- // queue next transition
701
- queueNext();
702
- }
703
- };
704
-
705
- debug('tx firing('+fx+'); currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
706
-
707
- // get ready to perform the transition
708
- opts.busy = 1;
709
- if (opts.fxFn) // fx function provided?
710
- opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
711
- else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
712
- $.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
713
- else
714
- $.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
715
- }
716
- else {
717
- queueNext();
718
- }
719
-
720
- if (changed || opts.nextSlide == opts.currSlide) {
721
- // calculate the next slide
722
- var roll;
723
- opts.lastSlide = opts.currSlide;
724
- if (opts.random) {
725
- opts.currSlide = opts.nextSlide;
726
- if (++opts.randomIndex == els.length) {
727
- opts.randomIndex = 0;
728
- opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
729
- }
730
- opts.nextSlide = opts.randomMap[opts.randomIndex];
731
- if (opts.nextSlide == opts.currSlide)
732
- opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
733
- }
734
- else if (opts.backwards) {
735
- roll = (opts.nextSlide - 1) < 0;
736
- if (roll && opts.bounce) {
737
- opts.backwards = !opts.backwards;
738
- opts.nextSlide = 1;
739
- opts.currSlide = 0;
740
- }
741
- else {
742
- opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
743
- opts.currSlide = roll ? 0 : opts.nextSlide+1;
744
- }
745
- }
746
- else { // sequence
747
- roll = (opts.nextSlide + 1) == els.length;
748
- if (roll && opts.bounce) {
749
- opts.backwards = !opts.backwards;
750
- opts.nextSlide = els.length-2;
751
- opts.currSlide = els.length-1;
752
- }
753
- else {
754
- opts.nextSlide = roll ? 0 : opts.nextSlide+1;
755
- opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
756
- }
757
- }
758
- }
759
- if (changed && opts.pager)
760
- opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
761
-
762
- function queueNext() {
763
- // stage the next transition
764
- var ms = 0, timeout = opts.timeout;
765
- if (opts.timeout && !opts.continuous) {
766
- ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
767
- if (opts.fx == 'shuffle')
768
- ms -= opts.speedOut;
769
- }
770
- else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
771
- ms = 10;
772
- if (ms > 0)
773
- p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, !opts.backwards); }, ms);
774
- }
775
- }
776
-
777
- // invoked after transition
778
- $.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
779
- $(pager).each(function() {
780
- $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
781
- });
782
- };
783
-
784
- // calculate timeout value for current transition
785
- function getTimeout(curr, next, opts, fwd) {
786
- if (opts.timeoutFn) {
787
- // call user provided calc fn
788
- var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
789
- while (opts.fx != 'none' && (t - opts.speed) < 250) // sanitize timeout
790
- t += opts.speed;
791
- debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
792
- if (t !== false)
793
- return t;
794
- }
795
- return opts.timeout;
796
- }
797
-
798
- // expose next/prev function, caller must pass in state
799
- $.fn.cycle.next = function(opts) { advance(opts,1); };
800
- $.fn.cycle.prev = function(opts) { advance(opts,0);};
801
-
802
- // advance slide forward or back
803
- function advance(opts, moveForward) {
804
- var val = moveForward ? 1 : -1;
805
- var els = opts.elements;
806
- var p = opts.$cont[0], timeout = p.cycleTimeout;
807
- if (timeout) {
808
- clearTimeout(timeout);
809
- p.cycleTimeout = 0;
810
- }
811
- if (opts.random && val < 0) {
812
- // move back to the previously display slide
813
- opts.randomIndex--;
814
- if (--opts.randomIndex == -2)
815
- opts.randomIndex = els.length-2;
816
- else if (opts.randomIndex == -1)
817
- opts.randomIndex = els.length-1;
818
- opts.nextSlide = opts.randomMap[opts.randomIndex];
819
- }
820
- else if (opts.random) {
821
- opts.nextSlide = opts.randomMap[opts.randomIndex];
822
- }
823
- else {
824
- opts.nextSlide = opts.currSlide + val;
825
- if (opts.nextSlide < 0) {
826
- if (opts.nowrap) return false;
827
- opts.nextSlide = els.length - 1;
828
- }
829
- else if (opts.nextSlide >= els.length) {
830
- if (opts.nowrap) return false;
831
- opts.nextSlide = 0;
832
- }
833
- }
834
-
835
- var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
836
- if ($.isFunction(cb))
837
- cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
838
- go(els, opts, 1, moveForward);
839
- return false;
840
- }
841
-
842
- function buildPager(els, opts) {
843
- var $p = $(opts.pager);
844
- $.each(els, function(i,o) {
845
- $.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
846
- });
847
- opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
848
- }
849
-
850
- $.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
851
- var a;
852
- if ($.isFunction(opts.pagerAnchorBuilder)) {
853
- a = opts.pagerAnchorBuilder(i,el);
854
- debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
855
- }
856
- else
857
- a = '<a href="#">'+(i+1)+'</a>';
858
-
859
- if (!a)
860
- return;
861
- var $a = $(a);
862
- // don't reparent if anchor is in the dom
863
- if ($a.parents('body').length === 0) {
864
- var arr = [];
865
- if ($p.length > 1) {
866
- $p.each(function() {
867
- var $clone = $a.clone(true);
868
- $(this).append($clone);
869
- arr.push($clone[0]);
870
- });
871
- $a = $(arr);
872
- }
873
- else {
874
- $a.appendTo($p);
875
- }
876
- }
877
-
878
- opts.pagerAnchors = opts.pagerAnchors || [];
879
- opts.pagerAnchors.push($a);
880
-
881
- var pagerFn = function(e) {
882
- e.preventDefault();
883
- opts.nextSlide = i;
884
- var p = opts.$cont[0], timeout = p.cycleTimeout;
885
- if (timeout) {
886
- clearTimeout(timeout);
887
- p.cycleTimeout = 0;
888
- }
889
- var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
890
- if ($.isFunction(cb))
891
- cb(opts.nextSlide, els[opts.nextSlide]);
892
- go(els,opts,1,opts.currSlide < i); // trigger the trans
893
- // return false; // <== allow bubble
894
- };
895
-
896
- if ( /mouseenter|mouseover/i.test(opts.pagerEvent) ) {
897
- $a.hover(pagerFn, function(){/* no-op */} );
898
- }
899
- else {
900
- $a.bind(opts.pagerEvent, pagerFn);
901
- }
902
-
903
- if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
904
- $a.bind('click.cycle', function(){return false;}); // suppress click
905
-
906
- var cont = opts.$cont[0];
907
- var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
908
- if (opts.pauseOnPagerHover) {
909
- $a.hover(
910
- function() {
911
- pauseFlag = true;
912
- cont.cyclePause++;
913
- triggerPause(cont,true,true);
914
- }, function() {
915
- if (pauseFlag)
916
- cont.cyclePause--;
917
- triggerPause(cont,true,true);
918
- }
919
- );
920
- }
921
- };
922
-
923
- // helper fn to calculate the number of slides between the current and the next
924
- $.fn.cycle.hopsFromLast = function(opts, fwd) {
925
- var hops, l = opts.lastSlide, c = opts.currSlide;
926
- if (fwd)
927
- hops = c > l ? c - l : opts.slideCount - l;
928
- else
929
- hops = c < l ? l - c : l + opts.slideCount - c;
930
- return hops;
931
- };
932
-
933
- // fix clearType problems in ie6 by setting an explicit bg color
934
- // (otherwise text slides look horrible during a fade transition)
935
- function clearTypeFix($slides) {
936
- debug('applying clearType background-color hack');
937
- function hex(s) {
938
- s = parseInt(s,10).toString(16);
939
- return s.length < 2 ? '0'+s : s;
940
- }
941
- function getBg(e) {
942
- for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
943
- var v = $.css(e,'background-color');
944
- if (v && v.indexOf('rgb') >= 0 ) {
945
- var rgb = v.match(/\d+/g);
946
- return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
947
- }
948
- if (v && v != 'transparent')
949
- return v;
950
- }
951
- return '#ffffff';
952
- }
953
- $slides.each(function() { $(this).css('background-color', getBg(this)); });
954
- }
955
-
956
- // reset common props before the next transition
957
- $.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
958
- $(opts.elements).not(curr).hide();
959
- if (typeof opts.cssBefore.opacity == 'undefined')
960
- opts.cssBefore.opacity = 1;
961
- opts.cssBefore.display = 'block';
962
- if (opts.slideResize && w !== false && next.cycleW > 0)
963
- opts.cssBefore.width = next.cycleW;
964
- if (opts.slideResize && h !== false && next.cycleH > 0)
965
- opts.cssBefore.height = next.cycleH;
966
- opts.cssAfter = opts.cssAfter || {};
967
- opts.cssAfter.display = 'none';
968
- $(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
969
- $(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
970
- };
971
-
972
- // the actual fn for effecting a transition
973
- $.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
974
- var $l = $(curr), $n = $(next);
975
- var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
976
- $n.css(opts.cssBefore);
977
- if (speedOverride) {
978
- if (typeof speedOverride == 'number')
979
- speedIn = speedOut = speedOverride;
980
- else
981
- speedIn = speedOut = 1;
982
- easeIn = easeOut = null;
983
- }
984
- var fn = function() {
985
- $n.animate(opts.animIn, speedIn, easeIn, function() {
986
- cb();
987
- });
988
- };
989
- $l.animate(opts.animOut, speedOut, easeOut, function() {
990
- $l.css(opts.cssAfter);
991
- if (!opts.sync)
992
- fn();
993
- });
994
- if (opts.sync) fn();
995
- };
996
-
997
- // transition definitions - only fade is defined here, transition pack defines the rest
998
- $.fn.cycle.transitions = {
999
- fade: function($cont, $slides, opts) {
1000
- $slides.not(':eq('+opts.currSlide+')').css('opacity',0);
1001
- opts.before.push(function(curr,next,opts) {
1002
- $.fn.cycle.commonReset(curr,next,opts);
1003
- opts.cssBefore.opacity = 0;
1004
- });
1005
- opts.animIn = { opacity: 1 };
1006
- opts.animOut = { opacity: 0 };
1007
- opts.cssBefore = { top: 0, left: 0 };
1008
- }
1009
- };
1010
-
1011
- $.fn.cycle.ver = function() { return ver; };
1012
-
1013
- // override these globally if you like (they are all optional)
1014
- $.fn.cycle.defaults = {
1015
- activePagerClass: 'activeSlide', // class name used for the active pager link
1016
- after: null, // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
1017
- allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
1018
- animIn: null, // properties that define how the slide animates in
1019
- animOut: null, // properties that define how the slide animates out
1020
- aspect: false, // preserve aspect ratio during fit resizing, cropping if necessary (must be used with fit option)
1021
- autostop: 0, // true to end slideshow after X transitions (where X == slide count)
1022
- autostopCount: 0, // number of transitions (optionally used with autostop to define X)
1023
- backwards: false, // true to start slideshow at last slide and move backwards through the stack
1024
- before: null, // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
1025
- center: null, // set to true to have cycle add top/left margin to each slide (use with width and height options)
1026
- cleartype: !$.support.opacity, // true if clearType corrections should be applied (for IE)
1027
- cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
1028
- containerResize: 1, // resize container to fit largest slide
1029
- containerResizeHeight: 0, // resize containers height to fit the largest slide but leave the width dynamic
1030
- continuous: 0, // true to start next transition immediately after current one completes
1031
- cssAfter: null, // properties that defined the state of the slide after transitioning out
1032
- cssBefore: null, // properties that define the initial state of the slide before transitioning in
1033
- delay: 0, // additional delay (in ms) for first transition (hint: can be negative)
1034
- easeIn: null, // easing for "in" transition
1035
- easeOut: null, // easing for "out" transition
1036
- easing: null, // easing method for both in and out transitions
1037
- end: null, // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
1038
- fastOnEvent: 0, // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
1039
- fit: 0, // force slides to fit container
1040
- fx: 'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
1041
- fxFn: null, // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
1042
- height: 'auto', // container height (if the 'fit' option is true, the slides will be set to this height as well)
1043
- manualTrump: true, // causes manual transition to stop an active transition instead of being ignored
1044
- metaAttr: 'cycle', // data- attribute that holds the option data for the slideshow
1045
- next: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide
1046
- nowrap: 0, // true to prevent slideshow from wrapping
1047
- onPagerEvent: null, // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
1048
- onPrevNextEvent: null, // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
1049
- pager: null, // element, jQuery object, or jQuery selector string for the element to use as pager container
1050
- pagerAnchorBuilder: null, // callback fn for building anchor links: function(index, DOMelement)
1051
- pagerEvent: 'click.cycle', // name of event which drives the pager navigation
1052
- pause: 0, // true to enable "pause on hover"
1053
- pauseOnPagerHover: 0, // true to pause when hovering over pager link
1054
- prev: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide
1055
- prevNextEvent: 'click.cycle',// event which drives the manual transition to the previous or next slide
1056
- random: 0, // true for random, false for sequence (not applicable to shuffle fx)
1057
- randomizeEffects: 1, // valid when multiple effects are used; true to make the effect sequence random
1058
- requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
1059
- requeueTimeout: 250, // ms delay for requeue
1060
- rev: 0, // causes animations to transition in reverse (for effects that support it such as scrollHorz/scrollVert/shuffle)
1061
- shuffle: null, // coords for shuffle animation, ex: { top:15, left: 200 }
1062
- skipInitializationCallbacks: false, // set to true to disable the first before/after callback that occurs prior to any transition
1063
- slideExpr: null, // expression for selecting slides (if something other than all children is required)
1064
- slideResize: 1, // force slide width/height to fixed size before every transition
1065
- speed: 1000, // speed of the transition (any valid fx speed value)
1066
- speedIn: null, // speed of the 'in' transition
1067
- speedOut: null, // speed of the 'out' transition
1068
- startingSlide: undefined,// zero-based index of the first slide to be displayed
1069
- sync: 1, // true if in/out transitions should occur simultaneously
1070
- timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance)
1071
- timeoutFn: null, // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag)
1072
- updateActivePagerLink: null,// callback fn invoked to update the active pager link (adds/removes activePagerClass style)
1073
- width: null // container width (if the 'fit' option is true, the slides will be set to this width as well)
1074
- };
1075
-
1076
- })(jQuery);
1077
-
1078
-
1079
- /*!
1080
- * jQuery Cycle Plugin Transition Definitions
1081
- * This script is a plugin for the jQuery Cycle Plugin
1082
- * Examples and documentation at: http://malsup.com/jquery/cycle/
1083
- * Copyright (c) 2007-2010 M. Alsup
1084
- * Version: 2.73
1085
- * Dual licensed under the MIT and GPL licenses:
1086
- * http://www.opensource.org/licenses/mit-license.php
1087
- * http://www.gnu.org/licenses/gpl.html
1088
- */
1089
- (function($) {
1090
- "use strict";
1091
-
1092
- //
1093
- // These functions define slide initialization and properties for the named
1094
- // transitions. To save file size feel free to remove any of these that you
1095
- // don't need.
1096
- //
1097
- $.fn.cycle.transitions.none = function($cont, $slides, opts) {
1098
- opts.fxFn = function(curr,next,opts,after){
1099
- $(next).show();
1100
- $(curr).hide();
1101
- after();
1102
- };
1103
- };
1104
-
1105
- // not a cross-fade, fadeout only fades out the top slide
1106
- $.fn.cycle.transitions.fadeout = function($cont, $slides, opts) {
1107
- $slides.not(':eq('+opts.currSlide+')').css({ display: 'block', 'opacity': 1 });
1108
- opts.before.push(function(curr,next,opts,w,h,rev) {
1109
- $(curr).css('zIndex',opts.slideCount + (rev !== true ? 1 : 0));
1110
- $(next).css('zIndex',opts.slideCount + (rev !== true ? 0 : 1));
1111
- });
1112
- opts.animIn.opacity = 1;
1113
- opts.animOut.opacity = 0;
1114
- opts.cssBefore.opacity = 1;
1115
- opts.cssBefore.display = 'block';
1116
- opts.cssAfter.zIndex = 0;
1117
- };
1118
-
1119
- // scrollUp/Down/Left/Right
1120
- $.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
1121
- $cont.css('overflow','hidden');
1122
- opts.before.push($.fn.cycle.commonReset);
1123
- var h = $cont.height();
1124
- opts.cssBefore.top = h;
1125
- opts.cssBefore.left = 0;
1126
- opts.cssFirst.top = 0;
1127
- opts.animIn.top = 0;
1128
- opts.animOut.top = -h;
1129
- };
1130
- $.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
1131
- $cont.css('overflow','hidden');
1132
- opts.before.push($.fn.cycle.commonReset);
1133
- var h = $cont.height();
1134
- opts.cssFirst.top = 0;
1135
- opts.cssBefore.top = -h;
1136
- opts.cssBefore.left = 0;
1137
- opts.animIn.top = 0;
1138
- opts.animOut.top = h;
1139
- };
1140
- $.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
1141
- $cont.css('overflow','hidden');
1142
- opts.before.push($.fn.cycle.commonReset);
1143
- var w = $cont.width();
1144
- opts.cssFirst.left = 0;
1145
- opts.cssBefore.left = w;
1146
- opts.cssBefore.top = 0;
1147
- opts.animIn.left = 0;
1148
- opts.animOut.left = 0-w;
1149
- };
1150
- $.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
1151
- $cont.css('overflow','hidden');
1152
- opts.before.push($.fn.cycle.commonReset);
1153
- var w = $cont.width();
1154
- opts.cssFirst.left = 0;
1155
- opts.cssBefore.left = -w;
1156
- opts.cssBefore.top = 0;
1157
- opts.animIn.left = 0;
1158
- opts.animOut.left = w;
1159
- };
1160
- $.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
1161
- $cont.css('overflow','hidden').width();
1162
- opts.before.push(function(curr, next, opts, fwd) {
1163
- if (opts.rev)
1164
- fwd = !fwd;
1165
- $.fn.cycle.commonReset(curr,next,opts);
1166
- opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
1167
- opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
1168
- });
1169
- opts.cssFirst.left = 0;
1170
- opts.cssBefore.top = 0;
1171
- opts.animIn.left = 0;
1172
- opts.animOut.top = 0;
1173
- };
1174
- $.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
1175
- $cont.css('overflow','hidden');
1176
- opts.before.push(function(curr, next, opts, fwd) {
1177
- if (opts.rev)
1178
- fwd = !fwd;
1179
- $.fn.cycle.commonReset(curr,next,opts);
1180
- opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
1181
- opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
1182
- });
1183
- opts.cssFirst.top = 0;
1184
- opts.cssBefore.left = 0;
1185
- opts.animIn.top = 0;
1186
- opts.animOut.left = 0;
1187
- };
1188
-
1189
- // slideX/slideY
1190
- $.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
1191
- opts.before.push(function(curr, next, opts) {
1192
- $(opts.elements).not(curr).hide();
1193
- $.fn.cycle.commonReset(curr,next,opts,false,true);
1194
- opts.animIn.width = next.cycleW;
1195
- });
1196
- opts.cssBefore.left = 0;
1197
- opts.cssBefore.top = 0;
1198
- opts.cssBefore.width = 0;
1199
- opts.animIn.width = 'show';
1200
- opts.animOut.width = 0;
1201
- };
1202
- $.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
1203
- opts.before.push(function(curr, next, opts) {
1204
- $(opts.elements).not(curr).hide();
1205
- $.fn.cycle.commonReset(curr,next,opts,true,false);
1206
- opts.animIn.height = next.cycleH;
1207
- });
1208
- opts.cssBefore.left = 0;
1209
- opts.cssBefore.top = 0;
1210
- opts.cssBefore.height = 0;
1211
- opts.animIn.height = 'show';
1212
- opts.animOut.height = 0;
1213
- };
1214
-
1215
- // shuffle
1216
- $.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
1217
- var i, w = $cont.css('overflow', 'visible').width();
1218
- $slides.css({left: 0, top: 0});
1219
- opts.before.push(function(curr,next,opts) {
1220
- $.fn.cycle.commonReset(curr,next,opts,true,true,true);
1221
- });
1222
- // only adjust speed once!
1223
- if (!opts.speedAdjusted) {
1224
- opts.speed = opts.speed / 2; // shuffle has 2 transitions
1225
- opts.speedAdjusted = true;
1226
- }
1227
- opts.random = 0;
1228
- opts.shuffle = opts.shuffle || {left:-w, top:15};
1229
- opts.els = [];
1230
- for (i=0; i < $slides.length; i++)
1231
- opts.els.push($slides[i]);
1232
-
1233
- for (i=0; i < opts.currSlide; i++)
1234
- opts.els.push(opts.els.shift());
1235
-
1236
- // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
1237
- opts.fxFn = function(curr, next, opts, cb, fwd) {
1238
- if (opts.rev)
1239
- fwd = !fwd;
1240
- var $el = fwd ? $(curr) : $(next);
1241
- $(next).css(opts.cssBefore);
1242
- var count = opts.slideCount;
1243
- $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
1244
- var hops = $.fn.cycle.hopsFromLast(opts, fwd);
1245
- for (var k=0; k < hops; k++) {
1246
- if (fwd)
1247
- opts.els.push(opts.els.shift());
1248
- else
1249
- opts.els.unshift(opts.els.pop());
1250
- }
1251
- if (fwd) {
1252
- for (var i=0, len=opts.els.length; i < len; i++)
1253
- $(opts.els[i]).css('z-index', len-i+count);
1254
- }
1255
- else {
1256
- var z = $(curr).css('z-index');
1257
- $el.css('z-index', parseInt(z,10)+1+count);
1258
- }
1259
- $el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
1260
- $(fwd ? this : curr).hide();
1261
- if (cb) cb();
1262
- });
1263
- });
1264
- };
1265
- $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
1266
- };
1267
-
1268
- // turnUp/Down/Left/Right
1269
- $.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
1270
- opts.before.push(function(curr, next, opts) {
1271
- $.fn.cycle.commonReset(curr,next,opts,true,false);
1272
- opts.cssBefore.top = next.cycleH;
1273
- opts.animIn.height = next.cycleH;
1274
- opts.animOut.width = next.cycleW;
1275
- });
1276
- opts.cssFirst.top = 0;
1277
- opts.cssBefore.left = 0;
1278
- opts.cssBefore.height = 0;
1279
- opts.animIn.top = 0;
1280
- opts.animOut.height = 0;
1281
- };
1282
- $.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
1283
- opts.before.push(function(curr, next, opts) {
1284
- $.fn.cycle.commonReset(curr,next,opts,true,false);
1285
- opts.animIn.height = next.cycleH;
1286
- opts.animOut.top = curr.cycleH;
1287
- });
1288
- opts.cssFirst.top = 0;
1289
- opts.cssBefore.left = 0;
1290
- opts.cssBefore.top = 0;
1291
- opts.cssBefore.height = 0;
1292
- opts.animOut.height = 0;
1293
- };
1294
- $.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
1295
- opts.before.push(function(curr, next, opts) {
1296
- $.fn.cycle.commonReset(curr,next,opts,false,true);
1297
- opts.cssBefore.left = next.cycleW;
1298
- opts.animIn.width = next.cycleW;
1299
- });
1300
- opts.cssBefore.top = 0;
1301
- opts.cssBefore.width = 0;
1302
- opts.animIn.left = 0;
1303
- opts.animOut.width = 0;
1304
- };
1305
- $.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
1306
- opts.before.push(function(curr, next, opts) {
1307
- $.fn.cycle.commonReset(curr,next,opts,false,true);
1308
- opts.animIn.width = next.cycleW;
1309
- opts.animOut.left = curr.cycleW;
1310
- });
1311
- $.extend(opts.cssBefore, { top: 0, left: 0, width: 0 });
1312
- opts.animIn.left = 0;
1313
- opts.animOut.width = 0;
1314
- };
1315
-
1316
- // zoom
1317
- $.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
1318
- opts.before.push(function(curr, next, opts) {
1319
- $.fn.cycle.commonReset(curr,next,opts,false,false,true);
1320
- opts.cssBefore.top = next.cycleH/2;
1321
- opts.cssBefore.left = next.cycleW/2;
1322
- $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
1323
- $.extend(opts.animOut, { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 });
1324
- });
1325
- opts.cssFirst.top = 0;
1326
- opts.cssFirst.left = 0;
1327
- opts.cssBefore.width = 0;
1328
- opts.cssBefore.height = 0;
1329
- };
1330
-
1331
- // fadeZoom
1332
- $.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
1333
- opts.before.push(function(curr, next, opts) {
1334
- $.fn.cycle.commonReset(curr,next,opts,false,false);
1335
- opts.cssBefore.left = next.cycleW/2;
1336
- opts.cssBefore.top = next.cycleH/2;
1337
- $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
1338
- });
1339
- opts.cssBefore.width = 0;
1340
- opts.cssBefore.height = 0;
1341
- opts.animOut.opacity = 0;
1342
- };
1343
-
1344
- // blindX
1345
- $.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
1346
- var w = $cont.css('overflow','hidden').width();
1347
- opts.before.push(function(curr, next, opts) {
1348
- $.fn.cycle.commonReset(curr,next,opts);
1349
- opts.animIn.width = next.cycleW;
1350
- opts.animOut.left = curr.cycleW;
1351
- });
1352
- opts.cssBefore.left = w;
1353
- opts.cssBefore.top = 0;
1354
- opts.animIn.left = 0;
1355
- opts.animOut.left = w;
1356
- };
1357
- // blindY
1358
- $.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
1359
- var h = $cont.css('overflow','hidden').height();
1360
- opts.before.push(function(curr, next, opts) {
1361
- $.fn.cycle.commonReset(curr,next,opts);
1362
- opts.animIn.height = next.cycleH;
1363
- opts.animOut.top = curr.cycleH;
1364
- });
1365
- opts.cssBefore.top = h;
1366
- opts.cssBefore.left = 0;
1367
- opts.animIn.top = 0;
1368
- opts.animOut.top = h;
1369
- };
1370
- // blindZ
1371
- $.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
1372
- var h = $cont.css('overflow','hidden').height();
1373
- var w = $cont.width();
1374
- opts.before.push(function(curr, next, opts) {
1375
- $.fn.cycle.commonReset(curr,next,opts);
1376
- opts.animIn.height = next.cycleH;
1377
- opts.animOut.top = curr.cycleH;
1378
- });
1379
- opts.cssBefore.top = h;
1380
- opts.cssBefore.left = w;
1381
- opts.animIn.top = 0;
1382
- opts.animIn.left = 0;
1383
- opts.animOut.top = h;
1384
- opts.animOut.left = w;
1385
- };
1386
-
1387
- // growX - grow horizontally from centered 0 width
1388
- $.fn.cycle.transitions.growX = function($cont, $slides, opts) {
1389
- opts.before.push(function(curr, next, opts) {
1390
- $.fn.cycle.commonReset(curr,next,opts,false,true);
1391
- opts.cssBefore.left = this.cycleW/2;
1392
- opts.animIn.left = 0;
1393
- opts.animIn.width = this.cycleW;
1394
- opts.animOut.left = 0;
1395
- });
1396
- opts.cssBefore.top = 0;
1397
- opts.cssBefore.width = 0;
1398
- };
1399
- // growY - grow vertically from centered 0 height
1400
- $.fn.cycle.transitions.growY = function($cont, $slides, opts) {
1401
- opts.before.push(function(curr, next, opts) {
1402
- $.fn.cycle.commonReset(curr,next,opts,true,false);
1403
- opts.cssBefore.top = this.cycleH/2;
1404
- opts.animIn.top = 0;
1405
- opts.animIn.height = this.cycleH;
1406
- opts.animOut.top = 0;
1407
- });
1408
- opts.cssBefore.height = 0;
1409
- opts.cssBefore.left = 0;
1410
- };
1411
-
1412
- // curtainX - squeeze in both edges horizontally
1413
- $.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
1414
- opts.before.push(function(curr, next, opts) {
1415
- $.fn.cycle.commonReset(curr,next,opts,false,true,true);
1416
- opts.cssBefore.left = next.cycleW/2;
1417
- opts.animIn.left = 0;
1418
- opts.animIn.width = this.cycleW;
1419
- opts.animOut.left = curr.cycleW/2;
1420
- opts.animOut.width = 0;
1421
- });
1422
- opts.cssBefore.top = 0;
1423
- opts.cssBefore.width = 0;
1424
- };
1425
- // curtainY - squeeze in both edges vertically
1426
- $.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
1427
- opts.before.push(function(curr, next, opts) {
1428
- $.fn.cycle.commonReset(curr,next,opts,true,false,true);
1429
- opts.cssBefore.top = next.cycleH/2;
1430
- opts.animIn.top = 0;
1431
- opts.animIn.height = next.cycleH;
1432
- opts.animOut.top = curr.cycleH/2;
1433
- opts.animOut.height = 0;
1434
- });
1435
- opts.cssBefore.height = 0;
1436
- opts.cssBefore.left = 0;
1437
- };
1438
-
1439
- // cover - curr slide covered by next slide
1440
- $.fn.cycle.transitions.cover = function($cont, $slides, opts) {
1441
- var d = opts.direction || 'left';
1442
- var w = $cont.css('overflow','hidden').width();
1443
- var h = $cont.height();
1444
- opts.before.push(function(curr, next, opts) {
1445
- $.fn.cycle.commonReset(curr,next,opts);
1446
- if (d == 'right')
1447
- opts.cssBefore.left = -w;
1448
- else if (d == 'up')
1449
- opts.cssBefore.top = h;
1450
- else if (d == 'down')
1451
- opts.cssBefore.top = -h;
1452
- else
1453
- opts.cssBefore.left = w;
1454
- });
1455
- opts.animIn.left = 0;
1456
- opts.animIn.top = 0;
1457
- opts.cssBefore.top = 0;
1458
- opts.cssBefore.left = 0;
1459
- };
1460
-
1461
- // uncover - curr slide moves off next slide
1462
- $.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
1463
- var d = opts.direction || 'left';
1464
- var w = $cont.css('overflow','hidden').width();
1465
- var h = $cont.height();
1466
- opts.before.push(function(curr, next, opts) {
1467
- $.fn.cycle.commonReset(curr,next,opts,true,true,true);
1468
- if (d == 'right')
1469
- opts.animOut.left = w;
1470
- else if (d == 'up')
1471
- opts.animOut.top = -h;
1472
- else if (d == 'down')
1473
- opts.animOut.top = h;
1474
- else
1475
- opts.animOut.left = -w;
1476
- });
1477
- opts.animIn.left = 0;
1478
- opts.animIn.top = 0;
1479
- opts.cssBefore.top = 0;
1480
- opts.cssBefore.left = 0;
1481
- };
1482
-
1483
- // toss - move top slide and fade away
1484
- $.fn.cycle.transitions.toss = function($cont, $slides, opts) {
1485
- var w = $cont.css('overflow','visible').width();
1486
- var h = $cont.height();
1487
- opts.before.push(function(curr, next, opts) {
1488
- $.fn.cycle.commonReset(curr,next,opts,true,true,true);
1489
- // provide default toss settings if animOut not provided
1490
- if (!opts.animOut.left && !opts.animOut.top)
1491
- $.extend(opts.animOut, { left: w*2, top: -h/2, opacity: 0 });
1492
- else
1493
- opts.animOut.opacity = 0;
1494
- });
1495
- opts.cssBefore.left = 0;
1496
- opts.cssBefore.top = 0;
1497
- opts.animIn.left = 0;
1498
- };
1499
-
1500
- // wipe - clip animation
1501
- $.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
1502
- var w = $cont.css('overflow','hidden').width();
1503
- var h = $cont.height();
1504
- opts.cssBefore = opts.cssBefore || {};
1505
- var clip;
1506
- if (opts.clip) {
1507
- if (/l2r/.test(opts.clip))
1508
- clip = 'rect(0px 0px '+h+'px 0px)';
1509
- else if (/r2l/.test(opts.clip))
1510
- clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
1511
- else if (/t2b/.test(opts.clip))
1512
- clip = 'rect(0px '+w+'px 0px 0px)';
1513
- else if (/b2t/.test(opts.clip))
1514
- clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
1515
- else if (/zoom/.test(opts.clip)) {
1516
- var top = parseInt(h/2,10);
1517
- var left = parseInt(w/2,10);
1518
- clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
1519
- }
1520
- }
1521
-
1522
- opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
1523
-
1524
- var d = opts.cssBefore.clip.match(/(\d+)/g);
1525
- var t = parseInt(d[0],10), r = parseInt(d[1],10), b = parseInt(d[2],10), l = parseInt(d[3],10);
1526
-
1527
- opts.before.push(function(curr, next, opts) {
1528
- if (curr == next) return;
1529
- var $curr = $(curr), $next = $(next);
1530
- $.fn.cycle.commonReset(curr,next,opts,true,true,false);
1531
- opts.cssAfter.display = 'block';
1532
-
1533
- var step = 1, count = parseInt((opts.speedIn / 13),10) - 1;
1534
- (function f() {
1535
- var tt = t ? t - parseInt(step * (t/count),10) : 0;
1536
- var ll = l ? l - parseInt(step * (l/count),10) : 0;
1537
- var bb = b < h ? b + parseInt(step * ((h-b)/count || 1),10) : h;
1538
- var rr = r < w ? r + parseInt(step * ((w-r)/count || 1),10) : w;
1539
- $next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
1540
- (step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
1541
- })();
1542
- });
1543
- $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
1544
- opts.animIn = { left: 0 };
1545
- opts.animOut = { left: 0 };
1546
- };
1547
-
1548
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/jquery.cycle.all.min.js DELETED
@@ -1 +0,0 @@
1
- !function(e,t){"use strict";function n(t){e.fn.cycle.debug&&i(t)}function i(){window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "))}function c(t,n,i){var c=e(t).data("cycle.opts"),s=!!t.cyclePause;s&&c.paused?c.paused(t,c,n,i):!s&&c.resumed&&c.resumed(t,c,n,i)}function s(n,s,o){function l(t,n,c){if(!t&&!0===n){var s=e(c).data("cycle.opts");if(!s)return i("options not found, can not resume"),!1;c.cycleTimeout&&(clearTimeout(c.cycleTimeout),c.cycleTimeout=0),d(s.elements,s,1,!s.backwards)}}if(n.cycleStop===t&&(n.cycleStop=0),s!==t&&null!==s||(s={}),s.constructor==String){switch(s){case"destroy":case"stop":var a=e(n).data("cycle.opts");return!!a&&(n.cycleStop++,n.cycleTimeout&&clearTimeout(n.cycleTimeout),n.cycleTimeout=0,a.elements&&e(a.elements).stop(),e(n).removeData("cycle.opts"),"destroy"==s&&r(n,a),!1);case"toggle":return n.cyclePause=1===n.cyclePause?0:1,l(n.cyclePause,o,n),c(n),!1;case"pause":return n.cyclePause=1,c(n),!1;case"resume":return n.cyclePause=0,l(!1,o,n),c(n),!1;case"prev":case"next":return(a=e(n).data("cycle.opts"))?(e.fn.cycle[s](a),!1):(i('options not found, "prev/next" ignored'),!1);default:s={fx:s}}return s}if(s.constructor==Number){var f=s;return(s=e(n).data("cycle.opts"))?f<0||f>=s.elements.length?(i("invalid slide index: "+f),!1):(s.nextSlide=f,n.cycleTimeout&&(clearTimeout(n.cycleTimeout),n.cycleTimeout=0),"string"==typeof o&&(s.oneTimeFx=o),d(s.elements,s,1,f>=s.currSlide),!1):(i("options not found, can not advance slide"),!1)}return s}function o(t,n){if(!e.support.opacity&&n.cleartype&&t.style.filter)try{t.style.removeAttribute("filter")}catch(e){}}function r(t,n){n.next&&e(n.next).unbind(n.prevNextEvent),n.prev&&e(n.prev).unbind(n.prevNextEvent),(n.pager||n.pagerAnchorBuilder)&&e.each(n.pagerAnchors||[],function(){this.unbind().remove()}),n.pagerAnchors=null,e(t).unbind("mouseenter.cycle mouseleave.cycle"),n.destroy&&n.destroy(n)}function l(n,s,r,l,h){var g,x=e.extend({},e.fn.cycle.defaults,l||{},e.metadata?n.metadata():e.meta?n.data():{}),v=e.isFunction(n.data)?n.data(x.metaAttr):null;v&&(x=e.extend(x,v)),x.autostop&&(x.countdown=x.autostopCount||r.length);var w=n[0];if(n.data("cycle.opts",x),x.$cont=n,x.stopCount=w.cycleStop,x.elements=r,x.before=x.before?[x.before]:[],x.after=x.after?[x.after]:[],!e.support.opacity&&x.cleartype&&x.after.push(function(){o(this,x)}),x.continuous&&x.after.push(function(){d(r,x,0,!x.backwards)}),a(x),e.support.opacity||!x.cleartype||x.cleartypeNoBg||y(s),"static"==n.css("position")&&n.css("position","relative"),x.width&&n.width(x.width),x.height&&"auto"!=x.height&&n.height(x.height),x.startingSlide!==t?(x.startingSlide=parseInt(x.startingSlide,10),x.startingSlide>=r.length||x.startSlide<0?x.startingSlide=0:g=!0):x.backwards?x.startingSlide=r.length-1:x.startingSlide=0,x.random){x.randomMap=[];for(var b=0;b<r.length;b++)x.randomMap.push(b);if(x.randomMap.sort(function(e,t){return Math.random()-.5}),g)for(var S=0;S<r.length;S++)x.startingSlide==x.randomMap[S]&&(x.randomIndex=S);else x.randomIndex=1,x.startingSlide=x.randomMap[1]}else x.startingSlide>=r.length&&(x.startingSlide=0);x.currSlide=x.startingSlide||0;var B=x.startingSlide;if(s.css({position:"absolute",top:0,left:0}).hide().each(function(t){var n;n=x.backwards?B?t<=B?r.length+(t-B):B-t:r.length-t:B?t>=B?r.length-(t-B):B-t:r.length-t,e(this).css("z-index",n)}),e(r[B]).css("opacity",1).show(),o(r[B],x),x.fit&&(x.aspect?s.each(function(){var t=e(this),n=!0===x.aspect?t.width()/t.height():x.aspect;x.width&&t.width()!=x.width&&(t.width(x.width),t.height(x.width/n)),x.height&&t.height()<x.height&&(t.height(x.height),t.width(x.height*n))}):(x.width&&s.width(x.width),x.height&&"auto"!=x.height&&s.height(x.height))),!x.center||x.fit&&!x.aspect||s.each(function(){var t=e(this);t.css({"margin-left":x.width?(x.width-t.width())/2+"px":0,"margin-top":x.height?(x.height-t.height())/2+"px":0})}),!x.center||x.fit||x.slideResize||s.each(function(){var t=e(this);t.css({"margin-left":x.width?(x.width-t.width())/2+"px":0,"margin-top":x.height?(x.height-t.height())/2+"px":0})}),(x.containerResize||x.containerResizeHeight)&&!n.innerHeight()){for(var I=0,O=0,F=0;F<r.length;F++){var H=e(r[F]),A=H[0],k=H.outerWidth(),T=H.outerHeight();k||(k=A.offsetWidth||A.width||H.attr("width")),T||(T=A.offsetHeight||A.height||H.attr("height")),I=k>I?k:I,O=T>O?T:O}x.containerResize&&I>0&&O>0&&n.css({width:I+"px",height:O+"px"}),x.containerResizeHeight&&O>0&&n.css({height:O+"px"})}var R=!1;if(x.pause&&n.bind("mouseenter.cycle",function(){R=!0,this.cyclePause++,c(w,!0)}).bind("mouseleave.cycle",function(){R&&this.cyclePause--,c(w,!0)}),!1===f(x))return!1;var W=!1;if(l.requeueAttempts=l.requeueAttempts||0,s.each(function(){var t=e(this);if(this.cycleH=x.fit&&x.height?x.height:t.height()||this.offsetHeight||this.height||t.attr("height")||0,this.cycleW=x.fit&&x.width?x.width:t.width()||this.offsetWidth||this.width||t.attr("width")||0,t.is("img")){var n=e.browser.msie&&28==this.cycleW&&30==this.cycleH&&!this.complete,c=e.browser.mozilla&&34==this.cycleW&&19==this.cycleH&&!this.complete,s=e.browser.opera&&(42==this.cycleW&&19==this.cycleH||37==this.cycleW&&17==this.cycleH)&&!this.complete,o=0===this.cycleH&&0===this.cycleW&&!this.complete;if(n||c||s||o){if(h.s&&x.requeueOnImageNotLoaded&&++l.requeueAttempts<100)return i(l.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH),setTimeout(function(){e(h.s,h.c).cycle(l)},x.requeueTimeout),W=!0,!1;i("could not determine size of image: "+this.src,this.cycleW,this.cycleH)}}return!0}),W)return!1;if(x.cssBefore=x.cssBefore||{},x.cssAfter=x.cssAfter||{},x.cssFirst=x.cssFirst||{},x.animIn=x.animIn||{},x.animOut=x.animOut||{},s.not(":eq("+B+")").css(x.cssBefore),e(s[B]).css(x.cssFirst),x.timeout){x.timeout=parseInt(x.timeout,10),x.speed.constructor==String&&(x.speed=e.fx.speeds[x.speed]||parseInt(x.speed,10)),x.sync||(x.speed=x.speed/2);for(var P="none"==x.fx?0:"shuffle"==x.fx?500:250;x.timeout-x.speed<P;)x.timeout+=x.speed}if(x.easing&&(x.easeIn=x.easeOut=x.easing),x.speedIn||(x.speedIn=x.speed),x.speedOut||(x.speedOut=x.speed),x.slideCount=r.length,x.currSlide=x.lastSlide=B,x.random?(++x.randomIndex==r.length&&(x.randomIndex=0),x.nextSlide=x.randomMap[x.randomIndex]):x.backwards?x.nextSlide=0===x.startingSlide?r.length-1:x.startingSlide-1:x.nextSlide=x.startingSlide>=r.length-1?0:x.startingSlide+1,!x.multiFx){var z=e.fn.cycle.transitions[x.fx];if(e.isFunction(z))z(n,s,x);else if("custom"!=x.fx&&!x.multiFx)return i("unknown transition: "+x.fx,"; slideshow terminating"),!1}var C=s[B];return x.skipInitializationCallbacks||(x.before.length&&x.before[0].apply(C,[C,C,x,!0]),x.after.length&&x.after[0].apply(C,[C,C,x,!0])),x.next&&e(x.next).bind(x.prevNextEvent,function(){return p(x,1)}),x.prev&&e(x.prev).bind(x.prevNextEvent,function(){return p(x,0)}),(x.pager||x.pagerAnchorBuilder)&&m(r,x),u(x,r),x}function a(t){t.original={before:[],after:[]},t.original.cssBefore=e.extend({},t.cssBefore),t.original.cssAfter=e.extend({},t.cssAfter),t.original.animIn=e.extend({},t.animIn),t.original.animOut=e.extend({},t.animOut),e.each(t.before,function(){t.original.before.push(this)}),e.each(t.after,function(){t.original.after.push(this)})}function f(t){var c,s,o=e.fn.cycle.transitions;if(t.fx.indexOf(",")>0){for(t.multiFx=!0,t.fxs=t.fx.replace(/\s*/g,"").split(","),c=0;c<t.fxs.length;c++){var r=t.fxs[c];s=o[r],s&&o.hasOwnProperty(r)&&e.isFunction(s)||(i("discarding unknown transition: ",r),t.fxs.splice(c,1),c--)}if(!t.fxs.length)return i("No valid transitions named; slideshow terminating."),!1}else if("all"==t.fx){t.multiFx=!0,t.fxs=[];for(var l in o)o.hasOwnProperty(l)&&(s=o[l],o.hasOwnProperty(l)&&e.isFunction(s)&&t.fxs.push(l))}if(t.multiFx&&t.randomizeEffects){var a=Math.floor(20*Math.random())+30;for(c=0;c<a;c++){var f=Math.floor(Math.random()*t.fxs.length);t.fxs.push(t.fxs.splice(f,1)[0])}n("randomized fx sequence: ",t.fxs)}return!0}function u(t,n){t.addSlide=function(i,c){var s=e(i),o=s[0];t.autostopCount||t.countdown++,n[c?"unshift":"push"](o),t.els&&t.els[c?"unshift":"push"](o),t.slideCount=n.length,t.random&&(t.randomMap.push(t.slideCount-1),t.randomMap.sort(function(e,t){return Math.random()-.5})),s.css("position","absolute"),s[c?"prependTo":"appendTo"](t.$cont),c&&(t.currSlide++,t.nextSlide++),e.support.opacity||!t.cleartype||t.cleartypeNoBg||y(s),t.fit&&t.width&&s.width(t.width),t.fit&&t.height&&"auto"!=t.height&&s.height(t.height),o.cycleH=t.fit&&t.height?t.height:s.height(),o.cycleW=t.fit&&t.width?t.width:s.width(),s.css(t.cssBefore),(t.pager||t.pagerAnchorBuilder)&&e.fn.cycle.createPagerAnchor(n.length-1,o,e(t.pager),n,t),e.isFunction(t.onAddSlide)?t.onAddSlide(s):s.hide()}}function d(i,c,s,o){function r(){var e=0;c.timeout;c.timeout&&!c.continuous?(e=h(i[c.currSlide],i[c.nextSlide],c,o),"shuffle"==c.fx&&(e-=c.speedOut)):c.continuous&&l.cyclePause&&(e=10),e>0&&(l.cycleTimeout=setTimeout(function(){d(i,c,0,!c.backwards)},e))}var l=c.$cont[0],a=i[c.currSlide],f=i[c.nextSlide];if(s&&c.busy&&c.manualTrump&&(n("manualTrump in go(), stopping active transition"),e(i).stop(!0,!0),c.busy=0,clearTimeout(l.cycleTimeout)),c.busy)return void n("transition active, ignoring new tx request");if(l.cycleStop==c.stopCount&&(0!==l.cycleTimeout||s)){if(!s&&!l.cyclePause&&!c.bounce&&(c.autostop&&--c.countdown<=0||c.nowrap&&!c.random&&c.nextSlide<c.currSlide))return void(c.end&&c.end(c));var u=!1;if(!s&&l.cyclePause||c.nextSlide==c.currSlide)r();else{u=!0;var p=c.fx;a.cycleH=a.cycleH||e(a).height(),a.cycleW=a.cycleW||e(a).width(),f.cycleH=f.cycleH||e(f).height(),f.cycleW=f.cycleW||e(f).width(),c.multiFx&&(o&&(c.lastFx===t||++c.lastFx>=c.fxs.length)?c.lastFx=0:!o&&(c.lastFx===t||--c.lastFx<0)&&(c.lastFx=c.fxs.length-1),p=c.fxs[c.lastFx]),c.oneTimeFx&&(p=c.oneTimeFx,c.oneTimeFx=null),e.fn.cycle.resetState(c,p),c.before.length&&e.each(c.before,function(e,t){l.cycleStop==c.stopCount&&t.apply(f,[a,f,c,o])});var m=function(){c.busy=0,e.each(c.after,function(e,t){l.cycleStop==c.stopCount&&t.apply(f,[a,f,c,o])}),l.cycleStop||r()};n("tx firing("+p+"); currSlide: "+c.currSlide+"; nextSlide: "+c.nextSlide),c.busy=1,c.fxFn?c.fxFn(a,f,c,m,o,s&&c.fastOnEvent):e.isFunction(e.fn.cycle[c.fx])?e.fn.cycle[c.fx](a,f,c,m,o,s&&c.fastOnEvent):e.fn.cycle.custom(a,f,c,m,o,s&&c.fastOnEvent)}if(u||c.nextSlide==c.currSlide){var y;c.lastSlide=c.currSlide,c.random?(c.currSlide=c.nextSlide,++c.randomIndex==i.length&&(c.randomIndex=0,c.randomMap.sort(function(e,t){return Math.random()-.5})),c.nextSlide=c.randomMap[c.randomIndex],c.nextSlide==c.currSlide&&(c.nextSlide=c.currSlide==c.slideCount-1?0:c.currSlide+1)):c.backwards?(y=c.nextSlide-1<0,y&&c.bounce?(c.backwards=!c.backwards,c.nextSlide=1,c.currSlide=0):(c.nextSlide=y?i.length-1:c.nextSlide-1,c.currSlide=y?0:c.nextSlide+1)):(y=c.nextSlide+1==i.length,y&&c.bounce?(c.backwards=!c.backwards,c.nextSlide=i.length-2,c.currSlide=i.length-1):(c.nextSlide=y?0:c.nextSlide+1,c.currSlide=y?i.length-1:c.nextSlide-1))}u&&c.pager&&c.updateActivePagerLink(c.pager,c.currSlide,c.activePagerClass)}}function h(e,t,i,c){if(i.timeoutFn){for(var s=i.timeoutFn.call(e,e,t,i,c);"none"!=i.fx&&s-i.speed<250;)s+=i.speed;if(n("calculated timeout: "+s+"; speed: "+i.speed),!1!==s)return s}return i.timeout}function p(t,n){var i=n?1:-1,c=t.elements,s=t.$cont[0],o=s.cycleTimeout;if(o&&(clearTimeout(o),s.cycleTimeout=0),t.random&&i<0)t.randomIndex--,-2==--t.randomIndex?t.randomIndex=c.length-2:-1==t.randomIndex&&(t.randomIndex=c.length-1),t.nextSlide=t.randomMap[t.randomIndex];else if(t.random)t.nextSlide=t.randomMap[t.randomIndex];else if(t.nextSlide=t.currSlide+i,t.nextSlide<0){if(t.nowrap)return!1;t.nextSlide=c.length-1}else if(t.nextSlide>=c.length){if(t.nowrap)return!1;t.nextSlide=0}var r=t.onPrevNextEvent||t.prevNextClick;return e.isFunction(r)&&r(i>0,t.nextSlide,c[t.nextSlide]),d(c,t,1,n),!1}function m(t,n){var i=e(n.pager);e.each(t,function(c,s){e.fn.cycle.createPagerAnchor(c,s,i,t,n)}),n.updateActivePagerLink(n.pager,n.startingSlide,n.activePagerClass)}function y(t){function i(e){return e=parseInt(e,10).toString(16),e.length<2?"0"+e:e}function c(t){for(;t&&"html"!=t.nodeName.toLowerCase();t=t.parentNode){var n=e.css(t,"background-color");if(n&&n.indexOf("rgb")>=0){var c=n.match(/\d+/g);return"#"+i(c[0])+i(c[1])+i(c[2])}if(n&&"transparent"!=n)return n}return"#ffffff"}n("applying clearType background-color hack"),t.each(function(){e(this).css("background-color",c(this))})}e.support===t&&(e.support={opacity:!e.browser.msie}),e.expr[":"].paused=function(e){return e.cyclePause},e.fn.cycle=function(t,c){var o={s:this.selector,c:this.context};return 0===this.length&&"stop"!=t?!e.isReady&&o.s?(i("DOM not ready, queuing slideshow"),e(function(){e(o.s,o.c).cycle(t,c)}),this):(i("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this):this.each(function(){var r=s(this,t,c);if(!1!==r){r.updateActivePagerLink=r.updateActivePagerLink||e.fn.cycle.updateActivePagerLink,this.cycleTimeout&&clearTimeout(this.cycleTimeout),this.cycleTimeout=this.cyclePause=0,this.cycleStop=0;var a=e(this),f=r.slideExpr?e(r.slideExpr,this):a.children(),u=f.get();if(u.length<2)return void i("terminating; too few slides: "+u.length);var p=l(a,f,u,r,o);if(!1!==p){var m=p.continuous?10:h(u[p.currSlide],u[p.nextSlide],p,!p.backwards);m&&(m+=p.delay||0,m<10&&(m=10),n("first timeout: "+m),this.cycleTimeout=setTimeout(function(){d(u,p,0,!r.backwards)},m))}}})},e.fn.cycle.resetState=function(t,n){n=n||t.fx,t.before=[],t.after=[],t.cssBefore=e.extend({},t.original.cssBefore),t.cssAfter=e.extend({},t.original.cssAfter),t.animIn=e.extend({},t.original.animIn),t.animOut=e.extend({},t.original.animOut),t.fxFn=null,e.each(t.original.before,function(){t.before.push(this)}),e.each(t.original.after,function(){t.after.push(this)});var i=e.fn.cycle.transitions[n];e.isFunction(i)&&i(t.$cont,e(t.elements),t)},e.fn.cycle.updateActivePagerLink=function(t,n,i){e(t).each(function(){e(this).children().removeClass(i).eq(n).addClass(i)})},e.fn.cycle.next=function(e){p(e,1)},e.fn.cycle.prev=function(e){p(e,0)},e.fn.cycle.createPagerAnchor=function(t,i,s,o,r){var l;if(e.isFunction(r.pagerAnchorBuilder)?(l=r.pagerAnchorBuilder(t,i),n("pagerAnchorBuilder("+t+", el) returned: "+l)):l='<a href="#">'+(t+1)+"</a>",l){var a=e(l);if(0===a.parents("body").length){var f=[];s.length>1?(s.each(function(){var t=a.clone(!0);e(this).append(t),f.push(t[0])}),a=e(f)):a.appendTo(s)}r.pagerAnchors=r.pagerAnchors||[],r.pagerAnchors.push(a);var u=function(n){n.preventDefault(),r.nextSlide=t;var i=r.$cont[0],c=i.cycleTimeout;c&&(clearTimeout(c),i.cycleTimeout=0);var s=r.onPagerEvent||r.pagerClick;e.isFunction(s)&&s(r.nextSlide,o[r.nextSlide]),d(o,r,1,r.currSlide<t)};/mouseenter|mouseover/i.test(r.pagerEvent)?a.hover(u,function(){}):a.bind(r.pagerEvent,u),/^click/.test(r.pagerEvent)||r.allowPagerClickBubble||a.bind("click.cycle",function(){return!1});var h=r.$cont[0],p=!1;r.pauseOnPagerHover&&a.hover(function(){p=!0,h.cyclePause++,c(h,!0,!0)},function(){p&&h.cyclePause--,c(h,!0,!0)})}},e.fn.cycle.hopsFromLast=function(e,t){var n=e.lastSlide,i=e.currSlide;return t?i>n?i-n:e.slideCount-n:i<n?n-i:n+e.slideCount-i},e.fn.cycle.commonReset=function(t,n,i,c,s,o){e(i.elements).not(t).hide(),void 0===i.cssBefore.opacity&&(i.cssBefore.opacity=1),i.cssBefore.display="block",i.slideResize&&!1!==c&&n.cycleW>0&&(i.cssBefore.width=n.cycleW),i.slideResize&&!1!==s&&n.cycleH>0&&(i.cssBefore.height=n.cycleH),i.cssAfter=i.cssAfter||{},i.cssAfter.display="none",e(t).css("zIndex",i.slideCount+(!0===o?1:0)),e(n).css("zIndex",i.slideCount+(!0===o?0:1))},e.fn.cycle.custom=function(t,n,i,c,s,o){var r=e(t),l=e(n),a=i.speedIn,f=i.speedOut,u=i.easeIn,d=i.easeOut;l.css(i.cssBefore),o&&(a=f="number"==typeof o?o:1,u=d=null);var h=function(){l.animate(i.animIn,a,u,function(){c()})};r.animate(i.animOut,f,d,function(){r.css(i.cssAfter),i.sync||h()}),i.sync&&h()},e.fn.cycle.transitions={fade:function(t,n,i){n.not(":eq("+i.currSlide+")").css("opacity",0),i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i),i.cssBefore.opacity=0}),i.animIn={opacity:1},i.animOut={opacity:0},i.cssBefore={top:0,left:0}}},e.fn.cycle.ver=function(){return"2.9999.6"},e.fn.cycle.defaults={activePagerClass:"activeSlide",after:null,allowPagerClickBubble:!1,animIn:null,animOut:null,aspect:!1,autostop:0,autostopCount:0,backwards:!1,before:null,center:null,cleartype:!e.support.opacity,cleartypeNoBg:!1,containerResize:1,containerResizeHeight:0,continuous:0,cssAfter:null,cssBefore:null,delay:0,easeIn:null,easeOut:null,easing:null,end:null,fastOnEvent:0,fit:0,fx:"fade",fxFn:null,height:"auto",manualTrump:!0,metaAttr:"cycle",next:null,nowrap:0,onPagerEvent:null,onPrevNextEvent:null,pager:null,pagerAnchorBuilder:null,pagerEvent:"click.cycle",pause:0,pauseOnPagerHover:0,prev:null,prevNextEvent:"click.cycle",random:0,randomizeEffects:1,requeueOnImageNotLoaded:!0,requeueTimeout:250,rev:0,shuffle:null,skipInitializationCallbacks:!1,slideExpr:null,slideResize:1,speed:1e3,speedIn:null,speedOut:null,startingSlide:t,sync:1,timeout:4e3,timeoutFn:null,updateActivePagerLink:null,width:null}}(jQuery),function(e){"use strict";e.fn.cycle.transitions.none=function(t,n,i){i.fxFn=function(t,n,i,c){e(n).show(),e(t).hide(),c()}},e.fn.cycle.transitions.fadeout=function(t,n,i){n.not(":eq("+i.currSlide+")").css({display:"block",opacity:1}),i.before.push(function(t,n,i,c,s,o){e(t).css("zIndex",i.slideCount+(!0!==o?1:0)),e(n).css("zIndex",i.slideCount+(!0!==o?0:1))}),i.animIn.opacity=1,i.animOut.opacity=0,i.cssBefore.opacity=1,i.cssBefore.display="block",i.cssAfter.zIndex=0},e.fn.cycle.transitions.scrollUp=function(t,n,i){t.css("overflow","hidden"),i.before.push(e.fn.cycle.commonReset);var c=t.height();i.cssBefore.top=c,i.cssBefore.left=0,i.cssFirst.top=0,i.animIn.top=0,i.animOut.top=-c},e.fn.cycle.transitions.scrollDown=function(t,n,i){t.css("overflow","hidden"),i.before.push(e.fn.cycle.commonReset);var c=t.height();i.cssFirst.top=0,i.cssBefore.top=-c,i.cssBefore.left=0,i.animIn.top=0,i.animOut.top=c},e.fn.cycle.transitions.scrollLeft=function(t,n,i){t.css("overflow","hidden"),i.before.push(e.fn.cycle.commonReset);var c=t.width();i.cssFirst.left=0,i.cssBefore.left=c,i.cssBefore.top=0,i.animIn.left=0,i.animOut.left=0-c},e.fn.cycle.transitions.scrollRight=function(t,n,i){t.css("overflow","hidden"),i.before.push(e.fn.cycle.commonReset);var c=t.width();i.cssFirst.left=0,i.cssBefore.left=-c,i.cssBefore.top=0,i.animIn.left=0,i.animOut.left=c},e.fn.cycle.transitions.scrollHorz=function(t,n,i){t.css("overflow","hidden").width(),i.before.push(function(t,n,i,c){i.rev&&(c=!c),e.fn.cycle.commonReset(t,n,i),i.cssBefore.left=c?n.cycleW-1:1-n.cycleW,i.animOut.left=c?-t.cycleW:t.cycleW}),i.cssFirst.left=0,i.cssBefore.top=0,i.animIn.left=0,i.animOut.top=0},e.fn.cycle.transitions.scrollVert=function(t,n,i){t.css("overflow","hidden"),i.before.push(function(t,n,i,c){i.rev&&(c=!c),e.fn.cycle.commonReset(t,n,i),i.cssBefore.top=c?1-n.cycleH:n.cycleH-1,i.animOut.top=c?t.cycleH:-t.cycleH}),i.cssFirst.top=0,i.cssBefore.left=0,i.animIn.top=0,i.animOut.left=0},e.fn.cycle.transitions.slideX=function(t,n,i){i.before.push(function(t,n,i){e(i.elements).not(t).hide(),e.fn.cycle.commonReset(t,n,i,!1,!0),i.animIn.width=n.cycleW}),i.cssBefore.left=0,i.cssBefore.top=0,i.cssBefore.width=0,i.animIn.width="show",i.animOut.width=0},e.fn.cycle.transitions.slideY=function(t,n,i){i.before.push(function(t,n,i){e(i.elements).not(t).hide(),e.fn.cycle.commonReset(t,n,i,!0,!1),i.animIn.height=n.cycleH}),i.cssBefore.left=0,i.cssBefore.top=0,i.cssBefore.height=0,i.animIn.height="show",i.animOut.height=0},e.fn.cycle.transitions.shuffle=function(t,n,i){var c,s=t.css("overflow","visible").width();for(n.css({left:0,top:0}),i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!0,!0)}),i.speedAdjusted||(i.speed=i.speed/2,i.speedAdjusted=!0),i.random=0,i.shuffle=i.shuffle||{left:-s,top:15},i.els=[],c=0;c<n.length;c++)i.els.push(n[c]);for(c=0;c<i.currSlide;c++)i.els.push(i.els.shift());i.fxFn=function(t,n,i,c,s){i.rev&&(s=!s);var o=e(s?t:n);e(n).css(i.cssBefore);var r=i.slideCount;o.animate(i.shuffle,i.speedIn,i.easeIn,function(){for(var n=e.fn.cycle.hopsFromLast(i,s),l=0;l<n;l++)s?i.els.push(i.els.shift()):i.els.unshift(i.els.pop());if(s)for(var a=0,f=i.els.length;a<f;a++)e(i.els[a]).css("z-index",f-a+r);else{var u=e(t).css("z-index");o.css("z-index",parseInt(u,10)+1+r)}o.animate({left:0,top:0},i.speedOut,i.easeOut,function(){e(s?this:t).hide(),c&&c()})})},e.extend(i.cssBefore,{display:"block",opacity:1,top:0,left:0})},e.fn.cycle.transitions.turnUp=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!1),i.cssBefore.top=n.cycleH,i.animIn.height=n.cycleH,i.animOut.width=n.cycleW}),i.cssFirst.top=0,i.cssBefore.left=0,i.cssBefore.height=0,i.animIn.top=0,i.animOut.height=0},e.fn.cycle.transitions.turnDown=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!1),i.animIn.height=n.cycleH,i.animOut.top=t.cycleH}),i.cssFirst.top=0,i.cssBefore.left=0,i.cssBefore.top=0,i.cssBefore.height=0,i.animOut.height=0},e.fn.cycle.transitions.turnLeft=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!1,!0),i.cssBefore.left=n.cycleW,i.animIn.width=n.cycleW}),i.cssBefore.top=0,i.cssBefore.width=0,i.animIn.left=0,i.animOut.width=0},e.fn.cycle.transitions.turnRight=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!1,!0),i.animIn.width=n.cycleW,i.animOut.left=t.cycleW}),e.extend(i.cssBefore,{top:0,left:0,width:0}),i.animIn.left=0,i.animOut.width=0},e.fn.cycle.transitions.zoom=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!1,!1,!0),i.cssBefore.top=n.cycleH/2,i.cssBefore.left=n.cycleW/2,e.extend(i.animIn,{top:0,left:0,width:n.cycleW,height:n.cycleH}),e.extend(i.animOut,{width:0,height:0,top:t.cycleH/2,left:t.cycleW/2})}),i.cssFirst.top=0,i.cssFirst.left=0,i.cssBefore.width=0,i.cssBefore.height=0},e.fn.cycle.transitions.fadeZoom=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!1,!1),i.cssBefore.left=n.cycleW/2,i.cssBefore.top=n.cycleH/2,e.extend(i.animIn,{top:0,left:0,width:n.cycleW,height:n.cycleH})}),i.cssBefore.width=0,i.cssBefore.height=0,i.animOut.opacity=0},e.fn.cycle.transitions.blindX=function(t,n,i){var c=t.css("overflow","hidden").width();i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i),i.animIn.width=n.cycleW,i.animOut.left=t.cycleW}),i.cssBefore.left=c,i.cssBefore.top=0,i.animIn.left=0,i.animOut.left=c},e.fn.cycle.transitions.blindY=function(t,n,i){var c=t.css("overflow","hidden").height();i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i),i.animIn.height=n.cycleH,i.animOut.top=t.cycleH}),i.cssBefore.top=c,i.cssBefore.left=0,i.animIn.top=0,i.animOut.top=c},e.fn.cycle.transitions.blindZ=function(t,n,i){var c=t.css("overflow","hidden").height(),s=t.width();i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i),i.animIn.height=n.cycleH,i.animOut.top=t.cycleH}),i.cssBefore.top=c,i.cssBefore.left=s,i.animIn.top=0,i.animIn.left=0,i.animOut.top=c,i.animOut.left=s},e.fn.cycle.transitions.growX=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!1,!0),i.cssBefore.left=this.cycleW/2,i.animIn.left=0,i.animIn.width=this.cycleW,i.animOut.left=0}),i.cssBefore.top=0,i.cssBefore.width=0},e.fn.cycle.transitions.growY=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!1),i.cssBefore.top=this.cycleH/2,i.animIn.top=0,i.animIn.height=this.cycleH,i.animOut.top=0}),i.cssBefore.height=0,i.cssBefore.left=0},e.fn.cycle.transitions.curtainX=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!1,!0,!0),i.cssBefore.left=n.cycleW/2,i.animIn.left=0,i.animIn.width=this.cycleW,i.animOut.left=t.cycleW/2,i.animOut.width=0}),i.cssBefore.top=0,i.cssBefore.width=0},e.fn.cycle.transitions.curtainY=function(t,n,i){i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!1,!0),i.cssBefore.top=n.cycleH/2,i.animIn.top=0,i.animIn.height=n.cycleH,i.animOut.top=t.cycleH/2,i.animOut.height=0}),i.cssBefore.height=0,i.cssBefore.left=0},e.fn.cycle.transitions.cover=function(t,n,i){var c=i.direction||"left",s=t.css("overflow","hidden").width(),o=t.height();i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i),"right"==c?i.cssBefore.left=-s:"up"==c?i.cssBefore.top=o:"down"==c?i.cssBefore.top=-o:i.cssBefore.left=s}),i.animIn.left=0,i.animIn.top=0,i.cssBefore.top=0,i.cssBefore.left=0},e.fn.cycle.transitions.uncover=function(t,n,i){var c=i.direction||"left",s=t.css("overflow","hidden").width(),o=t.height();i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!0,!0),"right"==c?i.animOut.left=s:"up"==c?i.animOut.top=-o:"down"==c?i.animOut.top=o:i.animOut.left=-s}),i.animIn.left=0,i.animIn.top=0,i.cssBefore.top=0,i.cssBefore.left=0},e.fn.cycle.transitions.toss=function(t,n,i){var c=t.css("overflow","visible").width(),s=t.height();i.before.push(function(t,n,i){e.fn.cycle.commonReset(t,n,i,!0,!0,!0),i.animOut.left||i.animOut.top?i.animOut.opacity=0:e.extend(i.animOut,{left:2*c,top:-s/2,opacity:0})}),i.cssBefore.left=0,i.cssBefore.top=0,i.animIn.left=0},e.fn.cycle.transitions.wipe=function(t,n,i){var c=t.css("overflow","hidden").width(),s=t.height();i.cssBefore=i.cssBefore||{};var o;if(i.clip)if(/l2r/.test(i.clip))o="rect(0px 0px "+s+"px 0px)";else if(/r2l/.test(i.clip))o="rect(0px "+c+"px "+s+"px "+c+"px)";else if(/t2b/.test(i.clip))o="rect(0px "+c+"px 0px 0px)";else if(/b2t/.test(i.clip))o="rect("+s+"px "+c+"px "+s+"px 0px)";else if(/zoom/.test(i.clip)){var r=parseInt(s/2,10),l=parseInt(c/2,10);o="rect("+r+"px "+l+"px "+r+"px "+l+"px)"}i.cssBefore.clip=i.cssBefore.clip||o||"rect(0px 0px 0px 0px)";var a=i.cssBefore.clip.match(/(\d+)/g),f=parseInt(a[0],10),u=parseInt(a[1],10),d=parseInt(a[2],10),h=parseInt(a[3],10);i.before.push(function(t,n,i){if(t!=n){var o=e(t),r=e(n);e.fn.cycle.commonReset(t,n,i,!0,!0,!1),i.cssAfter.display="block";var l=1,a=parseInt(i.speedIn/13,10)-1;!function e(){var t=f?f-parseInt(l*(f/a),10):0,n=h?h-parseInt(l*(h/a),10):0,i=d<s?d+parseInt(l*((s-d)/a||1),10):s,p=u<c?u+parseInt(l*((c-u)/a||1),10):c;r.css({clip:"rect("+t+"px "+p+"px "+i+"px "+n+"px)"}),l++<=a?setTimeout(e,13):o.css("display","none")}()}}),e.extend(i.cssBefore,{display:"block",opacity:1,top:0,left:0}),i.animIn={left:0},i.animOut={left:0}}}(jQuery);
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/jquery.waitforimages.js CHANGED
@@ -1,3 +1,5 @@
 
 
1
  /*! waitForImages jQuery Plugin - v1.4.1 - 2012-10-12
2
  * https://github.com/alexanderdickson/waitForImages
3
  * Copyright (c) 2012 Alex Dickson; Licensed MIT */
@@ -6,7 +8,7 @@
6
  // Namespace all events.
7
  var eventNamespace = 'waitForImages';
8
 
9
- // CSS properties which contain references to images.
10
  $.waitForImages = {
11
  hasImageProperties: ['backgroundImage', 'listStyleImage', 'borderImage', 'borderCornerImage']
12
  };
@@ -95,11 +97,11 @@
95
  // For images only, the task is simpler.
96
  obj.find('img:uncached')
97
  .each(function () {
98
- allImgs.push({
99
- src: this.src,
100
- element: this
 
101
  });
102
- });
103
  }
104
 
105
  allImgsLength = allImgs.length;
1
+ /* Please enqueue ngg_waitforimages instead of enqueuing this file directly */
2
+
3
  /*! waitForImages jQuery Plugin - v1.4.1 - 2012-10-12
4
  * https://github.com/alexanderdickson/waitForImages
5
  * Copyright (c) 2012 Alex Dickson; Licensed MIT */
8
  // Namespace all events.
9
  var eventNamespace = 'waitForImages';
10
 
11
+ // CSS properties which contain references to images.
12
  $.waitForImages = {
13
  hasImageProperties: ['backgroundImage', 'listStyleImage', 'borderImage', 'borderCornerImage']
14
  };
97
  // For images only, the task is simpler.
98
  obj.find('img:uncached')
99
  .each(function () {
100
+ allImgs.push({
101
+ src: this.src,
102
+ element: this
103
+ });
104
  });
 
105
  }
106
 
107
  allImgsLength = allImgs.length;
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.css DELETED
@@ -1,67 +0,0 @@
1
- body {
2
- }
3
-
4
- #page {
5
- overflow: visible;
6
- }
7
-
8
- /* ----------- Slideshow -------------*/
9
-
10
- .slideshow {
11
- margin-left: auto;
12
- margin-right: auto;
13
- text-align: center;
14
- outline: none;
15
- }
16
-
17
- .slideshowlink {
18
- }
19
-
20
- /* ----------- JS Slideshow -------------*/
21
-
22
- .ngg-slideshow {
23
- overflow: hidden;
24
- position: relative;
25
- margin-left: auto;
26
- margin-right: auto;
27
- text-align: center;
28
- clear: both;
29
- z-index: 0;
30
- }
31
-
32
- .ngg-slideshow * {
33
- vertical-align: middle;
34
- }
35
-
36
- .ngg-slideshow img {
37
- max-width: 100% !important;
38
- max-height: 100%;
39
- width: auto;
40
- height: auto;
41
- border: none;
42
- }
43
-
44
- .ngg-slideshow .ngg-gallery-slideshow-image {
45
- position: relative;
46
- width: 100% !important;
47
- height: 100% !important;
48
- max-width: 100% !important;
49
- max-height: 100% !important;
50
- }
51
-
52
- .ngg-slideshow .image-placeholder {
53
- visibility: hidden;
54
- }
55
-
56
- /* See also : http://www.brunildo.org/test/img_center.html */
57
- .ngg-slideshow-loader {
58
- display: table-cell;
59
- text-align: center;
60
- vertical-align: middle;
61
- }
62
-
63
- .ngg-slideshow-loader img {
64
- background: none !important;
65
- border: 0 none !important;
66
- margin: auto !important;
67
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.js DELETED
@@ -1,55 +0,0 @@
1
- jQuery.fn.nggShowSlideshow = function(args) {
2
-
3
- var defaults = {
4
- id: 1,
5
- width: 600,
6
- height: 400,
7
- fx: 'fade',
8
- domain: '',
9
- timeout: 5000
10
- };
11
-
12
- var s = jQuery.extend({}, defaults, args);
13
- var selector = this.selector;
14
-
15
- jQuery(selector + '-loader').empty().remove();
16
-
17
- var container = jQuery(selector);
18
- var gallery = jQuery(selector + '-image-list');
19
- var self = this;
20
-
21
- jQuery(gallery).waitForImages(function() {
22
- var list = gallery.contents().detach();
23
- var placeholder = container.attr('data-placeholder');
24
-
25
- gallery.remove();
26
-
27
- list.appendTo(self);
28
-
29
- self.show();
30
-
31
- if (placeholder) {
32
- self.prepend('<img class="image-placeholder" src="' + placeholder + '" width="' + s.width + '" height="' + s.height + '" style="width: ' + s.width + 'px; height: auto;" />');
33
- }
34
-
35
- if (self.children().length > 1) {
36
- self.cycle({
37
- fx: s.fx,
38
- slideExpr: '.ngg-gallery-slideshow-image',
39
- slideResize: false,
40
- containerResize: false,
41
- fit: 1,
42
- timeout: s.timeout,
43
- next: self, // advance to next image when clicked
44
- after: function(currSlideElement, nextSlideElement, options, forwardFlag) {
45
- // update the pro-lightbox triggers should they exist
46
- jQuery(nextSlideElement).parent().siblings('div.ngg-trigger-buttons').each(function() {
47
- jQuery(this).find('i').each(function() {
48
- jQuery(this).data('image-id', jQuery(nextSlideElement).find('img').data('image-id'));
49
- });
50
- });
51
- }
52
- });
53
- }
54
- });
55
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.min.css DELETED
@@ -1 +0,0 @@
1
- #page{overflow:visible}.slideshow{margin-left:auto;margin-right:auto;text-align:center;outline:0}.ngg-slideshow{overflow:hidden;position:relative;margin-left:auto;margin-right:auto;text-align:center;clear:both;z-index:0}.ngg-slideshow *{vertical-align:middle}.ngg-slideshow img{max-width:100%!important;max-height:100%;width:auto;height:auto;border:none}.ngg-slideshow .ngg-gallery-slideshow-image{position:relative;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important}.ngg-slideshow .image-placeholder{visibility:hidden}.ngg-slideshow-loader{display:table-cell;text-align:center;vertical-align:middle}.ngg-slideshow-loader img{background:0 0!important;border:0 none!important;margin:auto!important}
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/nextgen_basic_slideshow.min.js DELETED
@@ -1 +0,0 @@
1
- jQuery.fn.nggShowSlideshow=function(e){var i={id:1,width:600,height:400,fx:"fade",domain:"",timeout:5e3},t=jQuery.extend({},i,e),a=this.selector;jQuery(a+"-loader").empty().remove();var r=jQuery(a),n=jQuery(a+"-image-list"),d=this;jQuery(n).waitForImages(function(){var e=n.contents().detach(),i=r.attr("data-placeholder");n.remove(),e.appendTo(d),d.show(),i&&d.prepend('<img class="image-placeholder" src="'+i+'" width="'+t.width+'" height="'+t.height+'" style="width: '+t.width+'px; height: auto;" />'),d.children().length>1&&d.cycle({fx:t.fx,slideExpr:".ngg-gallery-slideshow-image",slideResize:!1,containerResize:!1,fit:1,timeout:t.timeout,next:d,after:function(e,i,t,a){jQuery(i).parent().siblings("div.ngg-trigger-buttons").each(function(){jQuery(this).find("i").each(function(){jQuery(this).data("image-id",jQuery(i).find("img").data("image-id"))})})}})})};
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.css ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ngg-slideshow.slick-slider {
2
+ margin: 40px auto 50px !important;
3
+ overflow: visible;
4
+ }
5
+
6
+ .ngg-slideshow .ngg-gallery-slideshow-image {
7
+ display: inline-block;
8
+ text-align: center;
9
+ font: 0/0 a;
10
+ }
11
+
12
+ .ngg-slideshow .ngg-gallery-slideshow-image:before {
13
+ content: ' ';
14
+ display: inline-block;
15
+ vertical-align: middle;
16
+ height: 100%;
17
+ }
18
+
19
+ .ngg-slideshow .ngg-gallery-slideshow-image img {
20
+ margin: 0 auto;
21
+ display: inline-block;
22
+ vertical-align: middle;
23
+ max-width: 99%!important;
24
+ max-height: 98% !important;
25
+ }
26
+
27
+ .ngg-slideshow .slick-prev {
28
+ left: 20px !important;
29
+ z-index: 10 !important;
30
+ top: 49%;
31
+ cursor: before;
32
+ }
33
+
34
+ .ngg-slideshow .slick-next {
35
+ right: 30px !important;
36
+ z-index: 10 !important;
37
+ top: 49%;
38
+ cursor: pointer;
39
+ }
40
+
41
+ .ngg-slideshow .slick-next:before,
42
+ .ngg-slideshow .slick-prev:before {
43
+ color: #CCC !important;
44
+ font-size: 32px !important;
45
+ }
46
+
47
+ .ngg-slideshow .slick-next:hover:before,
48
+ .ngg-slideshow .slick-prev:hover:before {
49
+ color: #AAA !important;
50
+ font-size: 32px !important;
51
+ }
52
+
53
+ .ngg-slideshow .slick-dots {
54
+ margin: 0;
55
+ padding: 0;
56
+ bottom: -30px;
57
+ }
58
+
59
+ .ngg-slideshow .slick-dots li {
60
+ margin: 0;
61
+ }
62
+
63
+ .ngg-slideshow .slick-dots li button {
64
+ margin: 0;
65
+ }
66
+
67
+ .ngg-slideshow .slick-dots li button:before {
68
+ font-size: 8px;
69
+ color: #888;
70
+ opacity: .5;
71
+ cursor: pointer;
72
+ }
73
+
74
+ .ngg-slideshow .slick-dots li.slick-active button:before {
75
+ opacity: 1;
76
+ color: #555;
77
+ }
78
+
79
+ .slideshowlink {
80
+ margin: -34px auto 50px;
81
+ text-align: center;
82
+ text-transform: uppercase;
83
+ }
84
+
85
+ .slideshowlink a {
86
+ font-size: 13px;
87
+ letter-spacing: .75px;
88
+ cursor: pointer;
89
+ text-decoration: none;
90
+ box-shadow: none;
91
+ border: none;
92
+ }
93
+
94
+ .slideshowlink a:hover {
95
+ text-decoration: none !important;
96
+ box-shadow: none !important;
97
+ border: none !important;
98
+ }
99
+
100
+ @media (max-width: 600px) {
101
+ .ngg-slideshow .ngg-gallery-slideshow-image {
102
+ height: 400px !important;
103
+ }
104
+ }
105
+
106
+ @media (max-width: 450px) {
107
+ .ngg-slideshow .ngg-gallery-slideshow-image {
108
+ height: 300px !important;
109
+ }
110
+
111
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.js ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+
3
+ $(document).ready(function(){
4
+ $('.ngg-galleryoverview.ngg-slideshow').slick({
5
+ autoplay: false,
6
+ arrows: true,
7
+ draggable: false,
8
+ dots: false
9
+ // centerMode: true,
10
+ // variableWidth: true,
11
+ // swipe: true
12
+ });
13
+ });
14
+
15
+ })(jQuery);
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .ngg-slideshow.slick-slider{margin:40px auto 50px!important;overflow:visible}.ngg-slideshow .ngg-gallery-slideshow-image{display:inline-block;text-align:center;font:0/0 a}.ngg-slideshow .ngg-gallery-slideshow-image:before{content:' ';display:inline-block;vertical-align:middle;height:100%}.ngg-slideshow .ngg-gallery-slideshow-image img{margin:0 auto;display:inline-block;vertical-align:middle;max-width:99%!important;max-height:98%!important}.ngg-slideshow .slick-prev{left:20px!important;z-index:10!important;top:49%;cursor:before}.ngg-slideshow .slick-next{right:30px!important;z-index:10!important;top:49%;cursor:pointer}.ngg-slideshow .slick-next:before,.ngg-slideshow .slick-prev:before{color:#ccc!important;font-size:32px!important}.ngg-slideshow .slick-next:hover:before,.ngg-slideshow .slick-prev:hover:before{color:#aaa!important;font-size:32px!important}.ngg-slideshow .slick-dots{margin:0;padding:0;bottom:-30px}.ngg-slideshow .slick-dots li{margin:0}.ngg-slideshow .slick-dots li button{margin:0}.ngg-slideshow .slick-dots li button:before{font-size:8px;color:#888;opacity:.5;cursor:pointer}.ngg-slideshow .slick-dots li.slick-active button:before{opacity:1;color:#555}.slideshowlink{margin:-34px auto 50px;text-align:center;text-transform:uppercase}.slideshowlink a{font-size:13px;letter-spacing:.75px;cursor:pointer;text-decoration:none;box-shadow:none;border:none}.slideshowlink a:hover{text-decoration:none!important;box-shadow:none!important;border:none!important}@media (max-width:600px){.ngg-slideshow .ngg-gallery-slideshow-image{height:400px!important}}@media (max-width:450px){.ngg-slideshow .ngg-gallery-slideshow-image{height:300px!important}}
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/ngg_basic_slideshow.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){e(document).ready(function(){e(".ngg-galleryoverview.ngg-slideshow").slick({autoplay:!1,arrows:!0,draggable:!1,dots:!1})})}(jQuery);
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/ajax-loader.gif ADDED
Binary file
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/config.rb ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ css_dir = "."
2
+ sass_dir = "."
3
+ images_dir = "."
4
+ fonts_dir = "fonts"
5
+ relative_assets = true
6
+
7
+ output_style = :compact
8
+ line_comments = false
9
+
10
+ preferred_syntax = :scss
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.eot ADDED
Binary file
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.svg ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by Fontastic.me</metadata>
5
+ <defs>
6
+ <font id="slick" horiz-adv-x="512">
7
+ <font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
8
+ <missing-glyph horiz-adv-x="512" />
9
+
10
+ <glyph unicode="&#8594;" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
11
+ <glyph unicode="&#8592;" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
12
+ <glyph unicode="&#8226;" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
13
+ <glyph unicode="&#97;" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
14
+ </font></defs></svg>
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.ttf ADDED
Binary file
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/fonts/slick.woff ADDED
Binary file
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.css ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset 'UTF-8';
2
+ /* Slider */
3
+ .slick-loading .slick-list
4
+ {
5
+ background: #fff url('./ajax-loader.gif') center center no-repeat;
6
+ }
7
+
8
+ /* Icons */
9
+ @font-face
10
+ {
11
+ font-family: 'slick';
12
+ font-weight: normal;
13
+ font-style: normal;
14
+
15
+ src: url('./fonts/slick.eot');
16
+ src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
17
+ }
18
+ /* Arrows */
19
+ .slick-prev,
20
+ .slick-next
21
+ {
22
+ font-size: 0;
23
+ line-height: 0;
24
+
25
+ position: absolute;
26
+ top: 50%;
27
+
28
+ display: block;
29
+
30
+ width: 20px;
31
+ height: 20px;
32
+ padding: 0;
33
+ -webkit-transform: translate(0, -50%);
34
+ -ms-transform: translate(0, -50%);
35
+ transform: translate(0, -50%);
36
+
37
+ cursor: pointer;
38
+
39
+ color: transparent;
40
+ border: none;
41
+ outline: none;
42
+ background: transparent;
43
+ }
44
+ .slick-prev:hover,
45
+ .slick-prev:focus,
46
+ .slick-next:hover,
47
+ .slick-next:focus
48
+ {
49
+ color: transparent;
50
+ outline: none;
51
+ background: transparent;
52
+ }
53
+ .slick-prev:hover:before,
54
+ .slick-prev:focus:before,
55
+ .slick-next:hover:before,
56
+ .slick-next:focus:before
57
+ {
58
+ opacity: 1;
59
+ }
60
+ .slick-prev.slick-disabled:before,
61
+ .slick-next.slick-disabled:before
62
+ {
63
+ opacity: .25;
64
+ }
65
+
66
+ .slick-prev:before,
67
+ .slick-next:before
68
+ {
69
+ font-family: 'slick';
70
+ font-size: 20px;
71
+ line-height: 1;
72
+
73
+ opacity: .75;
74
+ color: white;
75
+
76
+ -webkit-font-smoothing: antialiased;
77
+ -moz-osx-font-smoothing: grayscale;
78
+ }
79
+
80
+ .slick-prev
81
+ {
82
+ left: -25px;
83
+ }
84
+ [dir='rtl'] .slick-prev
85
+ {
86
+ right: -25px;
87
+ left: auto;
88
+ }
89
+ .slick-prev:before
90
+ {
91
+ content: '←';
92
+ }
93
+ [dir='rtl'] .slick-prev:before
94
+ {
95
+ content: '→';
96
+ }
97
+
98
+ .slick-next
99
+ {
100
+ right: -25px;
101
+ }
102
+ [dir='rtl'] .slick-next
103
+ {
104
+ right: auto;
105
+ left: -25px;
106
+ }
107
+ .slick-next:before
108
+ {
109
+ content: '→';
110
+ }
111
+ [dir='rtl'] .slick-next:before
112
+ {
113
+ content: '←';
114
+ }
115
+
116
+ /* Dots */
117
+ .slick-dotted.slick-slider
118
+ {
119
+ margin-bottom: 30px;
120
+ }
121
+
122
+ .slick-dots
123
+ {
124
+ position: absolute;
125
+ bottom: -25px;
126
+
127
+ display: block;
128
+
129
+ width: 100%;
130
+ padding: 0;
131
+ margin: 0;
132
+
133
+ list-style: none;
134
+
135
+ text-align: center;
136
+ }
137
+ .slick-dots li
138
+ {
139
+ position: relative;
140
+
141
+ display: inline-block;
142
+
143
+ width: 20px;
144
+ height: 20px;
145
+ margin: 0 5px;
146
+ padding: 0;
147
+
148
+ cursor: pointer;
149
+ }
150
+ .slick-dots li button
151
+ {
152
+ font-size: 0;
153
+ line-height: 0;
154
+
155
+ display: block;
156
+
157
+ width: 20px;
158
+ height: 20px;
159
+ padding: 5px;
160
+
161
+ cursor: pointer;
162
+
163
+ color: transparent;
164
+ border: 0;
165
+ outline: none;
166
+ background: transparent;
167
+ }
168
+ .slick-dots li button:hover,
169
+ .slick-dots li button:focus
170
+ {
171
+ outline: none;
172
+ }
173
+ .slick-dots li button:hover:before,
174
+ .slick-dots li button:focus:before
175
+ {
176
+ opacity: 1;
177
+ }
178
+ .slick-dots li button:before
179
+ {
180
+ font-family: 'slick';
181
+ font-size: 6px;
182
+ line-height: 20px;
183
+
184
+ position: absolute;
185
+ top: 0;
186
+ left: 0;
187
+
188
+ width: 20px;
189
+ height: 20px;
190
+
191
+ content: '•';
192
+ text-align: center;
193
+
194
+ opacity: .25;
195
+ color: black;
196
+
197
+ -webkit-font-smoothing: antialiased;
198
+ -moz-osx-font-smoothing: grayscale;
199
+ }
200
+ .slick-dots li.slick-active button:before
201
+ {
202
+ opacity: .75;
203
+ color: black;
204
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.less ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+
3
+ // Default Variables
4
+
5
+ @slick-font-path: "./fonts/";
6
+ @slick-font-family: "slick";
7
+ @slick-loader-path: "./";
8
+ @slick-arrow-color: white;
9
+ @slick-dot-color: black;
10
+ @slick-dot-color-active: @slick-dot-color;
11
+ @slick-prev-character: "←";
12
+ @slick-next-character: "→";
13
+ @slick-dot-character: "•";
14
+ @slick-dot-size: 6px;
15
+ @slick-opacity-default: 0.75;
16
+ @slick-opacity-on-hover: 1;
17
+ @slick-opacity-not-active: 0.25;
18
+
19
+ /* Slider */
20
+ .slick-loading .slick-list{
21
+ background: #fff url('@{slick-loader-path}ajax-loader.gif') center center no-repeat;
22
+ }
23
+
24
+ /* Arrows */
25
+ .slick-prev,
26
+ .slick-next {
27
+ position: absolute;
28
+ display: block;
29
+ height: 20px;
30
+ width: 20px;
31
+ line-height: 0px;
32
+ font-size: 0px;
33
+ cursor: pointer;
34
+ background: transparent;
35
+ color: transparent;
36
+ top: 50%;
37
+ -webkit-transform: translate(0, -50%);
38
+ -ms-transform: translate(0, -50%);
39
+ transform: translate(0, -50%);
40
+ padding: 0;
41
+ border: none;
42
+ outline: none;
43
+ &:hover, &:focus {
44
+ outline: none;
45
+ background: transparent;
46
+ color: transparent;
47
+ &:before {
48
+ opacity: @slick-opacity-on-hover;
49
+ }
50
+ }
51
+ &.slick-disabled:before {
52
+ opacity: @slick-opacity-not-active;
53
+ }
54
+ }
55
+
56
+ .slick-prev:before, .slick-next:before {
57
+ font-family: @slick-font-family;
58
+ font-size: 20px;
59
+ line-height: 1;
60
+ color: @slick-arrow-color;
61
+ opacity: @slick-opacity-default;
62
+ -webkit-font-smoothing: antialiased;
63
+ -moz-osx-font-smoothing: grayscale;
64
+
65
+ & when ( @slick-font-family = 'slick' ) {
66
+ /* Icons */
67
+ @font-face {
68
+ font-family: 'slick';
69
+ font-weight: normal;
70
+ font-style: normal;
71
+ src: url('@{slick-font-path}slick.eot');
72
+ src: url('@{slick-font-path}slick.eot?#iefix') format('embedded-opentype'), url('@{slick-font-path}slick.woff') format('woff'), url('@{slick-font-path}slick.ttf') format('truetype'), url('@{slick-font-path}slick.svg#slick') format('svg');
73
+ }
74
+ }
75
+ }
76
+
77
+ .slick-prev {
78
+ left: -25px;
79
+ [dir="rtl"] & {
80
+ left: auto;
81
+ right: -25px;
82
+ }
83
+ &:before {
84
+ content: @slick-prev-character;
85
+ [dir="rtl"] & {
86
+ content: @slick-next-character;
87
+ }
88
+ }
89
+ }
90
+
91
+ .slick-next {
92
+ right: -25px;
93
+ [dir="rtl"] & {
94
+ left: -25px;
95
+ right: auto;
96
+ }
97
+ &:before {
98
+ content: @slick-next-character;
99
+ [dir="rtl"] & {
100
+ content: @slick-prev-character;
101
+ }
102
+ }
103
+ }
104
+
105
+ /* Dots */
106
+
107
+ .slick-dotted .slick-slider {
108
+ margin-bottom: 30px;
109
+ }
110
+
111
+ .slick-dots {
112
+ position: absolute;
113
+ bottom: -25px;
114
+ list-style: none;
115
+ display: block;
116
+ text-align: center;
117
+ padding: 0;
118
+ margin: 0;
119
+ width: 100%;
120
+ li {
121
+ position: relative;
122
+ display: inline-block;
123
+ height: 20px;
124
+ width: 20px;
125
+ margin: 0 5px;
126
+ padding: 0;
127
+ cursor: pointer;
128
+ button {
129
+ border: 0;
130
+ background: transparent;
131
+ display: block;
132
+ height: 20px;
133
+ width: 20px;
134
+ outline: none;
135
+ line-height: 0px;
136
+ font-size: 0px;
137
+ color: transparent;
138
+ padding: 5px;
139
+ cursor: pointer;
140
+ &:hover, &:focus {
141
+ outline: none;
142
+ &:before {
143
+ opacity: @slick-opacity-on-hover;
144
+ }
145
+ }
146
+ &:before {
147
+ position: absolute;
148
+ top: 0;
149
+ left: 0;
150
+ content: @slick-dot-character;
151
+ width: 20px;
152
+ height: 20px;
153
+ font-family: @slick-font-family;
154
+ font-size: @slick-dot-size;
155
+ line-height: 20px;
156
+ text-align: center;
157
+ color: @slick-dot-color;
158
+ opacity: @slick-opacity-not-active;
159
+ -webkit-font-smoothing: antialiased;
160
+ -moz-osx-font-smoothing: grayscale;
161
+ }
162
+ }
163
+ &.slick-active button:before {
164
+ color: @slick-dot-color-active;
165
+ opacity: @slick-opacity-default;
166
+ }
167
+ }
168
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.min.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset 'UTF-8';.slick-loading .slick-list{background:#fff url(ajax-loader.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(fonts/slick.eot);src:url(fonts/slick.eot?#iefix) format('embedded-opentype'),url(fonts/slick.woff) format('woff'),url(fonts/slick.ttf) format('truetype'),url(fonts/slick.svg#slick) format('svg')}.slick-next,.slick-prev{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;color:transparent;border:none;outline:0;background:0 0}.slick-next:focus,.slick-next:hover,.slick-prev:focus,.slick-prev:hover{color:transparent;outline:0;background:0 0}.slick-next:focus:before,.slick-next:hover:before,.slick-prev:focus:before,.slick-prev:hover:before{opacity:1}.slick-next.slick-disabled:before,.slick-prev.slick-disabled:before{opacity:.25}.slick-next:before,.slick-prev:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:'←'}[dir=rtl] .slick-prev:before{content:'→'}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:'→'}[dir=rtl] .slick-next:before{content:'←'}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:0;background:0 0}.slick-dots li button:focus,.slick-dots li button:hover{outline:0}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'•';text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick-theme.scss ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+
3
+ // Default Variables
4
+
5
+ // Slick icon entity codes outputs the following
6
+ // "\2190" outputs ascii character "←"
7
+ // "\2192" outputs ascii character "→"
8
+ // "\2022" outputs ascii character "•"
9
+
10
+ $slick-font-path: "./fonts/" !default;
11
+ $slick-font-family: "slick" !default;
12
+ $slick-loader-path: "./" !default;
13
+ $slick-arrow-color: white !default;
14
+ $slick-dot-color: black !default;
15
+ $slick-dot-color-active: $slick-dot-color !default;
16
+ $slick-prev-character: "\2190" !default;
17
+ $slick-next-character: "\2192" !default;
18
+ $slick-dot-character: "\2022" !default;
19
+ $slick-dot-size: 6px !default;
20
+ $slick-opacity-default: 0.75 !default;
21
+ $slick-opacity-on-hover: 1 !default;
22
+ $slick-opacity-not-active: 0.25 !default;
23
+
24
+ @function slick-image-url($url) {
25
+ @if function-exists(image-url) {
26
+ @return image-url($url);
27
+ }
28
+ @else {
29
+ @return url($slick-loader-path + $url);
30
+ }
31
+ }
32
+
33
+ @function slick-font-url($url) {
34
+ @if function-exists(font-url) {
35
+ @return font-url($url);
36
+ }
37
+ @else {
38
+ @return url($slick-font-path + $url);
39
+ }
40
+ }
41
+
42
+ /* Slider */
43
+
44
+ .slick-list {
45
+ .slick-loading & {
46
+ background: #fff slick-image-url("ajax-loader.gif") center center no-repeat;
47
+ }
48
+ }
49
+
50
+ /* Icons */
51
+ @if $slick-font-family == "slick" {
52
+ @font-face {
53
+ font-family: "slick";
54
+ src: slick-font-url("slick.eot");
55
+ src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg");
56
+ font-weight: normal;
57
+ font-style: normal;
58
+ }
59
+ }
60
+
61
+ /* Arrows */
62
+
63
+ .slick-prev,
64
+ .slick-next {
65
+ position: absolute;
66
+ display: block;
67
+ height: 20px;
68
+ width: 20px;
69
+ line-height: 0px;
70
+ font-size: 0px;
71
+ cursor: pointer;
72
+ background: transparent;
73
+ color: transparent;
74
+ top: 50%;
75
+ -webkit-transform: translate(0, -50%);
76
+ -ms-transform: translate(0, -50%);
77
+ transform: translate(0, -50%);
78
+ padding: 0;
79
+ border: none;
80
+ outline: none;
81
+ &:hover, &:focus {
82
+ outline: none;
83
+ background: transparent;
84
+ color: transparent;
85
+ &:before {
86
+ opacity: $slick-opacity-on-hover;
87
+ }
88
+ }
89
+ &.slick-disabled:before {
90
+ opacity: $slick-opacity-not-active;
91
+ }
92
+ &:before {
93
+ font-family: $slick-font-family;
94
+ font-size: 20px;
95
+ line-height: 1;
96
+ color: $slick-arrow-color;
97
+ opacity: $slick-opacity-default;
98
+ -webkit-font-smoothing: antialiased;
99
+ -moz-osx-font-smoothing: grayscale;
100
+ }
101
+ }
102
+
103
+ .slick-prev {
104
+ left: -25px;
105
+ [dir="rtl"] & {
106
+ left: auto;
107
+ right: -25px;
108
+ }
109
+ &:before {
110
+ content: $slick-prev-character;
111
+ [dir="rtl"] & {
112
+ content: $slick-next-character;
113
+ }
114
+ }
115
+ }
116
+
117
+ .slick-next {
118
+ right: -25px;
119
+ [dir="rtl"] & {
120
+ left: -25px;
121
+ right: auto;
122
+ }
123
+ &:before {
124
+ content: $slick-next-character;
125
+ [dir="rtl"] & {
126
+ content: $slick-prev-character;
127
+ }
128
+ }
129
+ }
130
+
131
+ /* Dots */
132
+
133
+ .slick-dotted.slick-slider {
134
+ margin-bottom: 30px;
135
+ }
136
+
137
+ .slick-dots {
138
+ position: absolute;
139
+ bottom: -25px;
140
+ list-style: none;
141
+ display: block;
142
+ text-align: center;
143
+ padding: 0;
144
+ margin: 0;
145
+ width: 100%;
146
+ li {
147
+ position: relative;
148
+ display: inline-block;
149
+ height: 20px;
150
+ width: 20px;
151
+ margin: 0 5px;
152
+ padding: 0;
153
+ cursor: pointer;
154
+ button {
155
+ border: 0;
156
+ background: transparent;
157
+ display: block;
158
+ height: 20px;
159
+ width: 20px;
160
+ outline: none;
161
+ line-height: 0px;
162
+ font-size: 0px;
163
+ color: transparent;
164
+ padding: 5px;
165
+ cursor: pointer;
166
+ &:hover, &:focus {
167
+ outline: none;
168
+ &:before {
169
+ opacity: $slick-opacity-on-hover;
170
+ }
171
+ }
172
+ &:before {
173
+ position: absolute;
174
+ top: 0;
175
+ left: 0;
176
+ content: $slick-dot-character;
177
+ width: 20px;
178
+ height: 20px;
179
+ font-family: $slick-font-family;
180
+ font-size: $slick-dot-size;
181
+ line-height: 20px;
182
+ text-align: center;
183
+ color: $slick-dot-color;
184
+ opacity: $slick-opacity-not-active;
185
+ -webkit-font-smoothing: antialiased;
186
+ -moz-osx-font-smoothing: grayscale;
187
+ }
188
+ }
189
+ &.slick-active button:before {
190
+ color: $slick-dot-color-active;
191
+ opacity: $slick-opacity-default;
192
+ }
193
+ }
194
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.css ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Slider */
2
+ .slick-slider
3
+ {
4
+ position: relative;
5
+
6
+ display: block;
7
+ box-sizing: border-box;
8
+
9
+ -webkit-user-select: none;
10
+ -moz-user-select: none;
11
+ -ms-user-select: none;
12
+ user-select: none;
13
+
14
+ -webkit-touch-callout: none;
15
+ -khtml-user-select: none;
16
+ -ms-touch-action: pan-y;
17
+ touch-action: pan-y;
18
+ -webkit-tap-highlight-color: transparent;
19
+ }
20
+
21
+ .slick-list
22
+ {
23
+ position: relative;
24
+
25
+ display: block;
26
+ overflow: hidden;
27
+
28
+ margin: 0;
29
+ padding: 0;
30
+ }
31
+ .slick-list:focus
32
+ {
33
+ outline: none;
34
+ }
35
+ .slick-list.dragging
36
+ {
37
+ cursor: pointer;
38
+ cursor: hand;
39
+ }
40
+
41
+ .slick-slider .slick-track,
42
+ .slick-slider .slick-list
43
+ {
44
+ -webkit-transform: translate3d(0, 0, 0);
45
+ -moz-transform: translate3d(0, 0, 0);
46
+ -ms-transform: translate3d(0, 0, 0);
47
+ -o-transform: translate3d(0, 0, 0);
48
+ transform: translate3d(0, 0, 0);
49
+ }
50
+
51
+ .slick-track
52
+ {
53
+ position: relative;
54
+ top: 0;
55
+ left: 0;
56
+
57
+ display: block;
58
+ margin-left: auto;
59
+ margin-right: auto;
60
+ }
61
+ .slick-track:before,
62
+ .slick-track:after
63
+ {
64
+ display: table;
65
+
66
+ content: '';
67
+ }
68
+ .slick-track:after
69
+ {
70
+ clear: both;
71
+ }
72
+ .slick-loading .slick-track
73
+ {
74
+ visibility: hidden;
75
+ }
76
+
77
+ .slick-slide
78
+ {
79
+ display: none;
80
+ float: left;
81
+
82
+ height: 100%;
83
+ min-height: 1px;
84
+ }
85
+ [dir='rtl'] .slick-slide
86
+ {
87
+ float: right;
88
+ }
89
+ .slick-slide img
90
+ {
91
+ display: block;
92
+ }
93
+ .slick-slide.slick-loading img
94
+ {
95
+ display: none;
96
+ }
97
+ .slick-slide.dragging img
98
+ {
99
+ pointer-events: none;
100
+ }
101
+ .slick-initialized .slick-slide
102
+ {
103
+ display: block;
104
+ }
105
+ .slick-loading .slick-slide
106
+ {
107
+ visibility: hidden;
108
+ }
109
+ .slick-vertical .slick-slide
110
+ {
111
+ display: block;
112
+
113
+ height: auto;
114
+
115
+ border: 1px solid transparent;
116
+ }
117
+ .slick-arrow.slick-hidden {
118
+ display: none;
119
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.js ADDED
@@ -0,0 +1,3011 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ _ _ _ _
3
+ ___| (_) ___| | __ (_)___
4
+ / __| | |/ __| |/ / | / __|
5
+ \__ \ | | (__| < _ | \__ \
6
+ |___/_|_|\___|_|\_(_)/ |___/
7
+ |__/
8
+
9
+ Version: 1.8.0
10
+ Author: Ken Wheeler
11
+ Website: http://kenwheeler.github.io
12
+ Docs: http://kenwheeler.github.io/slick
13
+ Repo: http://github.com/kenwheeler/slick
14
+ Issues: http://github.com/kenwheeler/slick/issues
15
+
16
+ */
17
+ /* global window, document, define, jQuery, setInterval, clearInterval */
18
+ ;(function(factory) {
19
+ 'use strict';
20
+ if (typeof define === 'function' && define.amd) {
21
+ define(['jquery'], factory);
22
+ } else if (typeof exports !== 'undefined') {
23
+ module.exports = factory(require('jquery'));
24
+ } else {
25
+ factory(jQuery);
26
+ }
27
+
28
+ }(function($) {
29
+ 'use strict';
30
+ var Slick = window.Slick || {};
31
+
32
+ Slick = (function() {
33
+
34
+ var instanceUid = 0;
35
+
36
+ function Slick(element, settings) {
37
+
38
+ var _ = this, dataSettings;
39
+
40
+ _.defaults = {
41
+ accessibility: true,
42
+ adaptiveHeight: false,
43
+ appendArrows: $(element),
44
+ appendDots: $(element),
45
+ arrows: true,
46
+ asNavFor: null,
47
+ prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
48
+ nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
49
+ autoplay: false,
50
+ autoplaySpeed: 3000,
51
+ centerMode: false,
52
+ centerPadding: '50px',
53
+ cssEase: 'ease',
54
+ customPaging: function(slider, i) {
55
+ return $('<button type="button" />').text(i + 1);
56
+ },
57
+ dots: false,
58
+ dotsClass: 'slick-dots',
59
+ draggable: true,
60
+ easing: 'linear',
61
+ edgeFriction: 0.35,
62
+ fade: false,
63
+ focusOnSelect: false,
64
+ focusOnChange: false,
65
+ infinite: true,
66
+ initialSlide: 0,
67
+ lazyLoad: 'ondemand',
68
+ mobileFirst: false,
69
+ pauseOnHover: true,
70
+ pauseOnFocus: true,
71
+ pauseOnDotsHover: false,
72
+ respondTo: 'window',
73
+ responsive: null,
74
+ rows: 1,
75
+ rtl: false,
76
+ slide: '',
77
+ slidesPerRow: 1,
78
+ slidesToShow: 1,
79
+ slidesToScroll: 1,
80
+ speed: 500,
81
+ swipe: true,
82
+ swipeToSlide: false,
83
+ touchMove: true,
84
+ touchThreshold: 5,
85
+ useCSS: true,
86
+ useTransform: true,
87
+ variableWidth: false,
88
+ vertical: false,
89
+ verticalSwiping: false,
90
+ waitForAnimate: true,
91
+ zIndex: 1000
92
+ };
93
+
94
+ _.initials = {
95
+ animating: false,
96
+ dragging: false,
97
+ autoPlayTimer: null,
98
+ currentDirection: 0,
99
+ currentLeft: null,
100
+ currentSlide: 0,
101
+ direction: 1,
102
+ $dots: null,
103
+ listWidth: null,
104
+ listHeight: null,
105
+ loadIndex: 0,
106
+ $nextArrow: null,
107
+ $prevArrow: null,
108
+ scrolling: false,
109
+ slideCount: null,
110
+ slideWidth: null,
111
+ $slideTrack: null,
112
+ $slides: null,
113
+ sliding: false,
114
+ slideOffset: 0,
115
+ swipeLeft: null,
116
+ swiping: false,
117
+ $list: null,
118
+ touchObject: {},
119
+ transformsEnabled: false,
120
+ unslicked: false
121
+ };
122
+
123
+ $.extend(_, _.initials);
124
+
125
+ _.activeBreakpoint = null;
126
+ _.animType = null;
127
+ _.animProp = null;
128
+ _.breakpoints = [];
129
+ _.breakpointSettings = [];
130
+ _.cssTransitions = false;
131
+ _.focussed = false;
132
+ _.interrupted = false;
133
+ _.hidden = 'hidden';
134
+ _.paused = true;
135
+ _.positionProp = null;
136
+ _.respondTo = null;
137
+ _.rowCount = 1;
138
+ _.shouldClick = true;
139
+ _.$slider = $(element);
140
+ _.$slidesCache = null;
141
+ _.transformType = null;
142
+ _.transitionType = null;
143
+ _.visibilityChange = 'visibilitychange';
144
+ _.windowWidth = 0;
145
+ _.windowTimer = null;
146
+
147
+ dataSettings = $(element).data('slick') || {};
148
+
149
+ _.options = $.extend({}, _.defaults, settings, dataSettings);
150
+
151
+ _.currentSlide = _.options.initialSlide;
152
+
153
+ _.originalSettings = _.options;
154
+
155
+ if (typeof document.mozHidden !== 'undefined') {
156
+ _.hidden = 'mozHidden';
157
+ _.visibilityChange = 'mozvisibilitychange';
158
+ } else if (typeof document.webkitHidden !== 'undefined') {
159
+ _.hidden = 'webkitHidden';
160
+ _.visibilityChange = 'webkitvisibilitychange';
161
+ }
162
+
163
+ _.autoPlay = $.proxy(_.autoPlay, _);
164
+ _.autoPlayClear = $.proxy(_.autoPlayClear, _);
165
+ _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
166
+ _.changeSlide = $.proxy(_.changeSlide, _);
167
+ _.clickHandler = $.proxy(_.clickHandler, _);
168
+ _.selectHandler = $.proxy(_.selectHandler, _);
169
+ _.setPosition = $.proxy(_.setPosition, _);
170
+ _.swipeHandler = $.proxy(_.swipeHandler, _);
171
+ _.dragHandler = $.proxy(_.dragHandler, _);
172
+ _.keyHandler = $.proxy(_.keyHandler, _);
173
+
174
+ _.instanceUid = instanceUid++;
175
+
176
+ // A simple way to check for HTML strings
177
+ // Strict HTML recognition (must start with <)
178
+ // Extracted from jQuery v1.11 source
179
+ _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
180
+
181
+
182
+ _.registerBreakpoints();
183
+ _.init(true);
184
+
185
+ }
186
+
187
+ return Slick;
188
+
189
+ }());
190
+
191
+ Slick.prototype.activateADA = function() {
192
+ var _ = this;
193
+
194
+ _.$slideTrack.find('.slick-active').attr({
195
+ 'aria-hidden': 'false'
196
+ }).find('a, input, button, select').attr({
197
+ 'tabindex': '0'
198
+ });
199
+
200
+ };
201
+
202
+ Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
203
+
204
+ var _ = this;
205
+
206
+ if (typeof(index) === 'boolean') {
207
+ addBefore = index;
208
+ index = null;
209
+ } else if (index < 0 || (index >= _.slideCount)) {
210
+ return false;
211
+ }
212
+
213
+ _.unload();
214
+
215
+ if (typeof(index) === 'number') {
216
+ if (index === 0 && _.$slides.length === 0) {
217
+ $(markup).appendTo(_.$slideTrack);
218
+ } else if (addBefore) {
219
+ $(markup).insertBefore(_.$slides.eq(index));
220
+ } else {
221
+ $(markup).insertAfter(_.$slides.eq(index));
222
+ }
223
+ } else {
224
+ if (addBefore === true) {
225
+ $(markup).prependTo(_.$slideTrack);
226
+ } else {
227
+ $(markup).appendTo(_.$slideTrack);
228
+ }
229
+ }
230
+
231
+ _.$slides = _.$slideTrack.children(this.options.slide);
232
+
233
+ _.$slideTrack.children(this.options.slide).detach();
234
+
235
+ _.$slideTrack.append(_.$slides);
236
+
237
+ _.$slides.each(function(index, element) {
238
+ $(element).attr('data-slick-index', index);
239
+ });
240
+
241
+ _.$slidesCache = _.$slides;
242
+
243
+ _.reinit();
244
+
245
+ };
246
+
247
+ Slick.prototype.animateHeight = function() {
248
+ var _ = this;
249
+ if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
250
+ var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
251
+ _.$list.animate({
252
+ height: targetHeight
253
+ }, _.options.speed);
254
+ }
255
+ };
256
+
257
+ Slick.prototype.animateSlide = function(targetLeft, callback) {
258
+
259
+ var animProps = {},
260
+ _ = this;
261
+
262
+ _.animateHeight();
263
+
264
+ if (_.options.rtl === true && _.options.vertical === false) {
265
+ targetLeft = -targetLeft;
266
+ }
267
+ if (_.transformsEnabled === false) {
268
+ if (_.options.vertical === false) {
269
+ _.$slideTrack.animate({
270
+ left: targetLeft
271
+ }, _.options.speed, _.options.easing, callback);
272
+ } else {
273
+ _.$slideTrack.animate({
274
+ top: targetLeft
275
+ }, _.options.speed, _.options.easing, callback);
276
+ }
277
+
278
+ } else {
279
+
280
+ if (_.cssTransitions === false) {
281
+ if (_.options.rtl === true) {
282
+ _.currentLeft = -(_.currentLeft);
283
+ }
284
+ $({
285
+ animStart: _.currentLeft
286
+ }).animate({
287
+ animStart: targetLeft
288
+ }, {
289
+ duration: _.options.speed,
290
+ easing: _.options.easing,
291
+ step: function(now) {
292
+ now = Math.ceil(now);
293
+ if (_.options.vertical === false) {
294
+ animProps[_.animType] = 'translate(' +
295
+ now + 'px, 0px)';
296
+ _.$slideTrack.css(animProps);
297
+ } else {
298
+ animProps[_.animType] = 'translate(0px,' +
299
+ now + 'px)';
300
+ _.$slideTrack.css(animProps);
301
+ }
302
+ },
303
+ complete: function() {
304
+ if (callback) {
305
+ callback.call();
306
+ }
307
+ }
308
+ });
309
+
310
+ } else {
311
+
312
+ _.applyTransition();
313
+ targetLeft = Math.ceil(targetLeft);
314
+
315
+ if (_.options.vertical === false) {
316
+ animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
317
+ } else {
318
+ animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
319
+ }
320
+ _.$slideTrack.css(animProps);
321
+
322
+ if (callback) {
323
+ setTimeout(function() {
324
+
325
+ _.disableTransition();
326
+
327
+ callback.call();
328
+ }, _.options.speed);
329
+ }
330
+
331
+ }
332
+
333
+ }
334
+
335
+ };
336
+
337
+ Slick.prototype.getNavTarget = function() {
338
+
339
+ var _ = this,
340
+ asNavFor = _.options.asNavFor;
341
+
342
+ if ( asNavFor && asNavFor !== null ) {
343
+ asNavFor = $(asNavFor).not(_.$slider);
344
+ }
345
+
346
+ return asNavFor;
347
+
348
+ };
349
+
350
+ Slick.prototype.asNavFor = function(index) {
351
+
352
+ var _ = this,
353
+ asNavFor = _.getNavTarget();
354
+
355
+ if ( asNavFor !== null && typeof asNavFor === 'object' ) {
356
+ asNavFor.each(function() {
357
+ var target = $(this).slick('getSlick');
358
+ if(!target.unslicked) {
359
+ target.slideHandler(index, true);
360
+ }
361
+ });
362
+ }
363
+
364
+ };
365
+
366
+ Slick.prototype.applyTransition = function(slide) {
367
+
368
+ var _ = this,
369
+ transition = {};
370
+
371
+ if (_.options.fade === false) {
372
+ transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
373
+ } else {
374
+ transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
375
+ }
376
+
377
+ if (_.options.fade === false) {
378
+ _.$slideTrack.css(transition);
379
+ } else {
380
+ _.$slides.eq(slide).css(transition);
381
+ }
382
+
383
+ };
384
+
385
+ Slick.prototype.autoPlay = function() {
386
+
387
+ var _ = this;
388
+
389
+ _.autoPlayClear();
390
+
391
+ if ( _.slideCount > _.options.slidesToShow ) {
392
+ _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );
393
+ }
394
+
395
+ };
396
+
397
+ Slick.prototype.autoPlayClear = function() {
398
+
399
+ var _ = this;
400
+
401
+ if (_.autoPlayTimer) {
402
+ clearInterval(_.autoPlayTimer);
403
+ }
404
+
405
+ };
406
+
407
+ Slick.prototype.autoPlayIterator = function() {
408
+
409
+ var _ = this,
410
+ slideTo = _.currentSlide + _.options.slidesToScroll;
411
+
412
+ if ( !_.paused && !_.interrupted && !_.focussed ) {
413
+
414
+ if ( _.options.infinite === false ) {
415
+
416
+ if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {
417
+ _.direction = 0;
418
+ }
419
+
420
+ else if ( _.direction === 0 ) {
421
+
422
+ slideTo = _.currentSlide - _.options.slidesToScroll;
423
+
424
+ if ( _.currentSlide - 1 === 0 ) {
425
+ _.direction = 1;
426
+ }
427
+
428
+ }
429
+
430
+ }
431
+
432
+ _.slideHandler( slideTo );
433
+
434
+ }
435
+
436
+ };
437
+
438
+ Slick.prototype.buildArrows = function() {
439
+
440
+ var _ = this;
441
+
442
+ if (_.options.arrows === true ) {
443
+
444
+ _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
445
+ _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
446
+
447
+ if( _.slideCount > _.options.slidesToShow ) {
448
+
449
+ _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
450
+ _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
451
+
452
+ if (_.htmlExpr.test(_.options.prevArrow)) {
453
+ _.$prevArrow.prependTo(_.options.appendArrows);
454
+ }
455
+
456
+ if (_.htmlExpr.test(_.options.nextArrow)) {
457
+ _.$nextArrow.appendTo(_.options.appendArrows);
458
+ }
459
+
460
+ if (_.options.infinite !== true) {
461
+ _.$prevArrow
462
+ .addClass('slick-disabled')
463
+ .attr('aria-disabled', 'true');
464
+ }
465
+
466
+ } else {
467
+
468
+ _.$prevArrow.add( _.$nextArrow )
469
+
470
+ .addClass('slick-hidden')
471
+ .attr({
472
+ 'aria-disabled': 'true',
473
+ 'tabindex': '-1'
474
+ });
475
+
476
+ }
477
+
478
+ }
479
+
480
+ };
481
+
482
+ Slick.prototype.buildDots = function() {
483
+
484
+ var _ = this,
485
+ i, dot;
486
+
487
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
488
+
489
+ _.$slider.addClass('slick-dotted');
490
+
491
+ dot = $('<ul />').addClass(_.options.dotsClass);
492
+
493
+ for (i = 0; i <= _.getDotCount(); i += 1) {
494
+ dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
495
+ }
496
+
497
+ _.$dots = dot.appendTo(_.options.appendDots);
498
+
499
+ _.$dots.find('li').first().addClass('slick-active');
500
+
501
+ }
502
+
503
+ };
504
+
505
+ Slick.prototype.buildOut = function() {
506
+
507
+ var _ = this;
508
+
509
+ _.$slides =
510
+ _.$slider
511
+ .children( _.options.slide + ':not(.slick-cloned)')
512
+ .addClass('slick-slide');
513
+
514
+ _.slideCount = _.$slides.length;
515
+
516
+ _.$slides.each(function(index, element) {
517
+ $(element)
518
+ .attr('data-slick-index', index)
519
+ .data('originalStyling', $(element).attr('style') || '');
520
+ });
521
+
522
+ _.$slider.addClass('slick-slider');
523
+
524
+ _.$slideTrack = (_.slideCount === 0) ?
525
+ $('<div class="slick-track"/>').appendTo(_.$slider) :
526
+ _.$slides.wrapAll('<div class="slick-track"/>').parent();
527
+
528
+ _.$list = _.$slideTrack.wrap(
529
+ '<div class="slick-list"/>').parent();
530
+ _.$slideTrack.css('opacity', 0);
531
+
532
+ if (_.options.centerMode === true || _.options.swipeToSlide === true) {
533
+ _.options.slidesToScroll = 1;
534
+ }
535
+
536
+ $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
537
+
538
+ _.setupInfinite();
539
+
540
+ _.buildArrows();
541
+
542
+ _.buildDots();
543
+
544
+ _.updateDots();
545
+
546
+
547
+ _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
548
+
549
+ if (_.options.draggable === true) {
550
+ _.$list.addClass('draggable');
551
+ }
552
+
553
+ };
554
+
555
+ Slick.prototype.buildRows = function() {
556
+
557
+ var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;
558
+
559
+ newSlides = document.createDocumentFragment();
560
+ originalSlides = _.$slider.children();
561
+
562
+ if(_.options.rows > 0) {
563
+
564
+ slidesPerSection = _.options.slidesPerRow * _.options.rows;
565
+ numOfSlides = Math.ceil(
566
+ originalSlides.length / slidesPerSection
567
+ );
568
+
569
+ for(a = 0; a < numOfSlides; a++){
570
+ var slide = document.createElement('div');
571
+ for(b = 0; b < _.options.rows; b++) {
572
+ var row = document.createElement('div');
573
+ for(c = 0; c < _.options.slidesPerRow; c++) {
574
+ var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
575
+ if (originalSlides.get(target)) {
576
+ row.appendChild(originalSlides.get(target));
577
+ }
578
+ }
579
+ slide.appendChild(row);
580
+ }
581
+ newSlides.appendChild(slide);
582
+ }
583
+
584
+ _.$slider.empty().append(newSlides);
585
+ _.$slider.children().children().children()
586
+ .css({
587
+ 'width':(100 / _.options.slidesPerRow) + '%',
588
+ 'display': 'inline-block'
589
+ });
590
+
591
+ }
592
+
593
+ };
594
+
595
+ Slick.prototype.checkResponsive = function(initial, forceUpdate) {
596
+
597
+ var _ = this,
598
+ breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
599
+ var sliderWidth = _.$slider.width();
600
+ var windowWidth = window.innerWidth || $(window).width();
601
+
602
+ if (_.respondTo === 'window') {
603
+ respondToWidth = windowWidth;
604
+ } else if (_.respondTo === 'slider') {
605
+ respondToWidth = sliderWidth;
606
+ } else if (_.respondTo === 'min') {
607
+ respondToWidth = Math.min(windowWidth, sliderWidth);
608
+ }
609
+
610
+ if ( _.options.responsive &&
611
+ _.options.responsive.length &&
612
+ _.options.responsive !== null) {
613
+
614
+ targetBreakpoint = null;
615
+
616
+ for (breakpoint in _.breakpoints) {
617
+ if (_.breakpoints.hasOwnProperty(breakpoint)) {
618
+ if (_.originalSettings.mobileFirst === false) {
619
+ if (respondToWidth < _.breakpoints[breakpoint]) {
620
+ targetBreakpoint = _.breakpoints[breakpoint];
621
+ }
622
+ } else {
623
+ if (respondToWidth > _.breakpoints[breakpoint]) {
624
+ targetBreakpoint = _.breakpoints[breakpoint];
625
+ }
626
+ }
627
+ }
628
+ }
629
+
630
+ if (targetBreakpoint !== null) {
631
+ if (_.activeBreakpoint !== null) {
632
+ if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
633
+ _.activeBreakpoint =
634
+ targetBreakpoint;
635
+ if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
636
+ _.unslick(targetBreakpoint);
637
+ } else {
638
+ _.options = $.extend({}, _.originalSettings,
639
+ _.breakpointSettings[
640
+ targetBreakpoint]);
641
+ if (initial === true) {
642
+ _.currentSlide = _.options.initialSlide;
643
+ }
644
+ _.refresh(initial);
645
+ }
646
+ triggerBreakpoint = targetBreakpoint;
647
+ }
648
+ } else {
649
+ _.activeBreakpoint = targetBreakpoint;
650
+ if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
651
+ _.unslick(targetBreakpoint);
652
+ } else {
653
+ _.options = $.extend({}, _.originalSettings,
654
+ _.breakpointSettings[
655
+ targetBreakpoint]);
656
+ if (initial === true) {
657
+ _.currentSlide = _.options.initialSlide;
658
+ }
659
+ _.refresh(initial);
660
+ }
661
+ triggerBreakpoint = targetBreakpoint;
662
+ }
663
+ } else {
664
+ if (_.activeBreakpoint !== null) {
665
+ _.activeBreakpoint = null;
666
+ _.options = _.originalSettings;
667
+ if (initial === true) {
668
+ _.currentSlide = _.options.initialSlide;
669
+ }
670
+ _.refresh(initial);
671
+ triggerBreakpoint = targetBreakpoint;
672
+ }
673
+ }
674
+
675
+ // only trigger breakpoints during an actual break. not on initialize.
676
+ if( !initial && triggerBreakpoint !== false ) {
677
+ _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
678
+ }
679
+ }
680
+
681
+ };
682
+
683
+ Slick.prototype.changeSlide = function(event, dontAnimate) {
684
+
685
+ var _ = this,
686
+ $target = $(event.currentTarget),
687
+ indexOffset, slideOffset, unevenOffset;
688
+
689
+ // If target is a link, prevent default action.
690
+ if($target.is('a')) {
691
+ event.preventDefault();
692
+ }
693
+
694
+ // If target is not the <li> element (ie: a child), find the <li>.
695
+ if(!$target.is('li')) {
696
+ $target = $target.closest('li');
697
+ }
698
+
699
+ unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
700
+ indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
701
+
702
+ switch (event.data.message) {
703
+
704
+ case 'previous':
705
+ slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
706
+ if (_.slideCount > _.options.slidesToShow) {
707
+ _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
708
+ }
709
+ break;
710
+
711
+ case 'next':
712
+ slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
713
+ if (_.slideCount > _.options.slidesToShow) {
714
+ _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
715
+ }
716
+ break;
717
+
718
+ case 'index':
719
+ var index = event.data.index === 0 ? 0 :
720
+ event.data.index || $target.index() * _.options.slidesToScroll;
721
+
722
+ _.slideHandler(_.checkNavigable(index), false, dontAnimate);
723
+ $target.children().trigger('focus');
724
+ break;
725
+
726
+ default:
727
+ return;
728
+ }
729
+
730
+ };
731
+
732
+ Slick.prototype.checkNavigable = function(index) {
733
+
734
+ var _ = this,
735
+ navigables, prevNavigable;
736
+
737
+ navigables = _.getNavigableIndexes();
738
+ prevNavigable = 0;
739
+ if (index > navigables[navigables.length - 1]) {
740
+ index = navigables[navigables.length - 1];
741
+ } else {
742
+ for (var n in navigables) {
743
+ if (index < navigables[n]) {
744
+ index = prevNavigable;
745
+ break;
746
+ }
747
+ prevNavigable = navigables[n];
748
+ }
749
+ }
750
+
751
+ return index;
752
+ };
753
+
754
+ Slick.prototype.cleanUpEvents = function() {
755
+
756
+ var _ = this;
757
+
758
+ if (_.options.dots && _.$dots !== null) {
759
+
760
+ $('li', _.$dots)
761
+ .off('click.slick', _.changeSlide)
762
+ .off('mouseenter.slick', $.proxy(_.interrupt, _, true))
763
+ .off('mouseleave.slick', $.proxy(_.interrupt, _, false));
764
+
765
+ if (_.options.accessibility === true) {
766
+ _.$dots.off('keydown.slick', _.keyHandler);
767
+ }
768
+ }
769
+
770
+ _.$slider.off('focus.slick blur.slick');
771
+
772
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
773
+ _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
774
+ _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
775
+
776
+ if (_.options.accessibility === true) {
777
+ _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);
778
+ _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);
779
+ }
780
+ }
781
+
782
+ _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
783
+ _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
784
+ _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
785
+ _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
786
+
787
+ _.$list.off('click.slick', _.clickHandler);
788
+
789
+ $(document).off(_.visibilityChange, _.visibility);
790
+
791
+ _.cleanUpSlideEvents();
792
+
793
+ if (_.options.accessibility === true) {
794
+ _.$list.off('keydown.slick', _.keyHandler);
795
+ }
796
+
797
+ if (_.options.focusOnSelect === true) {
798
+ $(_.$slideTrack).children().off('click.slick', _.selectHandler);
799
+ }
800
+
801
+ $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
802
+
803
+ $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
804
+
805
+ $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
806
+
807
+ $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
808
+
809
+ };
810
+
811
+ Slick.prototype.cleanUpSlideEvents = function() {
812
+
813
+ var _ = this;
814
+
815
+ _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
816
+ _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
817
+
818
+ };
819
+
820
+ Slick.prototype.cleanUpRows = function() {
821
+
822
+ var _ = this, originalSlides;
823
+
824
+ if(_.options.rows > 0) {
825
+ originalSlides = _.$slides.children().children();
826
+ originalSlides.removeAttr('style');
827
+ _.$slider.empty().append(originalSlides);
828
+ }
829
+
830
+ };
831
+
832
+ Slick.prototype.clickHandler = function(event) {
833
+
834
+ var _ = this;
835
+
836
+ if (_.shouldClick === false) {
837
+ event.stopImmediatePropagation();
838
+ event.stopPropagation();
839
+ event.preventDefault();
840
+ }
841
+
842
+ };
843
+
844
+ Slick.prototype.destroy = function(refresh) {
845
+
846
+ var _ = this;
847
+
848
+ _.autoPlayClear();
849
+
850
+ _.touchObject = {};
851
+
852
+ _.cleanUpEvents();
853
+
854
+ $('.slick-cloned', _.$slider).detach();
855
+
856
+ if (_.$dots) {
857
+ _.$dots.remove();
858
+ }
859
+
860
+ if ( _.$prevArrow && _.$prevArrow.length ) {
861
+
862
+ _.$prevArrow
863
+ .removeClass('slick-disabled slick-arrow slick-hidden')
864
+ .removeAttr('aria-hidden aria-disabled tabindex')
865
+ .css('display','');
866
+
867
+ if ( _.htmlExpr.test( _.options.prevArrow )) {
868
+ _.$prevArrow.remove();
869
+ }
870
+ }
871
+
872
+ if ( _.$nextArrow && _.$nextArrow.length ) {
873
+
874
+ _.$nextArrow
875
+ .removeClass('slick-disabled slick-arrow slick-hidden')
876
+ .removeAttr('aria-hidden aria-disabled tabindex')
877
+ .css('display','');
878
+
879
+ if ( _.htmlExpr.test( _.options.nextArrow )) {
880
+ _.$nextArrow.remove();
881
+ }
882
+ }
883
+
884
+
885
+ if (_.$slides) {
886
+
887
+ _.$slides
888
+ .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
889
+ .removeAttr('aria-hidden')
890
+ .removeAttr('data-slick-index')
891
+ .each(function(){
892
+ $(this).attr('style', $(this).data('originalStyling'));
893
+ });
894
+
895
+ _.$slideTrack.children(this.options.slide).detach();
896
+
897
+ _.$slideTrack.detach();
898
+
899
+ _.$list.detach();
900
+
901
+ _.$slider.append(_.$slides);
902
+ }
903
+
904
+ _.cleanUpRows();
905
+
906
+ _.$slider.removeClass('slick-slider');
907
+ _.$slider.removeClass('slick-initialized');
908
+ _.$slider.removeClass('slick-dotted');
909
+
910
+ _.unslicked = true;
911
+
912
+ if(!refresh) {
913
+ _.$slider.trigger('destroy', [_]);
914
+ }
915
+
916
+ };
917
+
918
+ Slick.prototype.disableTransition = function(slide) {
919
+
920
+ var _ = this,
921
+ transition = {};
922
+
923
+ transition[_.transitionType] = '';
924
+
925
+ if (_.options.fade === false) {
926
+ _.$slideTrack.css(transition);
927
+ } else {
928
+ _.$slides.eq(slide).css(transition);
929
+ }
930
+
931
+ };
932
+
933
+ Slick.prototype.fadeSlide = function(slideIndex, callback) {
934
+
935
+ var _ = this;
936
+
937
+ if (_.cssTransitions === false) {
938
+
939
+ _.$slides.eq(slideIndex).css({
940
+ zIndex: _.options.zIndex
941
+ });
942
+
943
+ _.$slides.eq(slideIndex).animate({
944
+ opacity: 1
945
+ }, _.options.speed, _.options.easing, callback);
946
+
947
+ } else {
948
+
949
+ _.applyTransition(slideIndex);
950
+
951
+ _.$slides.eq(slideIndex).css({
952
+ opacity: 1,
953
+ zIndex: _.options.zIndex
954
+ });
955
+
956
+ if (callback) {
957
+ setTimeout(function() {
958
+
959
+ _.disableTransition(slideIndex);
960
+
961
+ callback.call();
962
+ }, _.options.speed);
963
+ }
964
+
965
+ }
966
+
967
+ };
968
+
969
+ Slick.prototype.fadeSlideOut = function(slideIndex) {
970
+
971
+ var _ = this;
972
+
973
+ if (_.cssTransitions === false) {
974
+
975
+ _.$slides.eq(slideIndex).animate({
976
+ opacity: 0,
977
+ zIndex: _.options.zIndex - 2
978
+ }, _.options.speed, _.options.easing);
979
+
980
+ } else {
981
+
982
+ _.applyTransition(slideIndex);
983
+
984
+ _.$slides.eq(slideIndex).css({
985
+ opacity: 0,
986
+ zIndex: _.options.zIndex - 2
987
+ });
988
+
989
+ }
990
+
991
+ };
992
+
993
+ Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
994
+
995
+ var _ = this;
996
+
997
+ if (filter !== null) {
998
+
999
+ _.$slidesCache = _.$slides;
1000
+
1001
+ _.unload();
1002
+
1003
+ _.$slideTrack.children(this.options.slide).detach();
1004
+
1005
+ _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
1006
+
1007
+ _.reinit();
1008
+
1009
+ }
1010
+
1011
+ };
1012
+
1013
+ Slick.prototype.focusHandler = function() {
1014
+
1015
+ var _ = this;
1016
+
1017
+ _.$slider
1018
+ .off('focus.slick blur.slick')
1019
+ .on('focus.slick blur.slick', '*', function(event) {
1020
+
1021
+ event.stopImmediatePropagation();
1022
+ var $sf = $(this);
1023
+
1024
+ setTimeout(function() {
1025
+
1026
+ if( _.options.pauseOnFocus ) {
1027
+ _.focussed = $sf.is(':focus');
1028
+ _.autoPlay();
1029
+ }
1030
+
1031
+ }, 0);
1032
+
1033
+ });
1034
+ };
1035
+
1036
+ Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
1037
+
1038
+ var _ = this;
1039
+ return _.currentSlide;
1040
+
1041
+ };
1042
+
1043
+ Slick.prototype.getDotCount = function() {
1044
+
1045
+ var _ = this;
1046
+
1047
+ var breakPoint = 0;
1048
+ var counter = 0;
1049
+ var pagerQty = 0;
1050
+
1051
+ if (_.options.infinite === true) {
1052
+ if (_.slideCount <= _.options.slidesToShow) {
1053
+ ++pagerQty;
1054
+ } else {
1055
+ while (breakPoint < _.slideCount) {
1056
+ ++pagerQty;
1057
+ breakPoint = counter + _.options.slidesToScroll;
1058
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1059
+ }
1060
+ }
1061
+ } else if (_.options.centerMode === true) {
1062
+ pagerQty = _.slideCount;
1063
+ } else if(!_.options.asNavFor) {
1064
+ pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
1065
+ }else {
1066
+ while (breakPoint < _.slideCount) {
1067
+ ++pagerQty;
1068
+ breakPoint = counter + _.options.slidesToScroll;
1069
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1070
+ }
1071
+ }
1072
+
1073
+ return pagerQty - 1;
1074
+
1075
+ };
1076
+
1077
+ Slick.prototype.getLeft = function(slideIndex) {
1078
+
1079
+ var _ = this,
1080
+ targetLeft,
1081
+ verticalHeight,
1082
+ verticalOffset = 0,
1083
+ targetSlide,
1084
+ coef;
1085
+
1086
+ _.slideOffset = 0;
1087
+ verticalHeight = _.$slides.first().outerHeight(true);
1088
+
1089
+ if (_.options.infinite === true) {
1090
+ if (_.slideCount > _.options.slidesToShow) {
1091
+ _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
1092
+ coef = -1
1093
+
1094
+ if (_.options.vertical === true && _.options.centerMode === true) {
1095
+ if (_.options.slidesToShow === 2) {
1096
+ coef = -1.5;
1097
+ } else if (_.options.slidesToShow === 1) {
1098
+ coef = -2
1099
+ }
1100
+ }
1101
+ verticalOffset = (verticalHeight * _.options.slidesToShow) * coef;
1102
+ }
1103
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
1104
+ if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
1105
+ if (slideIndex > _.slideCount) {
1106
+ _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
1107
+ verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
1108
+ } else {
1109
+ _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
1110
+ verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
1111
+ }
1112
+ }
1113
+ }
1114
+ } else {
1115
+ if (slideIndex + _.options.slidesToShow > _.slideCount) {
1116
+ _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
1117
+ verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
1118
+ }
1119
+ }
1120
+
1121
+ if (_.slideCount <= _.options.slidesToShow) {
1122
+ _.slideOffset = 0;
1123
+ verticalOffset = 0;
1124
+ }
1125
+
1126
+ if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {
1127
+ _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2);
1128
+ } else if (_.options.centerMode === true && _.options.infinite === true) {
1129
+ _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
1130
+ } else if (_.options.centerMode === true) {
1131
+ _.slideOffset = 0;
1132
+ _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
1133
+ }
1134
+
1135
+ if (_.options.vertical === false) {
1136
+ targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
1137
+ } else {
1138
+ targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
1139
+ }
1140
+
1141
+ if (_.options.variableWidth === true) {
1142
+
1143
+ if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1144
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1145
+ } else {
1146
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
1147
+ }
1148
+
1149
+ if (_.options.rtl === true) {
1150
+ if (targetSlide[0]) {
1151
+ targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1152
+ } else {
1153
+ targetLeft = 0;
1154
+ }
1155
+ } else {
1156
+ targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1157
+ }
1158
+
1159
+ if (_.options.centerMode === true) {
1160
+ if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1161
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1162
+ } else {
1163
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
1164
+ }
1165
+
1166
+ if (_.options.rtl === true) {
1167
+ if (targetSlide[0]) {
1168
+ targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1169
+ } else {
1170
+ targetLeft = 0;
1171
+ }
1172
+ } else {
1173
+ targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1174
+ }
1175
+
1176
+ targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
1177
+ }
1178
+ }
1179
+
1180
+ return targetLeft;
1181
+
1182
+ };
1183
+
1184
+ Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
1185
+
1186
+ var _ = this;
1187
+
1188
+ return _.options[option];
1189
+
1190
+ };
1191
+
1192
+ Slick.prototype.getNavigableIndexes = function() {
1193
+
1194
+ var _ = this,
1195
+ breakPoint = 0,
1196
+ counter = 0,
1197
+ indexes = [],
1198
+ max;
1199
+
1200
+ if (_.options.infinite === false) {
1201
+ max = _.slideCount;
1202
+ } else {
1203
+ breakPoint = _.options.slidesToScroll * -1;
1204
+ counter = _.options.slidesToScroll * -1;
1205
+ max = _.slideCount * 2;
1206
+ }
1207
+
1208
+ while (breakPoint < max) {
1209
+ indexes.push(breakPoint);
1210
+ breakPoint = counter + _.options.slidesToScroll;
1211
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1212
+ }
1213
+
1214
+ return indexes;
1215
+
1216
+ };
1217
+
1218
+ Slick.prototype.getSlick = function() {
1219
+
1220
+ return this;
1221
+
1222
+ };
1223
+
1224
+ Slick.prototype.getSlideCount = function() {
1225
+
1226
+ var _ = this,
1227
+ slidesTraversed, swipedSlide, centerOffset;
1228
+
1229
+ centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;
1230
+
1231
+ if (_.options.swipeToSlide === true) {
1232
+ _.$slideTrack.find('.slick-slide').each(function(index, slide) {
1233
+ if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {
1234
+ swipedSlide = slide;
1235
+ return false;
1236
+ }
1237
+ });
1238
+
1239
+ slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
1240
+
1241
+ return slidesTraversed;
1242
+
1243
+ } else {
1244
+ return _.options.slidesToScroll;
1245
+ }
1246
+
1247
+ };
1248
+
1249
+ Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
1250
+
1251
+ var _ = this;
1252
+
1253
+ _.changeSlide({
1254
+ data: {
1255
+ message: 'index',
1256
+ index: parseInt(slide)
1257
+ }
1258
+ }, dontAnimate);
1259
+
1260
+ };
1261
+
1262
+ Slick.prototype.init = function(creation) {
1263
+
1264
+ var _ = this;
1265
+
1266
+ if (!$(_.$slider).hasClass('slick-initialized')) {
1267
+
1268
+ $(_.$slider).addClass('slick-initialized');
1269
+
1270
+ _.buildRows();
1271
+ _.buildOut();
1272
+ _.setProps();
1273
+ _.startLoad();
1274
+ _.loadSlider();
1275
+ _.initializeEvents();
1276
+ _.updateArrows();
1277
+ _.updateDots();
1278
+ _.checkResponsive(true);
1279
+ _.focusHandler();
1280
+
1281
+ }
1282
+
1283
+ if (creation) {
1284
+ _.$slider.trigger('init', [_]);
1285
+ }
1286
+
1287
+ if (_.options.accessibility === true) {
1288
+ _.initADA();
1289
+ }
1290
+
1291
+ if ( _.options.autoplay ) {
1292
+
1293
+ _.paused = false;
1294
+ _.autoPlay();
1295
+
1296
+ }
1297
+
1298
+ };
1299
+
1300
+ Slick.prototype.initADA = function() {
1301
+ var _ = this,
1302
+ numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),
1303
+ tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
1304
+ return (val >= 0) && (val < _.slideCount);
1305
+ });
1306
+
1307
+ _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
1308
+ 'aria-hidden': 'true',
1309
+ 'tabindex': '-1'
1310
+ }).find('a, input, button, select').attr({
1311
+ 'tabindex': '-1'
1312
+ });
1313
+
1314
+ if (_.$dots !== null) {
1315
+ _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
1316
+ var slideControlIndex = tabControlIndexes.indexOf(i);
1317
+
1318
+ $(this).attr({
1319
+ 'role': 'tabpanel',
1320
+ 'id': 'slick-slide' + _.instanceUid + i,
1321
+ 'tabindex': -1
1322
+ });
1323
+
1324
+ if (slideControlIndex !== -1) {
1325
+ var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex
1326
+ if ($('#' + ariaButtonControl).length) {
1327
+ $(this).attr({
1328
+ 'aria-describedby': ariaButtonControl
1329
+ });
1330
+ }
1331
+ }
1332
+ });
1333
+
1334
+ _.$dots.attr('role', 'tablist').find('li').each(function(i) {
1335
+ var mappedSlideIndex = tabControlIndexes[i];
1336
+
1337
+ $(this).attr({
1338
+ 'role': 'presentation'
1339
+ });
1340
+
1341
+ $(this).find('button').first().attr({
1342
+ 'role': 'tab',
1343
+ 'id': 'slick-slide-control' + _.instanceUid + i,
1344
+ 'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,
1345
+ 'aria-label': (i + 1) + ' of ' + numDotGroups,
1346
+ 'aria-selected': null,
1347
+ 'tabindex': '-1'
1348
+ });
1349
+
1350
+ }).eq(_.currentSlide).find('button').attr({
1351
+ 'aria-selected': 'true',
1352
+ 'tabindex': '0'
1353
+ }).end();
1354
+ }
1355
+
1356
+ for (var i=_.currentSlide, max=i+_.options.slidesToShow; i < max; i++) {
1357
+ if (_.options.focusOnChange) {
1358
+ _.$slides.eq(i).attr({'tabindex': '0'});
1359
+ } else {
1360
+ _.$slides.eq(i).removeAttr('tabindex');
1361
+ }
1362
+ }
1363
+
1364
+ _.activateADA();
1365
+
1366
+ };
1367
+
1368
+ Slick.prototype.initArrowEvents = function() {
1369
+
1370
+ var _ = this;
1371
+
1372
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1373
+ _.$prevArrow
1374
+ .off('click.slick')
1375
+ .on('click.slick', {
1376
+ message: 'previous'
1377
+ }, _.changeSlide);
1378
+ _.$nextArrow
1379
+ .off('click.slick')
1380
+ .on('click.slick', {
1381
+ message: 'next'
1382
+ }, _.changeSlide);
1383
+
1384
+ if (_.options.accessibility === true) {
1385
+ _.$prevArrow.on('keydown.slick', _.keyHandler);
1386
+ _.$nextArrow.on('keydown.slick', _.keyHandler);
1387
+ }
1388
+ }
1389
+
1390
+ };
1391
+
1392
+ Slick.prototype.initDotEvents = function() {
1393
+
1394
+ var _ = this;
1395
+
1396
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1397
+ $('li', _.$dots).on('click.slick', {
1398
+ message: 'index'
1399
+ }, _.changeSlide);
1400
+
1401
+ if (_.options.accessibility === true) {
1402
+ _.$dots.on('keydown.slick', _.keyHandler);
1403
+ }
1404
+ }
1405
+
1406
+ if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {
1407
+
1408
+ $('li', _.$dots)
1409
+ .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
1410
+ .on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1411
+
1412
+ }
1413
+
1414
+ };
1415
+
1416
+ Slick.prototype.initSlideEvents = function() {
1417
+
1418
+ var _ = this;
1419
+
1420
+ if ( _.options.pauseOnHover ) {
1421
+
1422
+ _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
1423
+ _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1424
+
1425
+ }
1426
+
1427
+ };
1428
+
1429
+ Slick.prototype.initializeEvents = function() {
1430
+
1431
+ var _ = this;
1432
+
1433
+ _.initArrowEvents();
1434
+
1435
+ _.initDotEvents();
1436
+ _.initSlideEvents();
1437
+
1438
+ _.$list.on('touchstart.slick mousedown.slick', {
1439
+ action: 'start'
1440
+ }, _.swipeHandler);
1441
+ _.$list.on('touchmove.slick mousemove.slick', {
1442
+ action: 'move'
1443
+ }, _.swipeHandler);
1444
+ _.$list.on('touchend.slick mouseup.slick', {
1445
+ action: 'end'
1446
+ }, _.swipeHandler);
1447
+ _.$list.on('touchcancel.slick mouseleave.slick', {
1448
+ action: 'end'
1449
+ }, _.swipeHandler);
1450
+
1451
+ _.$list.on('click.slick', _.clickHandler);
1452
+
1453
+ $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
1454
+
1455
+ if (_.options.accessibility === true) {
1456
+ _.$list.on('keydown.slick', _.keyHandler);
1457
+ }
1458
+
1459
+ if (_.options.focusOnSelect === true) {
1460
+ $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1461
+ }
1462
+
1463
+ $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
1464
+
1465
+ $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
1466
+
1467
+ $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
1468
+
1469
+ $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
1470
+ $(_.setPosition);
1471
+
1472
+ };
1473
+
1474
+ Slick.prototype.initUI = function() {
1475
+
1476
+ var _ = this;
1477
+
1478
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1479
+
1480
+ _.$prevArrow.show();
1481
+ _.$nextArrow.show();
1482
+
1483
+ }
1484
+
1485
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1486
+
1487
+ _.$dots.show();
1488
+
1489
+ }
1490
+
1491
+ };
1492
+
1493
+ Slick.prototype.keyHandler = function(event) {
1494
+
1495
+ var _ = this;
1496
+ //Dont slide if the cursor is inside the form fields and arrow keys are pressed
1497
+ if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
1498
+ if (event.keyCode === 37 && _.options.accessibility === true) {
1499
+ _.changeSlide({
1500
+ data: {
1501
+ message: _.options.rtl === true ? 'next' : 'previous'
1502
+ }
1503
+ });
1504
+ } else if (event.keyCode === 39 && _.options.accessibility === true) {
1505
+ _.changeSlide({
1506
+ data: {
1507
+ message: _.options.rtl === true ? 'previous' : 'next'
1508
+ }
1509
+ });
1510
+ }
1511
+ }
1512
+
1513
+ };
1514
+
1515
+ Slick.prototype.lazyLoad = function() {
1516
+
1517
+ var _ = this,
1518
+ loadRange, cloneRange, rangeStart, rangeEnd;
1519
+
1520
+ function loadImages(imagesScope) {
1521
+
1522
+ $('img[data-lazy]', imagesScope).each(function() {
1523
+
1524
+ var image = $(this),
1525
+ imageSource = $(this).attr('data-lazy'),
1526
+ imageSrcSet = $(this).attr('data-srcset'),
1527
+ imageSizes = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),
1528
+ imageToLoad = document.createElement('img');
1529
+
1530
+ imageToLoad.onload = function() {
1531
+
1532
+ image
1533
+ .animate({ opacity: 0 }, 100, function() {
1534
+
1535
+ if (imageSrcSet) {
1536
+ image
1537
+ .attr('srcset', imageSrcSet );
1538
+
1539
+ if (imageSizes) {
1540
+ image
1541
+ .attr('sizes', imageSizes );
1542
+ }
1543
+ }
1544
+
1545
+ image
1546
+ .attr('src', imageSource)
1547
+ .animate({ opacity: 1 }, 200, function() {
1548
+ image
1549
+ .removeAttr('data-lazy data-srcset data-sizes')
1550
+ .removeClass('slick-loading');
1551
+ });
1552
+ _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
1553
+ });
1554
+
1555
+ };
1556
+
1557
+ imageToLoad.onerror = function() {
1558
+
1559
+ image
1560
+ .removeAttr( 'data-lazy' )
1561
+ .removeClass( 'slick-loading' )
1562
+ .addClass( 'slick-lazyload-error' );
1563
+
1564
+ _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
1565
+
1566
+ };
1567
+
1568
+ imageToLoad.src = imageSource;
1569
+
1570
+ });
1571
+
1572
+ }
1573
+
1574
+ if (_.options.centerMode === true) {
1575
+ if (_.options.infinite === true) {
1576
+ rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
1577
+ rangeEnd = rangeStart + _.options.slidesToShow + 2;
1578
+ } else {
1579
+ rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
1580
+ rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
1581
+ }
1582
+ } else {
1583
+ rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
1584
+ rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
1585
+ if (_.options.fade === true) {
1586
+ if (rangeStart > 0) rangeStart--;
1587
+ if (rangeEnd <= _.slideCount) rangeEnd++;
1588
+ }
1589
+ }
1590
+
1591
+ loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
1592
+
1593
+ if (_.options.lazyLoad === 'anticipated') {
1594
+ var prevSlide = rangeStart - 1,
1595
+ nextSlide = rangeEnd,
1596
+ $slides = _.$slider.find('.slick-slide');
1597
+
1598
+ for (var i = 0; i < _.options.slidesToScroll; i++) {
1599
+ if (prevSlide < 0) prevSlide = _.slideCount - 1;
1600
+ loadRange = loadRange.add($slides.eq(prevSlide));
1601
+ loadRange = loadRange.add($slides.eq(nextSlide));
1602
+ prevSlide--;
1603
+ nextSlide++;
1604
+ }
1605
+ }
1606
+
1607
+ loadImages(loadRange);
1608
+
1609
+ if (_.slideCount <= _.options.slidesToShow) {
1610
+ cloneRange = _.$slider.find('.slick-slide');
1611
+ loadImages(cloneRange);
1612
+ } else
1613
+ if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
1614
+ cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
1615
+ loadImages(cloneRange);
1616
+ } else if (_.currentSlide === 0) {
1617
+ cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
1618
+ loadImages(cloneRange);
1619
+ }
1620
+
1621
+ };
1622
+
1623
+ Slick.prototype.loadSlider = function() {
1624
+
1625
+ var _ = this;
1626
+
1627
+ _.setPosition();
1628
+
1629
+ _.$slideTrack.css({
1630
+ opacity: 1
1631
+ });
1632
+
1633
+ _.$slider.removeClass('slick-loading');
1634
+
1635
+ _.initUI();
1636
+
1637
+ if (_.options.lazyLoad === 'progressive') {
1638
+ _.progressiveLazyLoad();
1639
+ }
1640
+
1641
+ };
1642
+
1643
+ Slick.prototype.next = Slick.prototype.slickNext = function() {
1644
+
1645
+ var _ = this;
1646
+
1647
+ _.changeSlide({
1648
+ data: {
1649
+ message: 'next'
1650
+ }
1651
+ });
1652
+
1653
+ };
1654
+
1655
+ Slick.prototype.orientationChange = function() {
1656
+
1657
+ var _ = this;
1658
+
1659
+ _.checkResponsive();
1660
+ _.setPosition();
1661
+
1662
+ };
1663
+
1664
+ Slick.prototype.pause = Slick.prototype.slickPause = function() {
1665
+
1666
+ var _ = this;
1667
+
1668
+ _.autoPlayClear();
1669
+ _.paused = true;
1670
+
1671
+ };
1672
+
1673
+ Slick.prototype.play = Slick.prototype.slickPlay = function() {
1674
+
1675
+ var _ = this;
1676
+
1677
+ _.autoPlay();
1678
+ _.options.autoplay = true;
1679
+ _.paused = false;
1680
+ _.focussed = false;
1681
+ _.interrupted = false;
1682
+
1683
+ };
1684
+
1685
+ Slick.prototype.postSlide = function(index) {
1686
+
1687
+ var _ = this;
1688
+
1689
+ if( !_.unslicked ) {
1690
+
1691
+ _.$slider.trigger('afterChange', [_, index]);
1692
+
1693
+ _.animating = false;
1694
+
1695
+ if (_.slideCount > _.options.slidesToShow) {
1696
+ _.setPosition();
1697
+ }
1698
+
1699
+ _.swipeLeft = null;
1700
+
1701
+ if ( _.options.autoplay ) {
1702
+ _.autoPlay();
1703
+ }
1704
+
1705
+ if (_.options.accessibility === true) {
1706
+ _.initADA();
1707
+
1708
+ if (_.options.focusOnChange) {
1709
+ var $currentSlide = $(_.$slides.get(_.currentSlide));
1710
+ $currentSlide.attr('tabindex', 0).focus();
1711
+ }
1712
+ }
1713
+
1714
+ }
1715
+
1716
+ };
1717
+
1718
+ Slick.prototype.prev = Slick.prototype.slickPrev = function() {
1719
+
1720
+ var _ = this;
1721
+
1722
+ _.changeSlide({
1723
+ data: {
1724
+ message: 'previous'
1725
+ }
1726
+ });
1727
+
1728
+ };
1729
+
1730
+ Slick.prototype.preventDefault = function(event) {
1731
+
1732
+ event.preventDefault();
1733
+
1734
+ };
1735
+
1736
+ Slick.prototype.progressiveLazyLoad = function( tryCount ) {
1737
+
1738
+ tryCount = tryCount || 1;
1739
+
1740
+ var _ = this,
1741
+ $imgsToLoad = $( 'img[data-lazy]', _.$slider ),
1742
+ image,
1743
+ imageSource,
1744
+ imageSrcSet,
1745
+ imageSizes,
1746
+ imageToLoad;
1747
+
1748
+ if ( $imgsToLoad.length ) {
1749
+
1750
+ image = $imgsToLoad.first();
1751
+ imageSource = image.attr('data-lazy');
1752
+ imageSrcSet = image.attr('data-srcset');
1753
+ imageSizes = image.attr('data-sizes') || _.$slider.attr('data-sizes');
1754
+ imageToLoad = document.createElement('img');
1755
+
1756
+ imageToLoad.onload = function() {
1757
+
1758
+ if (imageSrcSet) {
1759
+ image
1760
+ .attr('srcset', imageSrcSet );
1761
+
1762
+ if (imageSizes) {
1763
+ image
1764
+ .attr('sizes', imageSizes );
1765
+ }
1766
+ }
1767
+
1768
+ image
1769
+ .attr( 'src', imageSource )
1770
+ .removeAttr('data-lazy data-srcset data-sizes')
1771
+ .removeClass('slick-loading');
1772
+
1773
+ if ( _.options.adaptiveHeight === true ) {
1774
+ _.setPosition();
1775
+ }
1776
+
1777
+ _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);
1778
+ _.progressiveLazyLoad();
1779
+
1780
+ };
1781
+
1782
+ imageToLoad.onerror = function() {
1783
+
1784
+ if ( tryCount < 3 ) {
1785
+
1786
+ /**
1787
+ * try to load the image 3 times,
1788
+ * leave a slight delay so we don't get
1789
+ * servers blocking the request.
1790
+ */
1791
+ setTimeout( function() {
1792
+ _.progressiveLazyLoad( tryCount + 1 );
1793
+ }, 500 );
1794
+
1795
+ } else {
1796
+
1797
+ image
1798
+ .removeAttr( 'data-lazy' )
1799
+ .removeClass( 'slick-loading' )
1800
+ .addClass( 'slick-lazyload-error' );
1801
+
1802
+ _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
1803
+
1804
+ _.progressiveLazyLoad();
1805
+
1806
+ }
1807
+
1808
+ };
1809
+
1810
+ imageToLoad.src = imageSource;
1811
+
1812
+ } else {
1813
+
1814
+ _.$slider.trigger('allImagesLoaded', [ _ ]);
1815
+
1816
+ }
1817
+
1818
+ };
1819
+
1820
+ Slick.prototype.refresh = function( initializing ) {
1821
+
1822
+ var _ = this, currentSlide, lastVisibleIndex;
1823
+
1824
+ lastVisibleIndex = _.slideCount - _.options.slidesToShow;
1825
+
1826
+ // in non-infinite sliders, we don't want to go past the
1827
+ // last visible index.
1828
+ if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {
1829
+ _.currentSlide = lastVisibleIndex;
1830
+ }
1831
+
1832
+ // if less slides than to show, go to start.
1833
+ if ( _.slideCount <= _.options.slidesToShow ) {
1834
+ _.currentSlide = 0;
1835
+
1836
+ }
1837
+
1838
+ currentSlide = _.currentSlide;
1839
+
1840
+ _.destroy(true);
1841
+
1842
+ $.extend(_, _.initials, { currentSlide: currentSlide });
1843
+
1844
+ _.init();
1845
+
1846
+ if( !initializing ) {
1847
+
1848
+ _.changeSlide({
1849
+ data: {
1850
+ message: 'index',
1851
+ index: currentSlide
1852
+ }
1853
+ }, false);
1854
+
1855
+ }
1856
+
1857
+ };
1858
+
1859
+ Slick.prototype.registerBreakpoints = function() {
1860
+
1861
+ var _ = this, breakpoint, currentBreakpoint, l,
1862
+ responsiveSettings = _.options.responsive || null;
1863
+
1864
+ if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {
1865
+
1866
+ _.respondTo = _.options.respondTo || 'window';
1867
+
1868
+ for ( breakpoint in responsiveSettings ) {
1869
+
1870
+ l = _.breakpoints.length-1;
1871
+
1872
+ if (responsiveSettings.hasOwnProperty(breakpoint)) {
1873
+ currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
1874
+
1875
+ // loop through the breakpoints and cut out any existing
1876
+ // ones with the same breakpoint number, we don't want dupes.
1877
+ while( l >= 0 ) {
1878
+ if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
1879
+ _.breakpoints.splice(l,1);
1880
+ }
1881
+ l--;
1882
+ }
1883
+
1884
+ _.breakpoints.push(currentBreakpoint);
1885
+ _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
1886
+
1887
+ }
1888
+
1889
+ }
1890
+
1891
+ _.breakpoints.sort(function(a, b) {
1892
+ return ( _.options.mobileFirst ) ? a-b : b-a;
1893
+ });
1894
+
1895
+ }
1896
+
1897
+ };
1898
+
1899
+ Slick.prototype.reinit = function() {
1900
+
1901
+ var _ = this;
1902
+
1903
+ _.$slides =
1904
+ _.$slideTrack
1905
+ .children(_.options.slide)
1906
+ .addClass('slick-slide');
1907
+
1908
+ _.slideCount = _.$slides.length;
1909
+
1910
+ if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1911
+ _.currentSlide = _.currentSlide - _.options.slidesToScroll;
1912
+ }
1913
+
1914
+ if (_.slideCount <= _.options.slidesToShow) {
1915
+ _.currentSlide = 0;
1916
+ }
1917
+
1918
+ _.registerBreakpoints();
1919
+
1920
+ _.setProps();
1921
+ _.setupInfinite();
1922
+ _.buildArrows();
1923
+ _.updateArrows();
1924
+ _.initArrowEvents();
1925
+ _.buildDots();
1926
+ _.updateDots();
1927
+ _.initDotEvents();
1928
+ _.cleanUpSlideEvents();
1929
+ _.initSlideEvents();
1930
+
1931
+ _.checkResponsive(false, true);
1932
+
1933
+ if (_.options.focusOnSelect === true) {
1934
+ $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1935
+ }
1936
+
1937
+ _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
1938
+
1939
+ _.setPosition();
1940
+ _.focusHandler();
1941
+
1942
+ _.paused = !_.options.autoplay;
1943
+ _.autoPlay();
1944
+
1945
+ _.$slider.trigger('reInit', [_]);
1946
+
1947
+ };
1948
+
1949
+ Slick.prototype.resize = function() {
1950
+
1951
+ var _ = this;
1952
+
1953
+ if ($(window).width() !== _.windowWidth) {
1954
+ clearTimeout(_.windowDelay);
1955
+ _.windowDelay = window.setTimeout(function() {
1956
+ _.windowWidth = $(window).width();
1957
+ _.checkResponsive();
1958
+ if( !_.unslicked ) { _.setPosition(); }
1959
+ }, 50);
1960
+ }
1961
+ };
1962
+
1963
+ Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
1964
+
1965
+ var _ = this;
1966
+
1967
+ if (typeof(index) === 'boolean') {
1968
+ removeBefore = index;
1969
+ index = removeBefore === true ? 0 : _.slideCount - 1;
1970
+ } else {
1971
+ index = removeBefore === true ? --index : index;
1972
+ }
1973
+
1974
+ if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
1975
+ return false;
1976
+ }
1977
+
1978
+ _.unload();
1979
+
1980
+ if (removeAll === true) {
1981
+ _.$slideTrack.children().remove();
1982
+ } else {
1983
+ _.$slideTrack.children(this.options.slide).eq(index).remove();
1984
+ }
1985
+
1986
+ _.$slides = _.$slideTrack.children(this.options.slide);
1987
+
1988
+ _.$slideTrack.children(this.options.slide).detach();
1989
+
1990
+ _.$slideTrack.append(_.$slides);
1991
+
1992
+ _.$slidesCache = _.$slides;
1993
+
1994
+ _.reinit();
1995
+
1996
+ };
1997
+
1998
+ Slick.prototype.setCSS = function(position) {
1999
+
2000
+ var _ = this,
2001
+ positionProps = {},
2002
+ x, y;
2003
+
2004
+ if (_.options.rtl === true) {
2005
+ position = -position;
2006
+ }
2007
+ x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
2008
+ y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
2009
+
2010
+ positionProps[_.positionProp] = position;
2011
+
2012
+ if (_.transformsEnabled === false) {
2013
+ _.$slideTrack.css(positionProps);
2014
+ } else {
2015
+ positionProps = {};
2016
+ if (_.cssTransitions === false) {
2017
+ positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
2018
+ _.$slideTrack.css(positionProps);
2019
+ } else {
2020
+ positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
2021
+ _.$slideTrack.css(positionProps);
2022
+ }
2023
+ }
2024
+
2025
+ };
2026
+
2027
+ Slick.prototype.setDimensions = function() {
2028
+
2029
+ var _ = this;
2030
+
2031
+ if (_.options.vertical === false) {
2032
+ if (_.options.centerMode === true) {
2033
+ _.$list.css({
2034
+ padding: ('0px ' + _.options.centerPadding)
2035
+ });
2036
+ }
2037
+ } else {
2038
+ _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
2039
+ if (_.options.centerMode === true) {
2040
+ _.$list.css({
2041
+ padding: (_.options.centerPadding + ' 0px')
2042
+ });
2043
+ }
2044
+ }
2045
+
2046
+ _.listWidth = _.$list.width();
2047
+ _.listHeight = _.$list.height();
2048
+
2049
+
2050
+ if (_.options.vertical === false && _.options.variableWidth === false) {
2051
+ _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
2052
+ _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
2053
+
2054
+ } else if (_.options.variableWidth === true) {
2055
+ _.$slideTrack.width(5000 * _.slideCount);
2056
+ } else {
2057
+ _.slideWidth = Math.ceil(_.listWidth);
2058
+ _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
2059
+ }
2060
+
2061
+ var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
2062
+ if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
2063
+
2064
+ };
2065
+
2066
+ Slick.prototype.setFade = function() {
2067
+
2068
+ var _ = this,
2069
+ targetLeft;
2070
+
2071
+ _.$slides.each(function(index, element) {
2072
+ targetLeft = (_.slideWidth * index) * -1;
2073
+ if (_.options.rtl === true) {
2074
+ $(element).css({
2075
+ position: 'relative',
2076
+ right: targetLeft,
2077
+ top: 0,
2078
+ zIndex: _.options.zIndex - 2,
2079
+ opacity: 0
2080
+ });
2081
+ } else {
2082
+ $(element).css({
2083
+ position: 'relative',
2084
+ left: targetLeft,
2085
+ top: 0,
2086
+ zIndex: _.options.zIndex - 2,
2087
+ opacity: 0
2088
+ });
2089
+ }
2090
+ });
2091
+
2092
+ _.$slides.eq(_.currentSlide).css({
2093
+ zIndex: _.options.zIndex - 1,
2094
+ opacity: 1
2095
+ });
2096
+
2097
+ };
2098
+
2099
+ Slick.prototype.setHeight = function() {
2100
+
2101
+ var _ = this;
2102
+
2103
+ if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
2104
+ var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
2105
+ _.$list.css('height', targetHeight);
2106
+ }
2107
+
2108
+ };
2109
+
2110
+ Slick.prototype.setOption =
2111
+ Slick.prototype.slickSetOption = function() {
2112
+
2113
+ /**
2114
+ * accepts arguments in format of:
2115
+ *
2116
+ * - for changing a single option's value:
2117
+ * .slick("setOption", option, value, refresh )
2118
+ *
2119
+ * - for changing a set of responsive options:
2120
+ * .slick("setOption", 'responsive', [{}, ...], refresh )
2121
+ *
2122
+ * - for updating multiple values at once (not responsive)
2123
+ * .slick("setOption", { 'option': value, ... }, refresh )
2124
+ */
2125
+
2126
+ var _ = this, l, item, option, value, refresh = false, type;
2127
+
2128
+ if( $.type( arguments[0] ) === 'object' ) {
2129
+
2130
+ option = arguments[0];
2131
+ refresh = arguments[1];
2132
+ type = 'multiple';
2133
+
2134
+ } else if ( $.type( arguments[0] ) === 'string' ) {
2135
+
2136
+ option = arguments[0];
2137
+ value = arguments[1];
2138
+ refresh = arguments[2];
2139
+
2140
+ if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {
2141
+
2142
+ type = 'responsive';
2143
+
2144
+ } else if ( typeof arguments[1] !== 'undefined' ) {
2145
+
2146
+ type = 'single';
2147
+
2148
+ }
2149
+
2150
+ }
2151
+
2152
+ if ( type === 'single' ) {
2153
+
2154
+ _.options[option] = value;
2155
+
2156
+
2157
+ } else if ( type === 'multiple' ) {
2158
+
2159
+ $.each( option , function( opt, val ) {
2160
+
2161
+ _.options[opt] = val;
2162
+
2163
+ });
2164
+
2165
+
2166
+ } else if ( type === 'responsive' ) {
2167
+
2168
+ for ( item in value ) {
2169
+
2170
+ if( $.type( _.options.responsive ) !== 'array' ) {
2171
+
2172
+ _.options.responsive = [ value[item] ];
2173
+
2174
+ } else {
2175
+
2176
+ l = _.options.responsive.length-1;
2177
+
2178
+ // loop through the responsive object and splice out duplicates.
2179
+ while( l >= 0 ) {
2180
+
2181
+ if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {
2182
+
2183
+ _.options.responsive.splice(l,1);
2184
+
2185
+ }
2186
+
2187
+ l--;
2188
+
2189
+ }
2190
+
2191
+ _.options.responsive.push( value[item] );
2192
+
2193
+ }
2194
+
2195
+ }
2196
+
2197
+ }
2198
+
2199
+ if ( refresh ) {
2200
+
2201
+ _.unload();
2202
+ _.reinit();
2203
+
2204
+ }
2205
+
2206
+ };
2207
+
2208
+ Slick.prototype.setPosition = function() {
2209
+
2210
+ var _ = this;
2211
+
2212
+ _.setDimensions();
2213
+
2214
+ _.setHeight();
2215
+
2216
+ if (_.options.fade === false) {
2217
+ _.setCSS(_.getLeft(_.currentSlide));
2218
+ } else {
2219
+ _.setFade();
2220
+ }
2221
+
2222
+ _.$slider.trigger('setPosition', [_]);
2223
+
2224
+ };
2225
+
2226
+ Slick.prototype.setProps = function() {
2227
+
2228
+ var _ = this,
2229
+ bodyStyle = document.body.style;
2230
+
2231
+ _.positionProp = _.options.vertical === true ? 'top' : 'left';
2232
+
2233
+ if (_.positionProp === 'top') {
2234
+ _.$slider.addClass('slick-vertical');
2235
+ } else {
2236
+ _.$slider.removeClass('slick-vertical');
2237
+ }
2238
+
2239
+ if (bodyStyle.WebkitTransition !== undefined ||
2240
+ bodyStyle.MozTransition !== undefined ||
2241
+ bodyStyle.msTransition !== undefined) {
2242
+ if (_.options.useCSS === true) {
2243
+ _.cssTransitions = true;
2244
+ }
2245
+ }
2246
+
2247
+ if ( _.options.fade ) {
2248
+ if ( typeof _.options.zIndex === 'number' ) {
2249
+ if( _.options.zIndex < 3 ) {
2250
+ _.options.zIndex = 3;
2251
+ }
2252
+ } else {
2253
+ _.options.zIndex = _.defaults.zIndex;
2254
+ }
2255
+ }
2256
+
2257
+ if (bodyStyle.OTransform !== undefined) {
2258
+ _.animType = 'OTransform';
2259
+ _.transformType = '-o-transform';
2260
+ _.transitionType = 'OTransition';
2261
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
2262
+ }
2263
+ if (bodyStyle.MozTransform !== undefined) {
2264
+ _.animType = 'MozTransform';
2265
+ _.transformType = '-moz-transform';
2266
+ _.transitionType = 'MozTransition';
2267
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
2268
+ }
2269
+ if (bodyStyle.webkitTransform !== undefined) {
2270
+ _.animType = 'webkitTransform';
2271
+ _.transformType = '-webkit-transform';
2272
+ _.transitionType = 'webkitTransition';
2273
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
2274
+ }
2275
+ if (bodyStyle.msTransform !== undefined) {
2276
+ _.animType = 'msTransform';
2277
+ _.transformType = '-ms-transform';
2278
+ _.transitionType = 'msTransition';
2279
+ if (bodyStyle.msTransform === undefined) _.animType = false;
2280
+ }
2281
+ if (bodyStyle.transform !== undefined && _.animType !== false) {
2282
+ _.animType = 'transform';
2283
+ _.transformType = 'transform';
2284
+ _.transitionType = 'transition';
2285
+ }
2286
+ _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
2287
+ };
2288
+
2289
+
2290
+ Slick.prototype.setSlideClasses = function(index) {
2291
+
2292
+ var _ = this,
2293
+ centerOffset, allSlides, indexOffset, remainder;
2294
+
2295
+ allSlides = _.$slider
2296
+ .find('.slick-slide')
2297
+ .removeClass('slick-active slick-center slick-current')
2298
+ .attr('aria-hidden', 'true');
2299
+
2300
+ _.$slides
2301
+ .eq(index)
2302
+ .addClass('slick-current');
2303
+
2304
+ if (_.options.centerMode === true) {
2305
+
2306
+ var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;
2307
+
2308
+ centerOffset = Math.floor(_.options.slidesToShow / 2);
2309
+
2310
+ if (_.options.infinite === true) {
2311
+
2312
+ if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
2313
+ _.$slides
2314
+ .slice(index - centerOffset + evenCoef, index + centerOffset + 1)
2315
+ .addClass('slick-active')
2316
+ .attr('aria-hidden', 'false');
2317
+
2318
+ } else {
2319
+
2320
+ indexOffset = _.options.slidesToShow + index;
2321
+ allSlides
2322
+ .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2)
2323
+ .addClass('slick-active')
2324
+ .attr('aria-hidden', 'false');
2325
+
2326
+ }
2327
+
2328
+ if (index === 0) {
2329
+
2330
+ allSlides
2331
+ .eq(allSlides.length - 1 - _.options.slidesToShow)
2332
+ .addClass('slick-center');
2333
+
2334
+ } else if (index === _.slideCount - 1) {
2335
+
2336
+ allSlides
2337
+ .eq(_.options.slidesToShow)
2338
+ .addClass('slick-center');
2339
+
2340
+ }
2341
+
2342
+ }
2343
+
2344
+ _.$slides
2345
+ .eq(index)
2346
+ .addClass('slick-center');
2347
+
2348
+ } else {
2349
+
2350
+ if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
2351
+
2352
+ _.$slides
2353
+ .slice(index, index + _.options.slidesToShow)
2354
+ .addClass('slick-active')
2355
+ .attr('aria-hidden', 'false');
2356
+
2357
+ } else if (allSlides.length <= _.options.slidesToShow) {
2358
+
2359
+ allSlides
2360
+ .addClass('slick-active')
2361
+ .attr('aria-hidden', 'false');
2362
+
2363
+ } else {
2364
+
2365
+ remainder = _.slideCount % _.options.slidesToShow;
2366
+ indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
2367
+
2368
+ if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
2369
+
2370
+ allSlides
2371
+ .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
2372
+ .addClass('slick-active')
2373
+ .attr('aria-hidden', 'false');
2374
+
2375
+ } else {
2376
+
2377
+ allSlides
2378
+ .slice(indexOffset, indexOffset + _.options.slidesToShow)
2379
+ .addClass('slick-active')
2380
+ .attr('aria-hidden', 'false');
2381
+
2382
+ }
2383
+
2384
+ }
2385
+
2386
+ }
2387
+
2388
+ if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {
2389
+ _.lazyLoad();
2390
+ }
2391
+ };
2392
+
2393
+ Slick.prototype.setupInfinite = function() {
2394
+
2395
+ var _ = this,
2396
+ i, slideIndex, infiniteCount;
2397
+
2398
+ if (_.options.fade === true) {
2399
+ _.options.centerMode = false;
2400
+ }
2401
+
2402
+ if (_.options.infinite === true && _.options.fade === false) {
2403
+
2404
+ slideIndex = null;
2405
+
2406
+ if (_.slideCount > _.options.slidesToShow) {
2407
+
2408
+ if (_.options.centerMode === true) {
2409
+ infiniteCount = _.options.slidesToShow + 1;
2410
+ } else {
2411
+ infiniteCount = _.options.slidesToShow;
2412
+ }
2413
+
2414
+ for (i = _.slideCount; i > (_.slideCount -
2415
+ infiniteCount); i -= 1) {
2416
+ slideIndex = i - 1;
2417
+ $(_.$slides[slideIndex]).clone(true).attr('id', '')
2418
+ .attr('data-slick-index', slideIndex - _.slideCount)
2419
+ .prependTo(_.$slideTrack).addClass('slick-cloned');
2420
+ }
2421
+ for (i = 0; i < infiniteCount + _.slideCount; i += 1) {
2422
+ slideIndex = i;
2423
+ $(_.$slides[slideIndex]).clone(true).attr('id', '')
2424
+ .attr('data-slick-index', slideIndex + _.slideCount)
2425
+ .appendTo(_.$slideTrack).addClass('slick-cloned');
2426
+ }
2427
+ _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
2428
+ $(this).attr('id', '');
2429
+ });
2430
+
2431
+ }
2432
+
2433
+ }
2434
+
2435
+ };
2436
+
2437
+ Slick.prototype.interrupt = function( toggle ) {
2438
+
2439
+ var _ = this;
2440
+
2441
+ if( !toggle ) {
2442
+ _.autoPlay();
2443
+ }
2444
+ _.interrupted = toggle;
2445
+
2446
+ };
2447
+
2448
+ Slick.prototype.selectHandler = function(event) {
2449
+
2450
+ var _ = this;
2451
+
2452
+ var targetElement =
2453
+ $(event.target).is('.slick-slide') ?
2454
+ $(event.target) :
2455
+ $(event.target).parents('.slick-slide');
2456
+
2457
+ var index = parseInt(targetElement.attr('data-slick-index'));
2458
+
2459
+ if (!index) index = 0;
2460
+
2461
+ if (_.slideCount <= _.options.slidesToShow) {
2462
+
2463
+ _.slideHandler(index, false, true);
2464
+ return;
2465
+
2466
+ }
2467
+
2468
+ _.slideHandler(index);
2469
+
2470
+ };
2471
+
2472
+ Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
2473
+
2474
+ var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
2475
+ _ = this, navTarget;
2476
+
2477
+ sync = sync || false;
2478
+
2479
+ if (_.animating === true && _.options.waitForAnimate === true) {
2480
+ return;
2481
+ }
2482
+
2483
+ if (_.options.fade === true && _.currentSlide === index) {
2484
+ return;
2485
+ }
2486
+
2487
+ if (sync === false) {
2488
+ _.asNavFor(index);
2489
+ }
2490
+
2491
+ targetSlide = index;
2492
+ targetLeft = _.getLeft(targetSlide);
2493
+ slideLeft = _.getLeft(_.currentSlide);
2494
+
2495
+ _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
2496
+
2497
+ if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
2498
+ if (_.options.fade === false) {
2499
+ targetSlide = _.currentSlide;
2500
+ if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2501
+ _.animateSlide(slideLeft, function() {
2502
+ _.postSlide(targetSlide);
2503
+ });
2504
+ } else {
2505
+ _.postSlide(targetSlide);
2506
+ }
2507
+ }
2508
+ return;
2509
+ } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
2510
+ if (_.options.fade === false) {
2511
+ targetSlide = _.currentSlide;
2512
+ if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2513
+ _.animateSlide(slideLeft, function() {
2514
+ _.postSlide(targetSlide);
2515
+ });
2516
+ } else {
2517
+ _.postSlide(targetSlide);
2518
+ }
2519
+ }
2520
+ return;
2521
+ }
2522
+
2523
+ if ( _.options.autoplay ) {
2524
+ clearInterval(_.autoPlayTimer);
2525
+ }
2526
+
2527
+ if (targetSlide < 0) {
2528
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
2529
+ animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
2530
+ } else {
2531
+ animSlide = _.slideCount + targetSlide;
2532
+ }
2533
+ } else if (targetSlide >= _.slideCount) {
2534
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
2535
+ animSlide = 0;
2536
+ } else {
2537
+ animSlide = targetSlide - _.slideCount;
2538
+ }
2539
+ } else {
2540
+ animSlide = targetSlide;
2541
+ }
2542
+
2543
+ _.animating = true;
2544
+
2545
+ _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
2546
+
2547
+ oldSlide = _.currentSlide;
2548
+ _.currentSlide = animSlide;
2549
+
2550
+ _.setSlideClasses(_.currentSlide);
2551
+
2552
+ if ( _.options.asNavFor ) {
2553
+
2554
+ navTarget = _.getNavTarget();
2555
+ navTarget = navTarget.slick('getSlick');
2556
+
2557
+ if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {
2558
+ navTarget.setSlideClasses(_.currentSlide);
2559
+ }
2560
+
2561
+ }
2562
+
2563
+ _.updateDots();
2564
+ _.updateArrows();
2565
+
2566
+ if (_.options.fade === true) {
2567
+ if (dontAnimate !== true) {
2568
+
2569
+ _.fadeSlideOut(oldSlide);
2570
+
2571
+ _.fadeSlide(animSlide, function() {
2572
+ _.postSlide(animSlide);
2573
+ });
2574
+
2575
+ } else {
2576
+ _.postSlide(animSlide);
2577
+ }
2578
+ _.animateHeight();
2579
+ return;
2580
+ }
2581
+
2582
+ if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2583
+ _.animateSlide(targetLeft, function() {
2584
+ _.postSlide(animSlide);
2585
+ });
2586
+ } else {
2587
+ _.postSlide(animSlide);
2588
+ }
2589
+
2590
+ };
2591
+
2592
+ Slick.prototype.startLoad = function() {
2593
+
2594
+ var _ = this;
2595
+
2596
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
2597
+
2598
+ _.$prevArrow.hide();
2599
+ _.$nextArrow.hide();
2600
+
2601
+ }
2602
+
2603
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
2604
+
2605
+ _.$dots.hide();
2606
+
2607
+ }
2608
+
2609
+ _.$slider.addClass('slick-loading');
2610
+
2611
+ };
2612
+
2613
+ Slick.prototype.swipeDirection = function() {
2614
+
2615
+ var xDist, yDist, r, swipeAngle, _ = this;
2616
+
2617
+ xDist = _.touchObject.startX - _.touchObject.curX;
2618
+ yDist = _.touchObject.startY - _.touchObject.curY;
2619
+ r = Math.atan2(yDist, xDist);
2620
+
2621
+ swipeAngle = Math.round(r * 180 / Math.PI);
2622
+ if (swipeAngle < 0) {
2623
+ swipeAngle = 360 - Math.abs(swipeAngle);
2624
+ }
2625
+
2626
+ if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
2627
+ return (_.options.rtl === false ? 'left' : 'right');
2628
+ }
2629
+ if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
2630
+ return (_.options.rtl === false ? 'left' : 'right');
2631
+ }
2632
+ if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
2633
+ return (_.options.rtl === false ? 'right' : 'left');
2634
+ }
2635
+ if (_.options.verticalSwiping === true) {
2636
+ if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
2637
+ return 'down';
2638
+ } else {
2639
+ return 'up';
2640
+ }
2641
+ }
2642
+
2643
+ return 'vertical';
2644
+
2645
+ };
2646
+
2647
+ Slick.prototype.swipeEnd = function(event) {
2648
+
2649
+ var _ = this,
2650
+ slideCount,
2651
+ direction;
2652
+
2653
+ _.dragging = false;
2654
+ _.swiping = false;
2655
+
2656
+ if (_.scrolling) {
2657
+ _.scrolling = false;
2658
+ return false;
2659
+ }
2660
+
2661
+ _.interrupted = false;
2662
+ _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;
2663
+
2664
+ if ( _.touchObject.curX === undefined ) {
2665
+ return false;
2666
+ }
2667
+
2668
+ if ( _.touchObject.edgeHit === true ) {
2669
+ _.$slider.trigger('edge', [_, _.swipeDirection() ]);
2670
+ }
2671
+
2672
+ if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {
2673
+
2674
+ direction = _.swipeDirection();
2675
+
2676
+ switch ( direction ) {
2677
+
2678
+ case 'left':
2679
+ case 'down':
2680
+
2681
+ slideCount =
2682
+ _.options.swipeToSlide ?
2683
+ _.checkNavigable( _.currentSlide + _.getSlideCount() ) :
2684
+ _.currentSlide + _.getSlideCount();
2685
+
2686
+ _.currentDirection = 0;
2687
+
2688
+ break;
2689
+
2690
+ case 'right':
2691
+ case 'up':
2692
+
2693
+ slideCount =
2694
+ _.options.swipeToSlide ?
2695
+ _.checkNavigable( _.currentSlide - _.getSlideCount() ) :
2696
+ _.currentSlide - _.getSlideCount();
2697
+
2698
+ _.currentDirection = 1;
2699
+
2700
+ break;
2701
+
2702
+ default:
2703
+
2704
+
2705
+ }
2706
+
2707
+ if( direction != 'vertical' ) {
2708
+
2709
+ _.slideHandler( slideCount );
2710
+ _.touchObject = {};
2711
+ _.$slider.trigger('swipe', [_, direction ]);
2712
+
2713
+ }
2714
+
2715
+ } else {
2716
+
2717
+ if ( _.touchObject.startX !== _.touchObject.curX ) {
2718
+
2719
+ _.slideHandler( _.currentSlide );
2720
+ _.touchObject = {};
2721
+
2722
+ }
2723
+
2724
+ }
2725
+
2726
+ };
2727
+
2728
+ Slick.prototype.swipeHandler = function(event) {
2729
+
2730
+ var _ = this;
2731
+
2732
+ if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
2733
+ return;
2734
+ } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
2735
+ return;
2736
+ }
2737
+
2738
+ _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
2739
+ event.originalEvent.touches.length : 1;
2740
+
2741
+ _.touchObject.minSwipe = _.listWidth / _.options
2742
+ .touchThreshold;
2743
+
2744
+ if (_.options.verticalSwiping === true) {
2745
+ _.touchObject.minSwipe = _.listHeight / _.options
2746
+ .touchThreshold;
2747
+ }
2748
+
2749
+ switch (event.data.action) {
2750
+
2751
+ case 'start':
2752
+ _.swipeStart(event);
2753
+ break;
2754
+
2755
+ case 'move':
2756
+ _.swipeMove(event);
2757
+ break;
2758
+
2759
+ case 'end':
2760
+ _.swipeEnd(event);
2761
+ break;
2762
+
2763
+ }
2764
+
2765
+ };
2766
+
2767
+ Slick.prototype.swipeMove = function(event) {
2768
+
2769
+ var _ = this,
2770
+ edgeWasHit = false,
2771
+ curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;
2772
+
2773
+ touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
2774
+
2775
+ if (!_.dragging || _.scrolling || touches && touches.length !== 1) {
2776
+ return false;
2777
+ }
2778
+
2779
+ curLeft = _.getLeft(_.currentSlide);
2780
+
2781
+ _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
2782
+ _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
2783
+
2784
+ _.touchObject.swipeLength = Math.round(Math.sqrt(
2785
+ Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
2786
+
2787
+ verticalSwipeLength = Math.round(Math.sqrt(
2788
+ Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
2789
+
2790
+ if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {
2791
+ _.scrolling = true;
2792
+ return false;
2793
+ }
2794
+
2795
+ if (_.options.verticalSwiping === true) {
2796
+ _.touchObject.swipeLength = verticalSwipeLength;
2797
+ }
2798
+
2799
+ swipeDirection = _.swipeDirection();
2800
+
2801
+ if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
2802
+ _.swiping = true;
2803
+ event.preventDefault();
2804
+ }
2805
+
2806
+ positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
2807
+ if (_.options.verticalSwiping === true) {
2808
+ positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
2809
+ }
2810
+
2811
+
2812
+ swipeLength = _.touchObject.swipeLength;
2813
+
2814
+ _.touchObject.edgeHit = false;
2815
+
2816
+ if (_.options.infinite === false) {
2817
+ if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
2818
+ swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
2819
+ _.touchObject.edgeHit = true;
2820
+ }
2821
+ }
2822
+
2823
+ if (_.options.vertical === false) {
2824
+ _.swipeLeft = curLeft + swipeLength * positionOffset;
2825
+ } else {
2826
+ _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
2827
+ }
2828
+ if (_.options.verticalSwiping === true) {
2829
+ _.swipeLeft = curLeft + swipeLength * positionOffset;
2830
+ }
2831
+
2832
+ if (_.options.fade === true || _.options.touchMove === false) {
2833
+ return false;
2834
+ }
2835
+
2836
+ if (_.animating === true) {
2837
+ _.swipeLeft = null;
2838
+ return false;
2839
+ }
2840
+
2841
+ _.setCSS(_.swipeLeft);
2842
+
2843
+ };
2844
+
2845
+ Slick.prototype.swipeStart = function(event) {
2846
+
2847
+ var _ = this,
2848
+ touches;
2849
+
2850
+ _.interrupted = true;
2851
+
2852
+ if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
2853
+ _.touchObject = {};
2854
+ return false;
2855
+ }
2856
+
2857
+ if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
2858
+ touches = event.originalEvent.touches[0];
2859
+ }
2860
+
2861
+ _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
2862
+ _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
2863
+
2864
+ _.dragging = true;
2865
+
2866
+ };
2867
+
2868
+ Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
2869
+
2870
+ var _ = this;
2871
+
2872
+ if (_.$slidesCache !== null) {
2873
+
2874
+ _.unload();
2875
+
2876
+ _.$slideTrack.children(this.options.slide).detach();
2877
+
2878
+ _.$slidesCache.appendTo(_.$slideTrack);
2879
+
2880
+ _.reinit();
2881
+
2882
+ }
2883
+
2884
+ };
2885
+
2886
+ Slick.prototype.unload = function() {
2887
+
2888
+ var _ = this;
2889
+
2890
+ $('.slick-cloned', _.$slider).remove();
2891
+
2892
+ if (_.$dots) {
2893
+ _.$dots.remove();
2894
+ }
2895
+
2896
+ if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
2897
+ _.$prevArrow.remove();
2898
+ }
2899
+
2900
+ if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
2901
+ _.$nextArrow.remove();
2902
+ }
2903
+
2904
+ _.$slides
2905
+ .removeClass('slick-slide slick-active slick-visible slick-current')
2906
+ .attr('aria-hidden', 'true')
2907
+ .css('width', '');
2908
+
2909
+ };
2910
+
2911
+ Slick.prototype.unslick = function(fromBreakpoint) {
2912
+
2913
+ var _ = this;
2914
+ _.$slider.trigger('unslick', [_, fromBreakpoint]);
2915
+ _.destroy();
2916
+
2917
+ };
2918
+
2919
+ Slick.prototype.updateArrows = function() {
2920
+
2921
+ var _ = this,
2922
+ centerOffset;
2923
+
2924
+ centerOffset = Math.floor(_.options.slidesToShow / 2);
2925
+
2926
+ if ( _.options.arrows === true &&
2927
+ _.slideCount > _.options.slidesToShow &&
2928
+ !_.options.infinite ) {
2929
+
2930
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2931
+ _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2932
+
2933
+ if (_.currentSlide === 0) {
2934
+
2935
+ _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2936
+ _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2937
+
2938
+ } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
2939
+
2940
+ _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2941
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2942
+
2943
+ } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
2944
+
2945
+ _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2946
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2947
+
2948
+ }
2949
+
2950
+ }
2951
+
2952
+ };
2953
+
2954
+ Slick.prototype.updateDots = function() {
2955
+
2956
+ var _ = this;
2957
+
2958
+ if (_.$dots !== null) {
2959
+
2960
+ _.$dots
2961
+ .find('li')
2962
+ .removeClass('slick-active')
2963
+ .end();
2964
+
2965
+ _.$dots
2966
+ .find('li')
2967
+ .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
2968
+ .addClass('slick-active');
2969
+
2970
+ }
2971
+
2972
+ };
2973
+
2974
+ Slick.prototype.visibility = function() {
2975
+
2976
+ var _ = this;
2977
+
2978
+ if ( _.options.autoplay ) {
2979
+
2980
+ if ( document[_.hidden] ) {
2981
+
2982
+ _.interrupted = true;
2983
+
2984
+ } else {
2985
+
2986
+ _.interrupted = false;
2987
+
2988
+ }
2989
+
2990
+ }
2991
+
2992
+ };
2993
+
2994
+ $.fn.slick = function() {
2995
+ var _ = this,
2996
+ opt = arguments[0],
2997
+ args = Array.prototype.slice.call(arguments, 1),
2998
+ l = _.length,
2999
+ i,
3000
+ ret;
3001
+ for (i = 0; i < l; i++) {
3002
+ if (typeof opt == 'object' || typeof opt == 'undefined')
3003
+ _[i].slick = new Slick(_[i], opt);
3004
+ else
3005
+ ret = _[i].slick[opt].apply(_[i].slick, args);
3006
+ if (typeof ret != 'undefined') return ret;
3007
+ }
3008
+ return _;
3009
+ };
3010
+
3011
+ }));
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.less ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Slider */
2
+
3
+ .slick-slider {
4
+ position: relative;
5
+ display: block;
6
+ box-sizing: border-box;
7
+ -webkit-touch-callout: none;
8
+ -webkit-user-select: none;
9
+ -khtml-user-select: none;
10
+ -moz-user-select: none;
11
+ -ms-user-select: none;
12
+ user-select: none;
13
+ -ms-touch-action: pan-y;
14
+ touch-action: pan-y;
15
+ -webkit-tap-highlight-color: transparent;
16
+ }
17
+ .slick-list {
18
+ position: relative;
19
+ overflow: hidden;
20
+ display: block;
21
+ margin: 0;
22
+ padding: 0;
23
+
24
+ &:focus {
25
+ outline: none;
26
+ }
27
+
28
+ &.dragging {
29
+ cursor: pointer;
30
+ cursor: hand;
31
+ }
32
+ }
33
+ .slick-slider .slick-track,
34
+ .slick-slider .slick-list {
35
+ -webkit-transform: translate3d(0, 0, 0);
36
+ -moz-transform: translate3d(0, 0, 0);
37
+ -ms-transform: translate3d(0, 0, 0);
38
+ -o-transform: translate3d(0, 0, 0);
39
+ transform: translate3d(0, 0, 0);
40
+ }
41
+
42
+ .slick-track {
43
+ position: relative;
44
+ left: 0;
45
+ top: 0;
46
+ display: block;
47
+ margin-left: auto;
48
+ margin-right: auto;
49
+
50
+ &:before,
51
+ &:after {
52
+ content: "";
53
+ display: table;
54
+ }
55
+
56
+ &:after {
57
+ clear: both;
58
+ }
59
+
60
+ .slick-loading & {
61
+ visibility: hidden;
62
+ }
63
+ }
64
+ .slick-slide {
65
+ float: left;
66
+ height: 100%;
67
+ min-height: 1px;
68
+ [dir="rtl"] & {
69
+ float: right;
70
+ }
71
+ img {
72
+ display: block;
73
+ }
74
+ &.slick-loading img {
75
+ display: none;
76
+ }
77
+
78
+ display: none;
79
+
80
+ &.dragging img {
81
+ pointer-events: none;
82
+ }
83
+
84
+ .slick-initialized & {
85
+ display: block;
86
+ }
87
+
88
+ .slick-loading & {
89
+ visibility: hidden;
90
+ }
91
+
92
+ .slick-vertical & {
93
+ display: block;
94
+ height: auto;
95
+ border: 1px solid transparent;
96
+ }
97
+ }
98
+ .slick-arrow.slick-hidden {
99
+ display: none;
100
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};e=function(){function e(e,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(e),appendDots:i(e),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(e),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(e).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=t++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}var t=0;return e}(),e.prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this,o=t.getNavTarget();null!==o&&"object"==typeof o&&o.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots&&o.slideCount>o.options.slidesToShow){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>0){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t,o=this;if(e=o.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var s in e){if(i<e[s]){i=t;break}t=e[s]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>0&&(i=e.$slides.children().children(),i.removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);if(i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s){var n="slick-slide-control"+e.instanceUid+s;i("#"+n).length&&i(this).attr({"aria-describedby":n})}}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.options.focusOnChange?e.$slides.eq(s).attr({tabindex:"0"}):e.$slides.eq(s).removeAttr("tabindex");e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&e.slideCount>e.options.slidesToShow&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&e.slideCount>e.options.slidesToShow&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||r.$slider.attr("data-sizes"),n=document.createElement("img");n.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),r.$slider.trigger("lazyLoaded",[r,e,t])})},n.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),r.$slider.trigger("lazyLoadError",[r,e,t])},n.src=t})}var t,o,s,n,r=this;if(!0===r.options.centerMode?!0===r.options.infinite?(s=r.currentSlide+(r.options.slidesToShow/2+1),n=s+r.options.slidesToShow+2):(s=Math.max(0,r.currentSlide-(r.options.slidesToShow/2+1)),n=r.options.slidesToShow/2+1+2+r.currentSlide):(s=r.options.infinite?r.options.slidesToShow+r.currentSlide:r.currentSlide,n=Math.ceil(s+r.options.slidesToShow),!0===r.options.fade&&(s>0&&s--,n<=r.slideCount&&n++)),t=r.$slider.find(".slick-slide").slice(s,n),"anticipated"===r.options.lazyLoad)for(var l=s-1,d=n,a=r.$slider.find(".slick-slide"),c=0;c<r.options.slidesToScroll;c++)l<0&&(l=r.slideCount-1),t=t.add(a.eq(l)),t=t.add(a.eq(d)),l--,d++;e(t),r.slideCount<=r.options.slidesToShow?(o=r.$slider.find(".slick-slide"),e(o)):r.currentSlide>=r.slideCount-r.options.slidesToShow?(o=r.$slider.find(".slick-cloned").slice(0,r.options.slidesToShow),e(o)):0===r.currentSlide&&(o=r.$slider.find(".slick-cloned").slice(-1*r.options.slidesToShow),e(o))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;if(!t.unslicked&&(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange))){i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()}},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),r=document.createElement("img"),r.onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if("boolean"==typeof i?(e=i,i=!0===e?0:o.slideCount-1):i=!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),
2
+ void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));if(s||(s=0),t.slideCount<=t.options.slidesToShow)return void t.slideHandler(s,!1,!0);t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i)){if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))return void(!1===a.options.fade&&(o=a.currentSlide,!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o)));if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))return void(!1===a.options.fade&&(o=a.currentSlide,!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o)));if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=a.getNavTarget(),l=l.slick("getSlick"),l.slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide)),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t&&a.slideCount>a.options.slidesToShow?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),o=Math.round(180*t/Math.PI),o<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/slideshow/slick/slick.scss ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Slider */
2
+
3
+ .slick-slider {
4
+ position: relative;
5
+ display: block;
6
+ box-sizing: border-box;
7
+ -webkit-touch-callout: none;
8
+ -webkit-user-select: none;
9
+ -khtml-user-select: none;
10
+ -moz-user-select: none;
11
+ -ms-user-select: none;
12
+ user-select: none;
13
+ -ms-touch-action: pan-y;
14
+ touch-action: pan-y;
15
+ -webkit-tap-highlight-color: transparent;
16
+ }
17
+ .slick-list {
18
+ position: relative;
19
+ overflow: hidden;
20
+ display: block;
21
+ margin: 0;
22
+ padding: 0;
23
+
24
+ &:focus {
25
+ outline: none;
26
+ }
27
+
28
+ &.dragging {
29
+ cursor: pointer;
30
+ cursor: hand;
31
+ }
32
+ }
33
+ .slick-slider .slick-track,
34
+ .slick-slider .slick-list {
35
+ -webkit-transform: translate3d(0, 0, 0);
36
+ -moz-transform: translate3d(0, 0, 0);
37
+ -ms-transform: translate3d(0, 0, 0);
38
+ -o-transform: translate3d(0, 0, 0);
39
+ transform: translate3d(0, 0, 0);
40
+ }
41
+
42
+ .slick-track {
43
+ position: relative;
44
+ left: 0;
45
+ top: 0;
46
+ display: block;
47
+ margin-left: auto;
48
+ margin-right: auto;
49
+
50
+ &:before,
51
+ &:after {
52
+ content: "";
53
+ display: table;
54
+ }
55
+
56
+ &:after {
57
+ clear: both;
58
+ }
59
+
60
+ .slick-loading & {
61
+ visibility: hidden;
62
+ }
63
+ }
64
+ .slick-slide {
65
+ float: left;
66
+ height: 100%;
67
+ min-height: 1px;
68
+ [dir="rtl"] & {
69
+ float: right;
70
+ }
71
+ img {
72
+ display: block;
73
+ }
74
+ &.slick-loading img {
75
+ display: none;
76
+ }
77
+
78
+ display: none;
79
+
80
+ &.dragging img {
81
+ pointer-events: none;
82
+ }
83
+
84
+ .slick-initialized & {
85
+ display: block;
86
+ }
87
+
88
+ .slick-loading & {
89
+ visibility: hidden;
90
+ }
91
+
92
+ .slick-vertical & {
93
+ display: block;
94
+ height: auto;
95
+ border: 1px solid transparent;
96
+ }
97
+ }
98
+ .slick-arrow.slick-hidden {
99
+ display: none;
100
+ }
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.css CHANGED
@@ -37,7 +37,7 @@
37
  }
38
 
39
  .ngg-gallery-thumbnail a {
40
- display: block;
41
  margin: 4px;
42
  border: none;
43
  box-shadow: none;
@@ -52,10 +52,6 @@
52
  height: auto;
53
  }
54
 
55
- .ngg-gallery-thumbnail img:hover {
56
- background-color: #A9A9A9;
57
- }
58
-
59
  .ngg-gallery-thumbnail span {
60
  /* Images description */
61
  font-size: 90%;
@@ -63,6 +59,215 @@
63
  display: block;
64
  }
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  /* ----------- Gallery list (Carousel template) -------------*/
67
 
68
  .ngg-galleryoverview ul li:before {
37
  }
38
 
39
  .ngg-gallery-thumbnail a {
40
+ display: block;
41
  margin: 4px;
42
  border: none;
43
  box-shadow: none;
52
  height: auto;
53
  }
54
 
 
 
 
 
55
  .ngg-gallery-thumbnail span {
56
  /* Images description */
57
  font-size: 90%;
59
  display: block;
60
  }
61
 
62
+ /* ----------- New Default Styling September 2018 -----------*/
63
+
64
+ .ngg-galleryoverview {
65
+ margin-top: 40px;
66
+ margin-bottom: 50px;
67
+ -webkit-transition: width 1s, height 1s, background-color 1s, -webkit-transform 1s;
68
+ transition: width 1s, height 1s, background-color 1s, transform 1s;
69
+ min-height: 100px;
70
+ }
71
+
72
+ .ngg-gallery-thumbnail-box.ngg-1-columns {
73
+ width: 100%;
74
+ float: left !important;
75
+ }
76
+
77
+ .ngg-gallery-thumbnail-box.ngg-2-columns {
78
+ width: 50%;
79
+ float: left !important;
80
+ }
81
+
82
+ .ngg-gallery-thumbnail-box.ngg-3-columns {
83
+ width: 33.33333%;
84
+ float: left !important;
85
+ }
86
+
87
+ .ngg-gallery-thumbnail-box.ngg-4-columns {
88
+ width: 25%;
89
+ float: left !important;
90
+ }
91
+
92
+ .ngg-gallery-thumbnail-box.ngg-5-columns {
93
+ width: 20%;
94
+ float: left !important;
95
+ }
96
+
97
+ .ngg-gallery-thumbnail-box.ngg-6-columns {
98
+ width: 16.6666%;
99
+ float: left !important;
100
+ }
101
+
102
+ .ngg-gallery-thumbnail-box.ngg-7-columns {
103
+ width: 14.2857%;
104
+ float: left !important;
105
+ }
106
+
107
+ .ngg-gallery-thumbnail-box.ngg-8-columns {
108
+ width: 12.5%;
109
+ float: left !important;
110
+ }
111
+
112
+ .ngg-gallery-thumbnail-box.ngg-9-columns {
113
+ width: 11.1111%;
114
+ float: left !important;
115
+ }
116
+
117
+ .ngg-gallery-thumbnail-box.ngg-10-columns {
118
+ width: 10%;
119
+ float: left !important;
120
+ }
121
+
122
+ .ngg-gallery-thumbnail-box.ngg-11-columns {
123
+ width: 9.09%;
124
+ float: left !important;
125
+ }
126
+
127
+ .ngg-gallery-thumbnail-box.ngg-12-columns {
128
+ width: 8.3333%;
129
+ float: left !important;
130
+ }
131
+
132
+ .ngg-gallery-thumbnail-box.ngg-13-columns {
133
+ width: 7.692%;
134
+ float: left !important;
135
+ }
136
+
137
+ .ngg-gallery-thumbnail-box.ngg-14-columns {
138
+ width: 7.142%;
139
+ float: left !important;
140
+ }
141
+
142
+ .ngg-gallery-thumbnail-box.ngg-15-columns {
143
+ width: 6.6666%;
144
+ float: left !important;
145
+ }
146
+
147
+ @media (max-width: 800px) {
148
+ .ngg-gallery-thumbnail-box.ngg-5-columns,
149
+ .ngg-gallery-thumbnail-box.ngg-6-columns,
150
+ .ngg-gallery-thumbnail-box.ngg-7-columns,
151
+ .ngg-gallery-thumbnail-box.ngg-8-columns,
152
+ .ngg-gallery-thumbnail-box.ngg-9-columns,
153
+ .ngg-gallery-thumbnail-box.ngg-10-columns,
154
+ .ngg-gallery-thumbnail-box.ngg-11-columns,
155
+ .ngg-gallery-thumbnail-box.ngg-12-columns,
156
+ .ngg-gallery-thumbnail-box.ngg-13-columns,
157
+ .ngg-gallery-thumbnail-box.ngg-14-columns,
158
+ .ngg-gallery-thumbnail-box.ngg-15-columns,
159
+ .ngg-gallery-thumbnail-box.ngg-16-columns,
160
+ .ngg-gallery-thumbnail-box.ngg-17-columns,
161
+ .ngg-gallery-thumbnail-box.ngg-18-columns,
162
+ .ngg-gallery-thumbnail-box.ngg-19-columns,
163
+ .ngg-gallery-thumbnail-box.ngg-29-columns {
164
+ width: 25%;
165
+ }
166
+ }
167
+
168
+ @media (max-width: 600px) {
169
+ .ngg-gallery-thumbnail-box.ngg-4-columns,
170
+ .ngg-gallery-thumbnail-box.ngg-5-columns,
171
+ .ngg-gallery-thumbnail-box.ngg-6-columns,
172
+ .ngg-gallery-thumbnail-box.ngg-7-columns,
173
+ .ngg-gallery-thumbnail-box.ngg-8-columns,
174
+ .ngg-gallery-thumbnail-box.ngg-9-columns,
175
+ .ngg-gallery-thumbnail-box.ngg-10-columns,
176
+ .ngg-gallery-thumbnail-box.ngg-11-columns,
177
+ .ngg-gallery-thumbnail-box.ngg-12-columns,
178
+ .ngg-gallery-thumbnail-box.ngg-13-columns,
179
+ .ngg-gallery-thumbnail-box.ngg-14-columns,
180
+ .ngg-gallery-thumbnail-box.ngg-15-columns,
181
+ .ngg-gallery-thumbnail-box.ngg-16-columns,
182
+ .ngg-gallery-thumbnail-box.ngg-17-columns,
183
+ .ngg-gallery-thumbnail-box.ngg-18-columns,
184
+ .ngg-gallery-thumbnail-box.ngg-19-columns,
185
+ .ngg-gallery-thumbnail-box.ngg-29-columns {
186
+ width: 33.33333%;
187
+ }
188
+ }
189
+
190
+ @media (max-width: 400px) {
191
+ .ngg-gallery-thumbnail-box.ngg-3-columns,
192
+ .ngg-gallery-thumbnail-box.ngg-4-columns,
193
+ .ngg-gallery-thumbnail-box.ngg-5-columns,
194
+ .ngg-gallery-thumbnail-box.ngg-6-columns,
195
+ .ngg-gallery-thumbnail-box.ngg-7-columns,
196
+ .ngg-gallery-thumbnail-box.ngg-8-columns,
197
+ .ngg-gallery-thumbnail-box.ngg-9-columns,
198
+ .ngg-gallery-thumbnail-box.ngg-10-columns,
199
+ .ngg-gallery-thumbnail-box.ngg-11-columns,
200
+ .ngg-gallery-thumbnail-box.ngg-12-columns,
201
+ .ngg-gallery-thumbnail-box.ngg-13-columns,
202
+ .ngg-gallery-thumbnail-box.ngg-14-columns,
203
+ .ngg-gallery-thumbnail-box.ngg-15-columns,
204
+ .ngg-gallery-thumbnail-box.ngg-16-columns,
205
+ .ngg-gallery-thumbnail-box.ngg-17-columns,
206
+ .ngg-gallery-thumbnail-box.ngg-18-columns,
207
+ .ngg-gallery-thumbnail-box.ngg-19-columns,
208
+ .ngg-gallery-thumbnail-box.ngg-29-columns {
209
+ width: 50%;
210
+ }
211
+ }
212
+
213
+ /* ----------- Styling for Basic Thumbnail Simple Template September 2018 -----------*/
214
+
215
+ .ngg-galleryoverview.default-view {
216
+ text-align: center;
217
+ font-size: 0 !important;
218
+ letter-spacing: 0 !important;
219
+ }
220
+
221
+ .ngg-galleryoverview.default-view .ngg-gallery-thumbnail-box {
222
+ display:inline-block;
223
+ float: none;
224
+ vertical-align: middle;
225
+ }
226
+
227
+ .ngg-galleryoverview.default-view .ngg-gallery-thumbnail {
228
+ background-color: transparent;
229
+ border: none;
230
+ margin: 0;
231
+ margin-right: 0;
232
+ position: relative;
233
+ }
234
+
235
+ .ngg-galleryoverview.default-view .ngg-gallery-thumbnail a {
236
+ margin: 2px;
237
+ box-shadow: none;
238
+ }
239
+
240
+ .ngg-galleryoverview.default-view .ngg-gallery-thumbnail img:hover {
241
+ opacity: .8;
242
+ }
243
+
244
+ .ngg-galleryoverview.default-view .ngg-gallery-thumbnail img {
245
+ margin: 0 auto;
246
+ box-shadow: none;
247
+ cursor: pointer;
248
+ }
249
+
250
+ .ngg-galleryoverview.default-view .slideshowlink {
251
+ margin: 24px auto 0;
252
+ text-align: center;
253
+ text-transform: uppercase;
254
+ }
255
+
256
+ .ngg-galleryoverview.default-view .slideshowlink a {
257
+ font-size: 13px;
258
+ letter-spacing: .75px;
259
+ cursor: pointer;
260
+ text-decoration: none;
261
+ box-shadow: none;
262
+ border: none;
263
+ }
264
+
265
+ .ngg-galleryoverview.default-view .slideshowlink a:hover {
266
+ text-decoration: none !important;
267
+ box-shadow: none !important;
268
+ border: none !important;
269
+ }
270
+
271
  /* ----------- Gallery list (Carousel template) -------------*/
272
 
273
  .ngg-galleryoverview ul li:before {
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.min.css CHANGED
@@ -1 +1 @@
1
- .ngg-galleryoverview{overflow:hidden;margin-top:10px;width:100%;clear:both;display:block!important}.ngg-galleryoverview .desc{margin:0 10px 10px 0;padding:5px}.ngg-gallery-thumbnail-box{float:left;max-width:100%!important}.ngg-template-caption .ngg-gallery-thumbnail-box{margin-right:0}.ngg-gallery-thumbnail{text-align:center;max-width:100%!important;background-color:#fff;border:1px solid #a9a9a9;margin-right:5px;margin:5px}.ngg-template-caption .ngg-gallery-thumbnail{margin-right:0}.ngg-gallery-thumbnail a{display:block;margin:4px;border:none;box-shadow:none}.ngg-gallery-thumbnail img{display:block;margin:0;padding:0;position:relative;max-width:100%!important;height:auto}.ngg-gallery-thumbnail img:hover{background-color:#a9a9a9}.ngg-gallery-thumbnail span{font-size:90%;padding-left:5px;display:block}.ngg-galleryoverview ul li:before{content:''!important}.ngg-gallery-list{list-style-type:none;padding:0!important;text-indent:0!important}.ngg-galleryoverview div.pic img{width:100%;border:0;border-radius:0}.ngg-gallery-list li{float:left;margin:0 2px 0 2px!important;overflow:hidden}.ngg-gallery-list li a{border:1px solid #ccc;display:block;padding:2px}.ngg-gallery-list li.selected a{-moz-background-inline-policy:continuous;-moz-background-origin:padding;background:#000 none repeat scroll 0 0}.ngg-gallery-list li img{height:40px;width:40px}li.ngg-next,li.ngg-prev{height:40px;width:40px;font-size:3.5em}li.ngg-next a,li.ngg-prev a{padding-top:10px;border:none;text-decoration:none}
1
+ .ngg-galleryoverview{overflow:hidden;margin-top:10px;width:100%;clear:both;display:block!important}.ngg-galleryoverview .desc{margin:0 10px 10px 0;padding:5px}.ngg-gallery-thumbnail-box{float:left;max-width:100%!important}.ngg-template-caption .ngg-gallery-thumbnail-box{margin-right:0}.ngg-gallery-thumbnail{text-align:center;max-width:100%!important;background-color:#fff;border:1px solid #a9a9a9;margin-right:5px;margin:5px}.ngg-template-caption .ngg-gallery-thumbnail{margin-right:0}.ngg-gallery-thumbnail a{display:block;margin:4px;border:none;box-shadow:none}.ngg-gallery-thumbnail img{display:block;margin:0;padding:0;position:relative;max-width:100%!important;height:auto}.ngg-gallery-thumbnail span{font-size:90%;padding-left:5px;display:block}.ngg-galleryoverview{margin-top:40px;margin-bottom:50px;-webkit-transition:width 1s,height 1s,background-color 1s,-webkit-transform 1s;transition:width 1s,height 1s,background-color 1s,transform 1s;min-height:100px}.ngg-gallery-thumbnail-box.ngg-1-columns{width:100%;float:left!important}.ngg-gallery-thumbnail-box.ngg-2-columns{width:50%;float:left!important}.ngg-gallery-thumbnail-box.ngg-3-columns{width:33.33333%;float:left!important}.ngg-gallery-thumbnail-box.ngg-4-columns{width:25%;float:left!important}.ngg-gallery-thumbnail-box.ngg-5-columns{width:20%;float:left!important}.ngg-gallery-thumbnail-box.ngg-6-columns{width:16.6666%;float:left!important}.ngg-gallery-thumbnail-box.ngg-7-columns{width:14.2857%;float:left!important}.ngg-gallery-thumbnail-box.ngg-8-columns{width:12.5%;float:left!important}.ngg-gallery-thumbnail-box.ngg-9-columns{width:11.1111%;float:left!important}.ngg-gallery-thumbnail-box.ngg-10-columns{width:10%;float:left!important}.ngg-gallery-thumbnail-box.ngg-11-columns{width:9.09%;float:left!important}.ngg-gallery-thumbnail-box.ngg-12-columns{width:8.3333%;float:left!important}.ngg-gallery-thumbnail-box.ngg-13-columns{width:7.692%;float:left!important}.ngg-gallery-thumbnail-box.ngg-14-columns{width:7.142%;float:left!important}.ngg-gallery-thumbnail-box.ngg-15-columns{width:6.6666%;float:left!important}@media (max-width:800px){.ngg-gallery-thumbnail-box.ngg-10-columns,.ngg-gallery-thumbnail-box.ngg-11-columns,.ngg-gallery-thumbnail-box.ngg-12-columns,.ngg-gallery-thumbnail-box.ngg-13-columns,.ngg-gallery-thumbnail-box.ngg-14-columns,.ngg-gallery-thumbnail-box.ngg-15-columns,.ngg-gallery-thumbnail-box.ngg-16-columns,.ngg-gallery-thumbnail-box.ngg-17-columns,.ngg-gallery-thumbnail-box.ngg-18-columns,.ngg-gallery-thumbnail-box.ngg-19-columns,.ngg-gallery-thumbnail-box.ngg-29-columns,.ngg-gallery-thumbnail-box.ngg-5-columns,.ngg-gallery-thumbnail-box.ngg-6-columns,.ngg-gallery-thumbnail-box.ngg-7-columns,.ngg-gallery-thumbnail-box.ngg-8-columns,.ngg-gallery-thumbnail-box.ngg-9-columns{width:25%}}@media (max-width:600px){.ngg-gallery-thumbnail-box.ngg-10-columns,.ngg-gallery-thumbnail-box.ngg-11-columns,.ngg-gallery-thumbnail-box.ngg-12-columns,.ngg-gallery-thumbnail-box.ngg-13-columns,.ngg-gallery-thumbnail-box.ngg-14-columns,.ngg-gallery-thumbnail-box.ngg-15-columns,.ngg-gallery-thumbnail-box.ngg-16-columns,.ngg-gallery-thumbnail-box.ngg-17-columns,.ngg-gallery-thumbnail-box.ngg-18-columns,.ngg-gallery-thumbnail-box.ngg-19-columns,.ngg-gallery-thumbnail-box.ngg-29-columns,.ngg-gallery-thumbnail-box.ngg-4-columns,.ngg-gallery-thumbnail-box.ngg-5-columns,.ngg-gallery-thumbnail-box.ngg-6-columns,.ngg-gallery-thumbnail-box.ngg-7-columns,.ngg-gallery-thumbnail-box.ngg-8-columns,.ngg-gallery-thumbnail-box.ngg-9-columns{width:33.33333%}}@media (max-width:400px){.ngg-gallery-thumbnail-box.ngg-10-columns,.ngg-gallery-thumbnail-box.ngg-11-columns,.ngg-gallery-thumbnail-box.ngg-12-columns,.ngg-gallery-thumbnail-box.ngg-13-columns,.ngg-gallery-thumbnail-box.ngg-14-columns,.ngg-gallery-thumbnail-box.ngg-15-columns,.ngg-gallery-thumbnail-box.ngg-16-columns,.ngg-gallery-thumbnail-box.ngg-17-columns,.ngg-gallery-thumbnail-box.ngg-18-columns,.ngg-gallery-thumbnail-box.ngg-19-columns,.ngg-gallery-thumbnail-box.ngg-29-columns,.ngg-gallery-thumbnail-box.ngg-3-columns,.ngg-gallery-thumbnail-box.ngg-4-columns,.ngg-gallery-thumbnail-box.ngg-5-columns,.ngg-gallery-thumbnail-box.ngg-6-columns,.ngg-gallery-thumbnail-box.ngg-7-columns,.ngg-gallery-thumbnail-box.ngg-8-columns,.ngg-gallery-thumbnail-box.ngg-9-columns{width:50%}}.ngg-galleryoverview.default-view{text-align:center;font-size:0!important;letter-spacing:0!important}.ngg-galleryoverview.default-view .ngg-gallery-thumbnail-box{display:inline-block;float:none;vertical-align:middle}.ngg-galleryoverview.default-view .ngg-gallery-thumbnail{background-color:transparent;border:none;margin:0;margin-right:0;position:relative}.ngg-galleryoverview.default-view .ngg-gallery-thumbnail a{margin:2px;box-shadow:none}.ngg-galleryoverview.default-view .ngg-gallery-thumbnail img:hover{opacity:.8}.ngg-galleryoverview.default-view .ngg-gallery-thumbnail img{margin:0 auto;box-shadow:none;cursor:pointer}.ngg-galleryoverview.default-view .slideshowlink{margin:24px auto 0;text-align:center;text-transform:uppercase}.ngg-galleryoverview.default-view .slideshowlink a{font-size:13px;letter-spacing:.75px;cursor:pointer;text-decoration:none;box-shadow:none;border:none}.ngg-galleryoverview.default-view .slideshowlink a:hover{text-decoration:none!important;box-shadow:none!important;border:none!important}.ngg-galleryoverview ul li:before{content:''!important}.ngg-gallery-list{list-style-type:none;padding:0!important;text-indent:0!important}.ngg-galleryoverview div.pic img{width:100%;border:0;border-radius:0}.ngg-gallery-list li{float:left;margin:0 2px 0 2px!important;overflow:hidden}.ngg-gallery-list li a{border:1px solid #ccc;display:block;padding:2px}.ngg-gallery-list li.selected a{-moz-background-inline-policy:continuous;-moz-background-origin:padding;background:#000 none repeat scroll 0 0}.ngg-gallery-list li img{height:40px;width:40px}li.ngg-next,li.ngg-prev{height:40px;width:40px;font-size:3.5em}li.ngg-next a,li.ngg-prev a{padding-top:10px;border:none;text-decoration:none}
products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/index.php CHANGED
@@ -1,93 +1,58 @@
1
  <?php $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery); ?>
2
 
3
- <?php if ($show_thumbnail_link) { ?>
4
- <!-- Thumbnails Link -->
5
- <div class="slideshowlink">
6
- <a href='<?php echo esc_attr($thumbnail_link); ?>'><?php echo esc_html($thumbnail_link_text); ?></a>
7
- </div>
8
- <?php } ?>
9
-
10
- <div class="ngg-slideshow-image-list ngg-slideshow-nojs" id="<?php echo esc_attr($anchor); ?>-image-list">
11
- <?php
12
- $this->include_template('photocrati-nextgen_gallery_display#list/before');
13
- for ($i = 0; $i < count($images); $i++) {
14
- // Determine image dimensions
15
- $image = $images[$i];
16
- $image_size = $storage->get_original_dimensions($image);
17
- if ($image_size == null)
18
- {
19
- $image_size['width'] = $image->meta_data['width'];
20
- $image_size['height'] = $image->meta_data['height'];
21
- }
22
 
23
- // Determine whether an image is hidden or not
24
- if (isset($image->hidden) && $image->hidden) {
25
- $image->style = 'style="display: none;"';
26
- }
27
- else {
28
- $image->style = '';
29
- }
30
 
31
- // Determine image aspect ratio
32
- $image_ratio = $image_size['width'] / $image_size['height'];
33
- if ($image_ratio > $aspect_ratio)
34
- {
35
- if ($image_size['width'] > $gallery_width)
36
- {
37
- $image_size['width'] = $gallery_width;
38
- $image_size['height'] = (int) round($gallery_width / $image_ratio);
39
- }
40
- }
41
- else {
42
- if ($image_size['height'] > $gallery_height)
43
- {
44
- $image_size['width'] = (int) round($gallery_height * $image_ratio);
45
- $image_size['height'] = $gallery_height;
46
- }
47
- }
48
 
 
 
49
  $template_params = array(
50
  'index' => $i,
51
  'class' => 'ngg-gallery-slideshow-image'
52
  );
53
  $template_params = array_merge(get_defined_vars(), $template_params);
54
- $this->include_template('photocrati-nextgen_gallery_display#image/before', $template_params);
55
- ?>
56
- <img data-image-id='<?php echo esc_attr($image->pid); ?>'
57
- title="<?php echo esc_attr($image->description)?>"
58
- alt="<?php echo esc_attr($image->alttext)?>"
59
- src="<?php echo esc_attr($storage->get_image_url($image, 'full', TRUE))?>"
60
- width="<?php echo esc_attr($image_size['width'])?>"
61
- height="<?php echo esc_attr($image_size['height'])?>"/>
62
- <?php
63
- $this->include_template('photocrati-nextgen_gallery_display#image/after', $template_params);
64
- }
65
- $this->include_template('photocrati-nextgen_gallery_display#list/after');
66
- ?>
67
- </div>
68
- <?php $this->include_template('photocrati-nextgen_gallery_display#container/before'); ?>
69
- <div class="ngg-galleryoverview ngg-slideshow"
70
- id="<?php echo esc_attr($anchor); ?>"
71
- data-placeholder="<?php echo nextgen_esc_url($placeholder); ?>"
72
- style="max-width: <?php echo esc_attr($gallery_width); ?>px; max-height: <?php echo esc_attr($gallery_height); ?>px;">
73
- <div class="ngg-slideshow-loader"
74
- id="<?php echo esc_attr($anchor); ?>-loader"
75
- style="width: <?php echo esc_attr($gallery_width); ?>px; height: <?php echo esc_attr($gallery_height); ?>px;">
76
- <img src="<?php echo esc_attr(NGGALLERY_URLPATH); ?>images/loader.gif" alt=""/>
77
- </div>
 
 
 
 
 
78
  </div>
 
79
  <?php $this->include_template('photocrati-nextgen_gallery_display#container/after'); ?>
80
- <script type="text/javascript">
81
- jQuery('#<?php echo esc_attr($anchor); ?>-image-list').hide().removeClass('ngg-slideshow-nojs');
82
- jQuery(function($) {
83
- jQuery('#<?php echo esc_attr($anchor); ?>').nggShowSlideshow({
84
- id: '<?php echo esc_attr($displayed_gallery_id); ?>',
85
- fx: '<?php echo esc_attr($cycle_effect); ?>',
86
- width: <?php echo esc_attr($gallery_width); ?>,
87
- height: <?php echo esc_attr($gallery_height); ?>,
88
- domain: '<?php echo esc_attr(trailingslashit(home_url())); ?>',
89
- timeout: <?php echo esc_attr(intval($cycle_interval) * 1000); ?>
90
- });
91
- });
92
- </script>
93
- <?php $this->end_element(); ?>
1
  <?php $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery); ?>
2
 
3
+ <?php $this->include_template('photocrati-nextgen_gallery_display#container/before'); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
+ <div class="ngg-galleryoverview ngg-slideshow"
6
+ id="<?php echo esc_attr($anchor); ?>"
7
+ style="max-width: <?php echo esc_attr($gallery_width); ?>px; max-height: <?php echo esc_attr($gallery_height); ?>px;">
 
 
 
 
8
 
9
+ <?php for ($i = 0; $i < count($images); $i++) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
+ $image = $images[$i];
12
+ $image->style = 'style="height:' . esc_attr($gallery_height) . 'px"';
13
  $template_params = array(
14
  'index' => $i,
15
  'class' => 'ngg-gallery-slideshow-image'
16
  );
17
  $template_params = array_merge(get_defined_vars(), $template_params);
18
+
19
+ $this->include_template('photocrati-nextgen_gallery_display#image/before', $template_params);
20
+
21
+ ?>
22
+
23
+ <a href="<?php echo esc_attr($storage->get_image_url($image)); ?>"
24
+ title="<?php echo esc_attr($image->description); ?>"
25
+ data-src="<?php echo esc_attr($storage->get_image_url($image)); ?>"
26
+ data-thumbnail="<?php echo esc_attr($storage->get_image_url($image, 'thumb')); ?>"
27
+ data-image-id="<?php echo esc_attr($image->{$image->id_field}); ?>"
28
+ data-title="<?php echo esc_attr($image->alttext); ?>"
29
+ data-description="<?php echo esc_attr(stripslashes($image->description)); ?>"
30
+ <?php echo $effect_code ?>>
31
+
32
+ <img data-image-id='<?php echo esc_attr($image->pid); ?>'
33
+ title="<?php echo esc_attr($image->description)?>"
34
+ alt="<?php echo esc_attr($image->alttext)?>"
35
+ src="<?php echo esc_attr($storage->get_image_url($image, 'full', TRUE))?>"
36
+ style="max-height: <?php echo esc_attr($gallery_height -20); ?>px;"
37
+ />
38
+
39
+ </a>
40
+
41
+ <?php
42
+
43
+ $this->include_template('photocrati-nextgen_gallery_display#image/after', $template_params);
44
+
45
+ } ?>
46
+
47
  </div>
48
+
49
  <?php $this->include_template('photocrati-nextgen_gallery_display#container/after'); ?>
50
+
51
+ <?php if ($show_thumbnail_link) { ?>
52
+ <!-- Thumbnails Link -->
53
+ <div class="slideshowlink" style="max-width: <?php echo esc_attr($gallery_width); ?>px;">
54
+ <a href='<?php echo esc_attr($thumbnail_link); ?>'><?php echo esc_html($thumbnail_link_text); ?></a>
55
+ </div>
56
+ <?php } ?>
57
+
58
+ <?php $this->end_element(); ?>
 
 
 
 
 
products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/default-view.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery);
4
+
5
+ ?>
6
+ <div
7
+ class="ngg-galleryoverview default-view <?php if (!intval($ajax_pagination)) echo ' ngg-ajax-pagination-none'; ?>"
8
+ id="ngg-gallery-<?php echo esc_attr($displayed_gallery_id)?>-<?php echo esc_attr($current_page)?>">
9
+
10
+ <?php
11
+
12
+ $this->start_element('nextgen_gallery.image_list_container', 'container', $images);
13
+
14
+ ?>
15
+ <!-- Thumbnails -->
16
+ <?php for ($i=0; $i<count($images); $i++):
17
+ $image = $images[$i];
18
+ $thumb_size = $storage->get_image_dimensions($image, $thumbnail_size_name);
19
+ $style = isset($image->style) ? $image->style : null;
20
+ $column_class = 'ngg-' . $number_of_columns . '-columns';
21
+
22
+ if (isset($image->hidden) && $image->hidden) {
23
+ $style = 'style="display: none;"';
24
+ }
25
+ else {
26
+ $style = null;
27
+ }
28
+
29
+ $this->start_element('nextgen_gallery.image_panel', 'item', $image);
30
+
31
+ ?>
32
+ <div id="<?php echo esc_attr('ngg-image-' . $i) ?>" class="ngg-gallery-thumbnail-box <?php if ($number_of_columns > 0 && empty($show_all_in_lightbox)) { echo $column_class; } ?>" <?php if ($style) echo $style; ?>>
33
+ <?php
34
+
35
+ $this->start_element('nextgen_gallery.image', 'item', $image);
36
+
37
+ ?>
38
+ <div class="ngg-gallery-thumbnail">
39
+ <a href="<?php echo esc_attr($storage->get_image_url($image, 'full', TRUE))?>"
40
+ title="<?php echo esc_attr($image->description)?>"
41
+ data-src="<?php echo esc_attr($storage->get_image_url($image)); ?>"
42
+ data-thumbnail="<?php echo esc_attr($storage->get_image_url($image, 'thumb')); ?>"
43
+ data-image-id="<?php echo esc_attr($image->{$image->id_field}); ?>"
44
+ data-title="<?php echo esc_attr($image->alttext); ?>"
45
+ data-description="<?php echo esc_attr(stripslashes($image->description)); ?>"
46
+ data-image-slug="<?php echo esc_attr($image->image_slug); ?>"
47
+ <?php echo $effect_code ?>>
48
+ <img
49
+ title="<?php echo esc_attr($image->alttext)?>"
50
+ alt="<?php echo esc_attr($image->alttext)?>"
51
+ src="<?php echo esc_attr($storage->get_image_url($image, $thumbnail_size_name, TRUE))?>"
52
+ width="<?php echo esc_attr($thumb_size['width'])?>"
53
+ height="<?php echo esc_attr($thumb_size['height'])?>"
54
+ style="max-width:100%;"
55
+ />
56
+ </a>
57
+ </div>
58
+ <?php
59
+
60
+ $this->end_element();
61
+
62
+ ?>
63
+ </div>
64
+ <?php
65
+
66
+ $this->end_element();
67
+
68
+ ?>
69
+
70
+ <?php endfor ?>
71
+
72
+ <br style="clear: both" />
73
+
74
+ <?php
75
+
76
+ $this->end_element();
77
+
78
+ if (!empty($slideshow_link)): ?>
79
+ <div class="slideshowlink">
80
+ <a href='<?php echo esc_attr($slideshow_link) ?>'><?php echo esc_html($slideshow_link_text) ?></a>
81
+
82
+ </div>
83
+ <?php endif ?>
84
+
85
+ <?php if ($pagination): ?>
86
+ <!-- Pagination -->
87
+ <?php echo $pagination ?>
88
+ <?php else: ?>
89
+ <div class="ngg-clear"></div>
90
+ <?php endif ?>
91
+ </div>
92
+ <?php $this->end_element(); ?>
products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php CHANGED
@@ -26,7 +26,7 @@ class M_NextGen_Basic_ImageBrowser extends C_Base_Module
26
  'photocrati-nextgen_basic_imagebrowser',
27
  'NextGEN Basic ImageBrowser',
28
  'Provides the NextGEN Basic ImageBrowser Display Type',
29
- '3.0.0',
30
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
31
  'Imagely',
32
  'https://www.imagely.com'
26
  'photocrati-nextgen_basic_imagebrowser',
27
  'NextGEN Basic ImageBrowser',
28
  'Provides the NextGEN Basic ImageBrowser Display Type',
29
+ '3.0.0.4',
30
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
31
  'Imagely',
32
  'https://www.imagely.com'
products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/package.module.nextgen_basic_imagebrowser.php CHANGED
@@ -27,6 +27,9 @@ class A_NextGen_Basic_ImageBrowser_Controller extends Mixin
27
  */
28
  function index_action($displayed_gallery, $return = FALSE)
29
  {
 
 
 
30
  $picture_list = array();
31
  foreach ($displayed_gallery->get_included_entities() as $image) {
32
  $picture_list[$image->{$image->id_field}] = $image;
@@ -173,7 +176,7 @@ class A_NextGen_Basic_ImageBrowser_Form extends Mixin_Display_Type_Form
173
  */
174
  function _get_field_names()
175
  {
176
- return array('ajax_pagination', 'nextgen_basic_templates_template');
177
  }
178
  }
179
  /**
@@ -187,7 +190,10 @@ class A_NextGen_Basic_ImageBrowser_Mapper extends Mixin
187
  {
188
  $this->call_parent('set_defaults', $entity);
189
  if (isset($entity->name) && $entity->name == NGG_BASIC_IMAGEBROWSER) {
 
 
190
  $this->object->_set_default_value($entity, 'settings', 'template', '');
 
191
  // Part of the pro-modules
192
  $this->object->_set_default_value($entity, 'settings', 'ngg_triggers_display', 'never');
193
  }
27
  */
28
  function index_action($displayed_gallery, $return = FALSE)
29
  {
30
+ // We now hide option for triggers on this display type.
31
+ // This ensures they do not show based on past settings.
32
+ $displayed_gallery->display_settings['ngg_triggers_display'] = 'never';
33
  $picture_list = array();
34
  foreach ($displayed_gallery->get_included_entities() as $image) {
35
  $picture_list[$image->{$image->id_field}] = $image;
176
  */
177
  function _get_field_names()
178
  {
179
+ return array('ajax_pagination', 'display_view', 'nextgen_basic_templates_template');
180
  }
181
  }
182
  /**
190
  {
191
  $this->call_parent('set_defaults', $entity);
192
  if (isset($entity->name) && $entity->name == NGG_BASIC_IMAGEBROWSER) {
193
+ $default_template = isset($entity->settings["template"]) ? 'default' : 'default-view.php';
194
+ $this->object->_set_default_value($entity, 'settings', 'display_view', $default_template);
195
  $this->object->_set_default_value($entity, 'settings', 'template', '');
196
+ $this->object->_set_default_value($entity, 'settings', 'ajax_pagination', '1');
197
  // Part of the pro-modules
198
  $this->object->_set_default_value($entity, 'settings', 'ngg_triggers_display', 'never');
199
  }
products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/static/style.css CHANGED
@@ -1,6 +1,8 @@
1
  /* ----------- Image browser style -------------*/
2
 
3
  .ngg-imagebrowser {
 
 
4
  }
5
 
6
  .ngg-imagebrowser h3 {
@@ -17,6 +19,7 @@
17
  margin-bottom: 10px;
18
  border: 1px solid #A9A9A9;
19
  }
 
20
  .ngg-imagebrowser .pic a {
21
  display: block !important;
22
  font-size: 0px;
@@ -58,10 +61,9 @@
58
  }
59
 
60
 
61
- /* TEMPLATES: Imagebrowser Simple and Dark */
62
 
63
- .ngg-imagebrowser.ngg-imagebrowser-simple,
64
- .ngg-imagebrowser.ngg-imagebrowser-dark {
65
  padding: 0;
66
  margin: 40px 0 !important;
67
  text-align: center;
@@ -70,14 +72,7 @@
70
  box-sizing: border-box;
71
  }
72
 
73
- .ngg-imagebrowser.ngg-imagebrowser-dark {
74
- background: #000;
75
- padding: 0 20px;
76
- box-shadow: 0 0 2px 1px rgba(150,150,150,.1);
77
- }
78
-
79
- .ngg-imagebrowser.ngg-imagebrowser-simple h3,
80
- .ngg-imagebrowser.ngg-imagebrowser-dark h3 {
81
  font-size: 18px !important;
82
  margin: 0 !important;
83
  padding: 20px !important;
@@ -85,116 +80,92 @@
85
  font-weight: bold;
86
  }
87
 
88
- .ngg-imagebrowser.ngg-imagebrowser-dark h3 {
89
- color: #fff;
90
- }
91
-
92
- .ngg-imagebrowser.ngg-imagebrowser-simple img,
93
- .ngg-imagebrowser.ngg-imagebrowser-dark img {
94
  max-height: 500px;
95
  }
96
 
97
- .ngg-imagebrowser.ngg-imagebrowser-simple .pic,
98
- .ngg-imagebrowser.ngg-imagebrowser-simple .pic a,
99
- .ngg-imagebrowser.ngg-imagebrowser-dark .pic,
100
- .ngg-imagebrowser.ngg-imagebrowser-dark .pic a {
101
  margin: 0;
102
  border: none;
 
103
  }
104
 
105
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav,
106
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav {
107
  text-align: center;
108
  padding: 20px 20px 5px;
109
  }
110
 
111
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .back,
112
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .next,
113
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .back,
114
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .next {
115
  float: none;
116
  display: inline-block;
117
  border: none;
118
- background-color: rgba(0,0,0,.5);
119
- border-radius: 15px;
120
- width: 30px;
121
  height: 30px;
122
  padding: 0;
 
 
 
 
123
  }
124
 
125
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .fa,
126
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .fa {
 
 
 
 
127
  font-size: 16px;
128
  color: #fff;
129
  padding: 0 !important;
130
  line-height: 30px;
131
  }
132
 
133
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .fa-chevron-right,
134
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .fa-chevron-right {
135
  margin-left: 2px;
136
  }
137
 
138
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .fa-chevron-left,
139
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .fa-chevron-left {
140
  margin-right: 2px;
141
  }
142
 
143
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav a,
144
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav a:hover,
145
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav a:focus,
146
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav a,
147
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav a:hover,
148
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav a:focus {
149
  box-shadow: none;
150
  text-decoration: none;
151
  padding: 0;
 
152
  }
153
 
154
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .counter,
155
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .counter {
156
- margin: 20px 0 22px;
157
  font-size: 12px !important;
158
  color: rgba(150,150,150,.7);
 
159
  }
160
 
161
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .counter {
162
- color: #666;
163
- }
164
-
165
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-desc,
166
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc {
167
  text-align: center;
168
  padding: 0 50px;
169
  font-size: 14px;
170
  }
171
 
172
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc {
173
- color: #999;
174
- padding-bottom: 20px;
175
- }
176
-
177
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-desc p:first-of-type,
178
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc p:first-of-type {
179
  margin-top: 0;
180
  padding-top: 0;
181
  }
182
 
183
  @media (max-width: 800px) {
184
 
185
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav,
186
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav {
187
  text-align: center;
188
  padding: 20px 10px 5px;
189
  }
190
 
191
- .ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-desc,
192
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc {
193
  padding: 0;
194
  font-size: 12px;
195
  }
196
 
197
- .ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc {
198
- padding-bottom: 20px;
199
- }
200
  }
1
  /* ----------- Image browser style -------------*/
2
 
3
  .ngg-imagebrowser {
4
+ margin-top: 20px;
5
+ margin-bottom: 30px;
6
  }
7
 
8
  .ngg-imagebrowser h3 {
19
  margin-bottom: 10px;
20
  border: 1px solid #A9A9A9;
21
  }
22
+
23
  .ngg-imagebrowser .pic a {
24
  display: block !important;
25
  font-size: 0px;
61
  }
62
 
63
 
64
+ /* TEMPLATES: Updated Default Template */
65
 
66
+ .ngg-imagebrowser.default-view {
 
67
  padding: 0;
68
  margin: 40px 0 !important;
69
  text-align: center;
72
  box-sizing: border-box;
73
  }
74
 
75
+ .ngg-imagebrowser.default-view h3 {
 
 
 
 
 
 
 
76
  font-size: 18px !important;
77
  margin: 0 !important;
78
  padding: 20px !important;
80
  font-weight: bold;
81
  }
82
 
83
+ .ngg-imagebrowser.default-view img {
 
 
 
 
 
84
  max-height: 500px;
85
  }
86
 
87
+ .ngg-imagebrowser.default-view .pic,
88
+ .ngg-imagebrowser.default-view .pic a {
 
 
89
  margin: 0;
90
  border: none;
91
+ box-shadow: none;
92
  }
93
 
94
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav {
 
95
  text-align: center;
96
  padding: 20px 20px 5px;
97
  }
98
 
99
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .back,
100
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .next {
 
 
101
  float: none;
102
  display: inline-block;
103
  border: none;
 
 
 
104
  height: 30px;
105
  padding: 0;
106
+ width: 80px;
107
+ border-radius: 2px;
108
+ cursor: pointer;
109
+ background: #999;
110
  }
111
 
112
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .back:hover,
113
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .next:hover {
114
+ background: #666;
115
+ }
116
+
117
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .fa {
118
  font-size: 16px;
119
  color: #fff;
120
  padding: 0 !important;
121
  line-height: 30px;
122
  }
123
 
124
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .fa-chevron-right {
 
125
  margin-left: 2px;
126
  }
127
 
128
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .fa-chevron-left {
 
129
  margin-right: 2px;
130
  }
131
 
132
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav a,
133
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav a:hover,
134
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav a:focus {
 
 
 
135
  box-shadow: none;
136
  text-decoration: none;
137
  padding: 0;
138
+ border: none;
139
  }
140
 
141
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav .counter {
142
+ /*margin: 20px 0 22px;*/
 
143
  font-size: 12px !important;
144
  color: rgba(150,150,150,.7);
145
+ margin: 10px 0 6px;
146
  }
147
 
148
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-desc {
 
 
 
 
 
149
  text-align: center;
150
  padding: 0 50px;
151
  font-size: 14px;
152
  }
153
 
154
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-desc p:first-of-type {
 
 
 
 
 
 
155
  margin-top: 0;
156
  padding-top: 0;
157
  }
158
 
159
  @media (max-width: 800px) {
160
 
161
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-nav {
 
162
  text-align: center;
163
  padding: 20px 10px 5px;
164
  }
165
 
166
+ .ngg-imagebrowser.default-view .ngg-imagebrowser-desc {
 
167
  padding: 0;
168
  font-size: 12px;
169
  }
170
 
 
 
 
171
  }
products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/static/style.min.css CHANGED
@@ -1 +1 @@
1
- .ngg-imagebrowser h3{text-align:center}.ngg-imagebrowser-desc{clear:both}.ngg-imagebrowser .pic{max-width:100%;margin-top:10px;margin-bottom:10px;border:1px solid #a9a9a9}.ngg-imagebrowser .pic a{display:block!important;font-size:0;margin:5px;text-align:center}.ngg-imagebrowser img{max-width:100%;margin:0 auto;padding:0;border:none}.ngg-imagebrowser-nav{padding:5px}.ngg-imagebrowser-nav .back{float:left;border:1px solid #ddd;padding:3px 7px}.ngg-imagebrowser-nav .next{float:right;border:1px solid #ddd;padding:3px 7px}.ngg-imagebrowser-nav .counter{text-align:center;font-size:.9em!important}.exif-data{margin-left:auto!important;margin-right:auto!important}.ngg-imagebrowser.ngg-imagebrowser-dark,.ngg-imagebrowser.ngg-imagebrowser-simple{padding:0;margin:40px 0!important;text-align:center;max-width:1200px;margin:0 auto;box-sizing:border-box}.ngg-imagebrowser.ngg-imagebrowser-dark{background:#000;padding:0 20px;box-shadow:0 0 2px 1px rgba(150,150,150,.1)}.ngg-imagebrowser.ngg-imagebrowser-dark h3,.ngg-imagebrowser.ngg-imagebrowser-simple h3{font-size:18px!important;margin:0!important;padding:20px!important;text-align:center;font-weight:700}.ngg-imagebrowser.ngg-imagebrowser-dark h3{color:#fff}.ngg-imagebrowser.ngg-imagebrowser-dark img,.ngg-imagebrowser.ngg-imagebrowser-simple img{max-height:500px}.ngg-imagebrowser.ngg-imagebrowser-dark .pic,.ngg-imagebrowser.ngg-imagebrowser-dark .pic a,.ngg-imagebrowser.ngg-imagebrowser-simple .pic,.ngg-imagebrowser.ngg-imagebrowser-simple .pic a{margin:0;border:none}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav{text-align:center;padding:20px 20px 5px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .back,.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .next,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .back,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .next{float:none;display:inline-block;border:none;background-color:rgba(0,0,0,.5);border-radius:15px;width:30px;height:30px;padding:0}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .fa,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .fa{font-size:16px;color:#fff;padding:0!important;line-height:30px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .fa-chevron-right,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .fa-chevron-right{margin-left:2px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .fa-chevron-left,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .fa-chevron-left{margin-right:2px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav a,.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav a:focus,.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav a:hover,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav a,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav a:focus,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav a:hover{box-shadow:none;text-decoration:none;padding:0}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .counter,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav .counter{margin:20px 0 22px;font-size:12px!important;color:rgba(150,150,150,.7)}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav .counter{color:#666}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-desc{text-align:center;padding:0 50px;font-size:14px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc{color:#999;padding-bottom:20px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc p:first-of-type,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-desc p:first-of-type{margin-top:0;padding-top:0}@media (max-width:800px){.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-nav,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-nav{text-align:center;padding:20px 10px 5px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc,.ngg-imagebrowser.ngg-imagebrowser-simple .ngg-imagebrowser-desc{padding:0;font-size:12px}.ngg-imagebrowser.ngg-imagebrowser-dark .ngg-imagebrowser-desc{padding-bottom:20px}}
1
+ .ngg-imagebrowser{margin-top:20px;margin-bottom:30px}.ngg-imagebrowser h3{text-align:center}.ngg-imagebrowser-desc{clear:both}.ngg-imagebrowser .pic{max-width:100%;margin-top:10px;margin-bottom:10px;border:1px solid #a9a9a9}.ngg-imagebrowser .pic a{display:block!important;font-size:0;margin:5px;text-align:center}.ngg-imagebrowser img{max-width:100%;margin:0 auto;padding:0;border:none}.ngg-imagebrowser-nav{padding:5px}.ngg-imagebrowser-nav .back{float:left;border:1px solid #ddd;padding:3px 7px}.ngg-imagebrowser-nav .next{float:right;border:1px solid #ddd;padding:3px 7px}.ngg-imagebrowser-nav .counter{text-align:center;font-size:.9em!important}.exif-data{margin-left:auto!important;margin-right:auto!important}.ngg-imagebrowser.default-view{padding:0;margin:40px 0!important;text-align:center;max-width:1200px;margin:0 auto;box-sizing:border-box}.ngg-imagebrowser.default-view h3{font-size:18px!important;margin:0!important;padding:20px!important;text-align:center;font-weight:700}.ngg-imagebrowser.default-view img{max-height:500px}.ngg-imagebrowser.default-view .pic,.ngg-imagebrowser.default-view .pic a{margin:0;border:none;box-shadow:none}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav{text-align:center;padding:20px 20px 5px}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .back,.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .next{float:none;display:inline-block;border:none;height:30px;padding:0;width:80px;border-radius:2px;cursor:pointer;background:#999}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .back:hover,.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .next:hover{background:#666}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .fa{font-size:16px;color:#fff;padding:0!important;line-height:30px}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .fa-chevron-right{margin-left:2px}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .fa-chevron-left{margin-right:2px}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav a,.ngg-imagebrowser.default-view .ngg-imagebrowser-nav a:focus,.ngg-imagebrowser.default-view .ngg-imagebrowser-nav a:hover{box-shadow:none;text-decoration:none;padding:0;border:none}.ngg-imagebrowser.default-view .ngg-imagebrowser-nav .counter{font-size:12px!important;color:rgba(150,150,150,.7);margin:10px 0 6px}.ngg-imagebrowser.default-view .ngg-imagebrowser-desc{text-align:center;padding:0 50px;font-size:14px}.ngg-imagebrowser.default-view .ngg-imagebrowser-desc p:first-of-type{margin-top:0;padding-top:0}@media (max-width:800px){.ngg-imagebrowser.default-view .ngg-imagebrowser-nav{text-align:center;padding:20px 10px 5px}.ngg-imagebrowser.default-view .ngg-imagebrowser-desc{padding:0;font-size:12px}}
products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/{imagebrowser-simple-template.php → default-view.php} RENAMED
@@ -1,5 +1,5 @@
1
  <?php $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery); ?>
2
- <div class='ngg-imagebrowser ngg-imagebrowser-simple' id='<?php echo $anchor; ?>' data-nextgen-gallery-id="<?php echo $displayed_gallery->id(); ?>">
3
 
4
  <h3><?php echo esc_attr($image->alttext); ?></h3>
5
 
1
  <?php $this->start_element('nextgen_gallery.gallery_container', 'container', $displayed_gallery); ?>
2
+ <div class='ngg-imagebrowser default-view' id='<?php echo $anchor; ?>' data-nextgen-gallery-id="<?php echo $displayed_gallery->id(); ?>">
3
 
4
  <h3><?php echo esc_attr($image->alttext); ?></h3>
5
 
products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php CHANGED
@@ -24,7 +24,7 @@ class M_NextGen_Basic_Tagcloud extends C_Base_Module
24
  NGG_BASIC_TAGCLOUD,
25
  'NextGen Basic Tagcloud',
26
  'Provides a tagcloud for NextGEN Gallery',
27
- '3.0.0',
28
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
29
  'Imagely',
30
  'https://www.imagely.com'
24
  NGG_BASIC_TAGCLOUD,
25
  'NextGen Basic Tagcloud',
26
  'Provides a tagcloud for NextGEN Gallery',
27
+ '3.0.0.1',
28
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
29
  'Imagely',
30
  'https://www.imagely.com'
products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php CHANGED
@@ -218,7 +218,7 @@ class C_Taxonomy_Controller extends C_MVC_Controller
218
  // Respect the global display type setting
219
  $display_type = $mapper->find_by_name(NGG_BASIC_TAGCLOUD, TRUE);
220
  $display_type = !empty($display_type->settings['gallery_display_type']) ? $display_type->settings['gallery_display_type'] : NGG_BASIC_THUMBNAILS;
221
- return "[ngg_images source='tags' container_ids='{$tag}' slug='{$tag}' display_type='{$display_type}']";
222
  }
223
  /**
224
  * Determines if the current page is /ngg_tag/{*}
218
  // Respect the global display type setting
219
  $display_type = $mapper->find_by_name(NGG_BASIC_TAGCLOUD, TRUE);
220
  $display_type = !empty($display_type->settings['gallery_display_type']) ? $display_type->settings['gallery_display_type'] : NGG_BASIC_THUMBNAILS;
221
+ return "[ngg source='tags' container_ids='{$tag}' slug='{$tag}' display_type='{$display_type}']";
222
  }
223
  /**
224
  * Determines if the current page is /ngg_tag/{*}
products/photocrati_nextgen/modules/nextgen_basic_templates/module.nextgen_basic_templates.php CHANGED
@@ -22,7 +22,7 @@ class M_NextGen_Basic_Templates extends C_Base_Module
22
  'photocrati-nextgen_basic_templates',
23
  'NextGen Basic Templates',
24
  'Provides a NextGen-Legacy compatible thumbnail gallery for NextGEN Gallery',
25
- '3.0.0',
26
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
27
  'Imagely',
28
  'https://www.imagely.com'
22
  'photocrati-nextgen_basic_templates',
23
  'NextGen Basic Templates',
24
  'Provides a NextGen-Legacy compatible thumbnail gallery for NextGEN Gallery',
25
+ '3.0.0.2',
26
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
27
  'Imagely',
28
  'https://www.imagely.com'
products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php CHANGED
@@ -44,7 +44,7 @@ class A_NextGen_Basic_Template_Form extends Mixin
44
  }
45
  // add <default> template that acts the same way as having no template specified
46
  $templates['default'] = __('Default', 'nggallery');
47
- return $this->object->render_partial('photocrati-nextgen_basic_templates#nextgen_basic_templates_settings_template', array('display_type_name' => $display_type->name, 'template_label' => __('Template', 'nggallery'), 'template_text' => __('Use a legacy template when rendering (not recommended).', 'nggallery'), 'chosen_file' => $display_type->settings['template'], 'templates' => $templates), True);
48
  }
49
  /**
50
  * Retrieves listing of available templates
44
  }
45
  // add <default> template that acts the same way as having no template specified
46
  $templates['default'] = __('Default', 'nggallery');
47
+ return $this->object->render_partial('photocrati-nextgen_basic_templates#nextgen_basic_templates_settings_template', array('display_type_name' => $display_type->name, 'template_label' => __('Legacy (Old) Templates', 'nggallery'), 'template_text' => __('Use a legacy template when rendering (not recommended).', 'nggallery'), 'chosen_file' => $display_type->settings['template'], 'templates' => $templates), True);
48
  }
49
  /**
50
  * Retrieves listing of available templates
products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php CHANGED
@@ -23,7 +23,7 @@ class M_Gallery_Display extends C_Base_Module
23
  'photocrati-nextgen_gallery_display',
24
  'Gallery Display',
25
  'Provides the ability to display gallery of images',
26
- '3.0.0',
27
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
28
  'Imagely',
29
  'https://www.imagely.com'
@@ -32,7 +32,6 @@ class M_Gallery_Display extends C_Base_Module
32
  C_Photocrati_Installer::add_handler($this->module_id, 'C_Display_Type_Installer');
33
  }
34
 
35
-
36
  /**
37
  * Register utilities required for this module
38
  */
@@ -110,6 +109,7 @@ class M_Gallery_Display extends C_Base_Module
110
  {
111
  if (!is_admin() && apply_filters('ngg_load_frontend_logic', TRUE, $this->module_id))
112
  {
 
113
  C_NextGen_Shortcode_Manager::add('ngg_images', array(&$this, 'display_images'));
114
  add_action('wp_enqueue_scripts', array(&$this, 'no_resources_mode'), PHP_INT_MAX-1);
115
  add_filter('the_content', array($this, '_render_related_images'));
@@ -432,6 +432,13 @@ class M_Gallery_Display extends C_Base_Module
432
  FALSE,
433
  NGG_SCRIPT_VERSION
434
  );
 
 
 
 
 
 
 
435
  }
436
  }
437
 
@@ -512,10 +519,11 @@ class M_Gallery_Display extends C_Base_Module
512
 
513
  /* Create array of directories to scan */
514
  $dirs = array(
 
515
  'default' => C_Component_Registry::get_instance()->get_module_dir($display_type->name) . DIRECTORY_SEPARATOR . 'templates',
516
  'custom' => WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'ngg' . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR . $display_type->name . DIRECTORY_SEPARATOR . 'templates',
517
  );
518
-
519
  /* Apply filters so third party devs can add directories for their templates */
520
  $dirs = apply_filters('ngg_display_type_template_dirs', $dirs, $display_type);
521
  $dirs = apply_filters('ngg_' . $display_type->name . '_template_dirs', $dirs, $display_type);
23
  'photocrati-nextgen_gallery_display',
24
  'Gallery Display',
25
  'Provides the ability to display gallery of images',
26
+ '3.0.0.4',
27
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
28
  'Imagely',
29
  'https://www.imagely.com'
32
  C_Photocrati_Installer::add_handler($this->module_id, 'C_Display_Type_Installer');
33
  }
34
 
 
35
  /**
36
  * Register utilities required for this module
37
  */
109
  {
110
  if (!is_admin() && apply_filters('ngg_load_frontend_logic', TRUE, $this->module_id))
111
  {
112
+ C_NextGen_Shortcode_Manager::add('ngg', array(&$this, 'display_images'));
113
  C_NextGen_Shortcode_Manager::add('ngg_images', array(&$this, 'display_images'));
114
  add_action('wp_enqueue_scripts', array(&$this, 'no_resources_mode'), PHP_INT_MAX-1);
115
  add_filter('the_content', array($this, '_render_related_images'));
432
  FALSE,
433
  NGG_SCRIPT_VERSION
434
  );
435
+
436
+ wp_register_script(
437
+ 'ngg_waitforimages',
438
+ $router->get_static_url('photocrati-nextgen_gallery_display#jquery.waitforimages.js'),
439
+ array('jquery'),
440
+ NGG_SCRIPT_VERSION
441
+ );
442
  }
443
  }
444
 
519
 
520
  /* Create array of directories to scan */
521
  $dirs = array(
522
+ //'default' => C_Component_Registry::get_instance()->get_module_dir($display_type->module_id ? $display_type->module_id : $display_type->name) . DIRECTORY_SEPARATOR . 'templates',
523
  'default' => C_Component_Registry::get_instance()->get_module_dir($display_type->name) . DIRECTORY_SEPARATOR . 'templates',
524
  'custom' => WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'ngg' . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR . $display_type->name . DIRECTORY_SEPARATOR . 'templates',
525
  );
526
+
527
  /* Apply filters so third party devs can add directories for their templates */
528
  $dirs = apply_filters('ngg_display_type_template_dirs', $dirs, $display_type);
529
  $dirs = apply_filters('ngg_' . $display_type->name . '_template_dirs', $dirs, $display_type);
products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php CHANGED
@@ -520,11 +520,7 @@ class Mixin_Display_Type_Controller extends Mixin
520
  {
521
  if (isset($params['displayed_gallery'])) {
522
  if (isset($params['displayed_gallery']->display_settings)) {
523
- if (isset($params['displayed_gallery']->display_settings['display_type_view'])) {
524
- if ('default' !== $params['displayed_gallery']->display_settings['display_type_view']) {
525
- $template = $this->get_display_type_view_abspath($template, $params);
526
- }
527
- }
528
  }
529
  }
530
  return $this->call_parent('create_view', $template, $params, $context);
@@ -538,18 +534,51 @@ class Mixin_Display_Type_Controller extends Mixin
538
  function get_display_type_view_abspath($template, $params)
539
  {
540
  /* Identify display type and display_type_view */
 
541
  $display_type_name = $params['displayed_gallery']->display_type;
542
- $display_type_view = $params['displayed_gallery']->display_settings['display_type_view'];
543
- /* Fetch array of template directories */
544
- $dirs = M_Gallery_Display::get_display_type_view_dirs($display_type_name);
545
- /* Set abspath for template based on directory placeholder in display_type_view */
546
- $path = pathinfo($display_type_view);
547
- if ($path['dirname'] == ".") {
548
- $template = $dirs['default'] . DIRECTORY_SEPARATOR . $path['basename'];
549
- } else {
550
- foreach ($dirs as $dir_name => $dir) {
551
- if ($path['dirname'] == $dir_name) {
552
- $template = $dir . DIRECTORY_SEPARATOR . $path['basename'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
553
  }
554
  }
555
  }
@@ -1589,7 +1618,7 @@ class Mixin_Displayed_Gallery_Renderer extends Mixin
1589
  // Get the NextGEN settings to provide some defaults
1590
  $settings = C_NextGen_Settings::get_instance();
1591
  // Configure the arguments
1592
- $defaults = array('id' => NULL, 'source' => '', 'container_ids' => array(), 'gallery_ids' => array(), 'album_ids' => array(), 'tag_ids' => array(), 'display_type' => '', 'exclusions' => array(), 'order_by' => $settings->galSort, 'order_direction' => $settings->galSortOrder, 'image_ids' => array(), 'entity_ids' => array(), 'tagcloud' => FALSE, 'returns' => 'included', 'slug' => NULL, 'sortorder' => array());
1593
  $args = shortcode_atts($defaults, $params);
1594
  // Are we loading a specific displayed gallery that's persisted?
1595
  $mapper = C_Displayed_Gallery_Mapper::get_instance();
@@ -1627,6 +1656,10 @@ class Mixin_Displayed_Gallery_Renderer extends Mixin
1627
  $args['source'] = 'tags';
1628
  }
1629
  // Convert strings to arrays
 
 
 
 
1630
  if (!is_array($args['container_ids'])) {
1631
  $args['container_ids'] = preg_split("/,|\\|/", $args['container_ids']);
1632
  }
@@ -1639,6 +1672,16 @@ class Mixin_Displayed_Gallery_Renderer extends Mixin
1639
  if (!is_array($args['sortorder'])) {
1640
  $args['sortorder'] = preg_split("/,|\\|/", $args['sortorder']);
1641
  }
 
 
 
 
 
 
 
 
 
 
1642
  // Get the display settings
1643
  foreach (array_keys($defaults) as $key) {
1644
  unset($params[$key]);
@@ -1671,37 +1714,37 @@ class Mixin_Displayed_Gallery_Renderer extends Mixin
1671
  * How to use:
1672
  *
1673
  * To retrieve images from gallery 1 & 3, but exclude images 4 & 6:
1674
- * [ngg_images gallery_ids="1,3" exclusions="4,6" display_type="photocrati-nextgen_basic_thumbnails"]
1675
  *
1676
  * To retrieve images 1 & 2 from gallery 1:
1677
- * [ngg_images gallery_ids="1" image_ids="1,2" display_type="photocrati-nextgen_basic_thumbnails"]
1678
  *
1679
  * To retrieve images matching tags "landscapes" and "wedding shoots":
1680
- * [ngg_images tag_ids="landscapes,wedding shoots" display_type="photocrati-nextgen_basic_thumbnails"]
1681
  *
1682
  * To retrieve galleries from albums 1 & #, but exclude sub-album 1:
1683
- * [ngg_images album_ids="1,2" exclusions="a1" display_type="photocrati-nextgen_basic_compact_album"]
1684
  *
1685
  * To retrieve galleries from albums 1 & 2, but exclude gallery 1:
1686
- * [ngg_images album_ids="1,2" exclusions="1" display_type="photocrati-nextgen_basic_compact_album"]
1687
  *
1688
  * To retrieve image 2, 3, and 5 - independent of what container is used
1689
- * [ngg_images image_ids="2,3,5" display_type="photocrati-nextgen_basic_thumbnails"]
1690
  *
1691
  * To retrieve galleries 3 & 5, custom sorted, in album view
1692
- * [ngg_images source="albums" gallery_ids="3,5" display_type="photocrati-nextgen_basic_compact_album"]
1693
  *
1694
  * To retrieve recent images, sorted by alt/title text
1695
- * [ngg_images source="recent" order_by="alttext" display_type="photocrati-nextgen_basic_thumbnails"]
1696
  *
1697
  * To retrieve random image
1698
- * [ngg_images source="random" display_type="photocrati-nextgen_basic_thumbnails"]
1699
  *
1700
  * To retrieve a single image
1701
- * [ngg_images image_ids='8' display_type='photocrati-nextgen_basic_singlepic']
1702
  *
1703
  * To retrieve a tag cloud
1704
- * [ngg_images tagcloud=yes display_type='photocrati-nextgen_basic_tagcloud']
1705
  */
1706
  function display_images($params, $inner_content = NULL, $mode = NULL)
1707
  {
@@ -1739,6 +1782,22 @@ class Mixin_Displayed_Gallery_Renderer extends Mixin
1739
  }
1740
  return $retval;
1741
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1742
  /**
1743
  * Renders a displayed gallery on the frontend
1744
  * @param C_Displayed_Gallery|stdClass $displayed_gallery
@@ -1800,7 +1859,7 @@ class Mixin_Displayed_Gallery_Renderer extends Mixin
1800
  $retval .= $this->debug_msg("Lookup!");
1801
  // Some settings affect display types
1802
  $settings = C_NextGen_Settings::get_instance();
1803
- $key_params = apply_filters('ngg_displayed_gallery_cache_params', array($displayed_gallery->get_entity(), $url, $mode, $settings->activateTags, $settings->appendType, $settings->maxImages, $settings->thumbEffect, $settings->thumbCode, $settings->galSort, $settings->galSortDir));
1804
  // Any displayed gallery links on the home page will need to be regenerated if the permalink structure
1805
  // changes
1806
  if (is_home() or is_front_page()) {
@@ -2449,6 +2508,15 @@ class Mixin_Display_Type_Form extends Mixin
2449
  $everything = $override_field . $quality_field . $crop_field . $watermark_field;
2450
  return $everything;
2451
  }
 
 
 
 
 
 
 
 
 
2452
  /**
2453
  * Renders a field for selecting a template
2454
  *
@@ -2458,7 +2526,7 @@ class Mixin_Display_Type_Form extends Mixin
2458
  function _render_display_type_view_field($display_type)
2459
  {
2460
  $display_type_views = $this->get_available_display_type_views($display_type);
2461
- return $this->object->_render_select_field($display_type, 'display_type_view', __('Select Template', 'nggallery'), $display_type_views, $display_type->settings['display_type_view'], '', FALSE);
2462
  }
2463
  /**
2464
  * Gets available templates
@@ -2469,7 +2537,11 @@ class Mixin_Display_Type_Form extends Mixin
2469
  function get_available_display_type_views($display_type)
2470
  {
2471
  /* Set up templates array */
2472
- $views = array('default' => __('Default Template', 'nggallery'));
 
 
 
 
2473
  /* Fetch array of directories to scan */
2474
  $dirs = M_Gallery_Display::get_display_type_view_dirs($display_type);
2475
  /* Populate the views array by scanning each directory for relevant templates */
@@ -2480,7 +2552,7 @@ class Mixin_Display_Type_Form extends Mixin
2480
  }
2481
  /* Scan for template files and create array */
2482
  $files = scandir($dir);
2483
- $template_files = preg_grep('/^.+\\-template.php$/i', $files);
2484
  $template_files = $template_files ? array_combine($template_files, $template_files) : array();
2485
  /* For custom templates only, append directory name placeholder */
2486
  foreach ($template_files as $key => $value) {
520
  {
521
  if (isset($params['displayed_gallery'])) {
522
  if (isset($params['displayed_gallery']->display_settings)) {
523
+ $template = $this->get_display_type_view_abspath($template, $params);
 
 
 
 
524
  }
525
  }
526
  return $this->call_parent('create_view', $template, $params, $context);
534
  function get_display_type_view_abspath($template, $params)
535
  {
536
  /* Identify display type and display_type_view */
537
+ $displayed_gallery = $params['displayed_gallery'];
538
  $display_type_name = $params['displayed_gallery']->display_type;
539
+ $display_settings = $displayed_gallery->display_settings;
540
+ $display_type_view = NULL;
541
+ if (isset($display_settings['display_type_view'])) {
542
+ $display_type_view = $display_settings['display_type_view'];
543
+ }
544
+ if (isset($display_settings['display_view'])) {
545
+ $display_type_view = $display_settings['display_view'];
546
+ }
547
+ if ($display_type_view && $display_type_view != 'default') {
548
+ /*
549
+ * A display type view or display template value looks like this:
550
+ *
551
+ * "default"
552
+ * "imagebrowser-dark-template.php" ("default" category is implicit)
553
+ * "custom/customized-template.php" ("custom" category is explicit)
554
+ *
555
+ * Templates can be found in multiple directories, and each directory is given
556
+ * a key, which is used to distinguish it's "category".
557
+ */
558
+ $fs = C_Fs::get_instance();
559
+ /* Fetch array of template directories */
560
+ $dirs = M_Gallery_Display::get_display_type_view_dirs($display_type_name);
561
+ // If the view starts with a slash, we assume that a filename has been given
562
+ if (strpos($display_type_view, DIRECTORY_SEPARATOR) === 0) {
563
+ if (@file_exists($display_type_view)) {
564
+ $template = $display_type_view;
565
+ }
566
+ } else {
567
+ // Add the missing "default" category name prefix to the template to make it
568
+ // more consistent to evaluate
569
+ if (strpos($display_type_view, DIRECTORY_SEPARATOR) === FALSE) {
570
+ $display_type_view = join(DIRECTORY_SEPARATOR, array('default', $display_type_view));
571
+ }
572
+ foreach ($dirs as $category => $dir) {
573
+ $category = preg_quote($category . DIRECTORY_SEPARATOR);
574
+ if (preg_match("#^{$category}(.*)\$#", $display_type_view, $match)) {
575
+ $display_type_view = $match[1];
576
+ $template_abspath = $fs->join_paths($dir, $display_type_view);
577
+ if (@file_exists($template_abspath)) {
578
+ $template = $template_abspath;
579
+ break;
580
+ }
581
+ }
582
  }
583
  }
584
  }
1618
  // Get the NextGEN settings to provide some defaults
1619
  $settings = C_NextGen_Settings::get_instance();
1620
  // Configure the arguments
1621
+ $defaults = array('id' => NULL, 'ids' => NULL, 'source' => '', 'src' => '', 'container_ids' => array(), 'gallery_ids' => array(), 'album_ids' => array(), 'tag_ids' => array(), 'display_type' => '', 'display' => '', 'exclusions' => array(), 'order_by' => $settings->galSort, 'order_direction' => $settings->galSortOrder, 'image_ids' => array(), 'entity_ids' => array(), 'tagcloud' => FALSE, 'returns' => 'included', 'slug' => NULL, 'sortorder' => array());
1622
  $args = shortcode_atts($defaults, $params);
1623
  // Are we loading a specific displayed gallery that's persisted?
1624
  $mapper = C_Displayed_Gallery_Mapper::get_instance();
1656
  $args['source'] = 'tags';
1657
  }
1658
  // Convert strings to arrays
1659
+ if (!empty($args['ids']) && !is_array($args['ids'])) {
1660
+ $args['container_ids'] = preg_split("/,|\\|/", $args['ids']);
1661
+ unset($args['ids']);
1662
+ }
1663
  if (!is_array($args['container_ids'])) {
1664
  $args['container_ids'] = preg_split("/,|\\|/", $args['container_ids']);
1665
  }
1672
  if (!is_array($args['sortorder'])) {
1673
  $args['sortorder'] = preg_split("/,|\\|/", $args['sortorder']);
1674
  }
1675
+ // 'src' is used for legibility
1676
+ if (!empty($args['src']) && empty($args['source'])) {
1677
+ $args['source'] = $args['src'];
1678
+ unset($args['src']);
1679
+ }
1680
+ // 'display' is used for legibility
1681
+ if (!empty($args['display']) && empty($args['display_type'])) {
1682
+ $args['display_type'] = $args['display'];
1683
+ unset($args['display']);
1684
+ }
1685
  // Get the display settings
1686
  foreach (array_keys($defaults) as $key) {
1687
  unset($params[$key]);
1714
  * How to use:
1715
  *
1716
  * To retrieve images from gallery 1 & 3, but exclude images 4 & 6:
1717
+ * [ngg gallery_ids="1,3" exclusions="4,6" display_type="photocrati-nextgen_basic_thumbnails"]
1718
  *
1719
  * To retrieve images 1 & 2 from gallery 1:
1720
+ * [ngg gallery_ids="1" image_ids="1,2" display_type="photocrati-nextgen_basic_thumbnails"]
1721
  *
1722
  * To retrieve images matching tags "landscapes" and "wedding shoots":
1723
+ * [ngg tag_ids="landscapes,wedding shoots" display_type="photocrati-nextgen_basic_thumbnails"]
1724
  *
1725
  * To retrieve galleries from albums 1 & #, but exclude sub-album 1:
1726
+ * [ngg album_ids="1,2" exclusions="a1" display_type="photocrati-nextgen_basic_compact_album"]
1727
  *
1728
  * To retrieve galleries from albums 1 & 2, but exclude gallery 1:
1729
+ * [ngg album_ids="1,2" exclusions="1" display_type="photocrati-nextgen_basic_compact_album"]
1730
  *
1731
  * To retrieve image 2, 3, and 5 - independent of what container is used
1732
+ * [ngg image_ids="2,3,5" display_type="photocrati-nextgen_basic_thumbnails"]
1733
  *
1734
  * To retrieve galleries 3 & 5, custom sorted, in album view
1735
+ * [ngg source="albums" gallery_ids="3,5" display_type="photocrati-nextgen_basic_compact_album"]
1736
  *
1737
  * To retrieve recent images, sorted by alt/title text
1738
+ * [ngg source="recent" order_by="alttext" display_type="photocrati-nextgen_basic_thumbnails"]
1739
  *
1740
  * To retrieve random image
1741
+ * [ngg source="random" display_type="photocrati-nextgen_basic_thumbnails"]
1742
  *
1743
  * To retrieve a single image
1744
+ * [ngg image_ids='8' display_type='photocrati-nextgen_basic_singlepic']
1745
  *
1746
  * To retrieve a tag cloud
1747
+ * [ngg tagcloud=yes display_type='photocrati-nextgen_basic_tagcloud']
1748
  */
1749
  function display_images($params, $inner_content = NULL, $mode = NULL)
1750
  {
1782
  }
1783
  return $retval;
1784
  }
1785
+ /**
1786
+ * Gets the display type version associated with the displayed gallery
1787
+ * @param $display_type
1788
+ *
1789
+ * @return string
1790
+ */
1791
+ function get_display_type_version($display_type)
1792
+ {
1793
+ $retval = NGG_PLUGIN_VERSION;
1794
+ $registry = C_Component_Registry::get_instance();
1795
+ $module = $registry->get_module(isset($display_type->module_id) ? $display_type->module_id : $display_type->name);
1796
+ if ($module) {
1797
+ $retval = $module->module_version;
1798
+ }
1799
+ return $retval;
1800
+ }
1801
  /**
1802
  * Renders a displayed gallery on the frontend
1803
  * @param C_Displayed_Gallery|stdClass $displayed_gallery
1859
  $retval .= $this->debug_msg("Lookup!");
1860
  // Some settings affect display types
1861
  $settings = C_NextGen_Settings::get_instance();
1862
+ $key_params = apply_filters('ngg_displayed_gallery_cache_params', array($displayed_gallery->get_entity(), $url, $mode, $settings->activateTags, $settings->appendType, $settings->maxImages, $settings->thumbEffect, $settings->thumbCode, $settings->galSort, $settings->galSortDir, $this->get_display_type_version($displayed_gallery->get_display_type())));
1863
  // Any displayed gallery links on the home page will need to be regenerated if the permalink structure
1864
  // changes
1865
  if (is_home() or is_front_page()) {
2508
  $everything = $override_field . $quality_field . $crop_field . $watermark_field;
2509
  return $everything;
2510
  }
2511
+ function _render_display_view_field($display_type)
2512
+ {
2513
+ $display_type_views = $this->get_available_display_type_views($display_type);
2514
+ $current_value = isset($display_type->settings['display_type_view']) ? $display_type->settings['display_type_view'] : '';
2515
+ if (isset($display_type->settings['display_view'])) {
2516
+ $current_value = $display_type->settings['display_view'];
2517
+ }
2518
+ return $this->object->_render_select_field($display_type, 'display_view', __('Select View', 'nggallery'), $display_type_views, $current_value, '', FALSE);
2519
+ }
2520
  /**
2521
  * Renders a field for selecting a template
2522
  *
2526
  function _render_display_type_view_field($display_type)
2527
  {
2528
  $display_type_views = $this->get_available_display_type_views($display_type);
2529
+ return $this->object->_render_select_field($display_type, 'display_type_view', __('Select View', 'nggallery'), $display_type_views, $display_type->settings['display_type_view'], '', FALSE);
2530
  }
2531
  /**
2532
  * Gets available templates
2537
  function get_available_display_type_views($display_type)
2538
  {
2539
  /* Set up templates array */
2540
+ if (strpos($display_type->name, 'basic') !== false) {
2541
+ $views = array('default' => __('Legacy', 'nggallery'));
2542
+ } else {
2543
+ $views = array('default' => __('Default', 'nggallery'));
2544
+ }
2545
  /* Fetch array of directories to scan */
2546
  $dirs = M_Gallery_Display::get_display_type_view_dirs($display_type);
2547
  /* Populate the views array by scanning each directory for relevant templates */
2552
  }
2553
  /* Scan for template files and create array */
2554
  $files = scandir($dir);
2555
+ $template_files = preg_grep('/^.+\\-(template|view).php$/i', $files);
2556
  $template_files = $template_files ? array_combine($template_files, $template_files) : array();
2557
  /* For custom templates only, append directory name placeholder */
2558
  foreach ($template_files as $key => $value) {
products/photocrati_nextgen/modules/nextgen_gallery_display/static/jquery.waitforimages.js ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! waitForImages jQuery Plugin - v1.4.1 - 2012-10-12
2
+ * https://github.com/alexanderdickson/waitForImages
3
+ * Copyright (c) 2012 Alex Dickson; Licensed MIT */
4
+
5
+ (function ($) {
6
+ // Namespace all events.
7
+ var eventNamespace = 'waitForImages';
8
+
9
+ // CSS properties which contain references to images.
10
+ $.waitForImages = {
11
+ hasImageProperties: ['backgroundImage', 'listStyleImage', 'borderImage', 'borderCornerImage']
12
+ };
13
+
14
+ // Custom selector to find `img` elements that have a valid `src` attribute and have not already loaded.
15
+ $.expr[':'].uncached = function (obj) {
16
+ // Ensure we are dealing with an `img` element with a valid `src` attribute.
17
+ if (!$(obj).is('img[src!=""]')) {
18
+ return false;
19
+ }
20
+
21
+ // Firefox's `complete` property will always be `true` even if the image has not been downloaded.
22
+ // Doing it this way works in Firefox.
23
+ var img = new Image();
24
+ img.src = obj.src;
25
+ return !img.complete;
26
+ };
27
+
28
+ $.fn.waitForImages = function (finishedCallback, eachCallback, waitForAll) {
29
+
30
+ var allImgsLength = 0;
31
+ var allImgsLoaded = 0;
32
+
33
+ // Handle options object.
34
+ if ($.isPlainObject(arguments[0])) {
35
+ finishedCallback = arguments[0].finished;
36
+ eachCallback = arguments[0].each;
37
+ waitForAll = arguments[0].waitForAll;
38
+ }
39
+
40
+ // Handle missing callbacks.
41
+ finishedCallback = finishedCallback || $.noop;
42
+ eachCallback = eachCallback || $.noop;
43
+
44
+ // Convert waitForAll to Boolean
45
+ waitForAll = !! waitForAll;
46
+
47
+ // Ensure callbacks are functions.
48
+ if (!$.isFunction(finishedCallback) || !$.isFunction(eachCallback)) {
49
+ throw new TypeError('An invalid callback was supplied.');
50
+ }
51
+
52
+ return this.each(function () {
53
+ // Build a list of all imgs, dependent on what images will be considered.
54
+ var obj = $(this);
55
+ var allImgs = [];
56
+ // CSS properties which may contain an image.
57
+ var hasImgProperties = $.waitForImages.hasImageProperties || [];
58
+ // To match `url()` references.
59
+ // Spec: http://www.w3.org/TR/CSS2/syndata.html#value-def-uri
60
+ var matchUrl = /url\(\s*(['"]?)(.*?)\1\s*\)/g;
61
+
62
+ if (waitForAll) {
63
+
64
+ // Get all elements (including the original), as any one of them could have a background image.
65
+ obj.find('*').andSelf().each(function () {
66
+ var element = $(this);
67
+
68
+ // If an `img` element, add it. But keep iterating in case it has a background image too.
69
+ if (element.is('img:uncached')) {
70
+ allImgs.push({
71
+ src: element.attr('src'),
72
+ element: element[0]
73
+ });
74
+ }
75
+
76
+ $.each(hasImgProperties, function (i, property) {
77
+ var propertyValue = element.css(property);
78
+ var match;
79
+
80
+ // If it doesn't contain this property, skip.
81
+ if (!propertyValue) {
82
+ return true;
83
+ }
84
+
85
+ // Get all url() of this element.
86
+ while (match = matchUrl.exec(propertyValue)) {
87
+ allImgs.push({
88
+ src: match[2],
89
+ element: element[0]
90
+ });
91
+ }
92
+ });
93
+ });
94
+ } else {
95
+ // For images only, the task is simpler.
96
+ obj.find('img:uncached')
97
+ .each(function () {
98
+ allImgs.push({
99
+ src: this.src,
100
+ element: this
101
+ });
102
+ });
103
+ }
104
+
105
+ allImgsLength = allImgs.length;
106
+ allImgsLoaded = 0;
107
+
108
+ // If no images found, don't bother.
109
+ if (allImgsLength === 0) {
110
+ finishedCallback.call(obj[0]);
111
+ }
112
+
113
+ $.each(allImgs, function (i, img) {
114
+
115
+ var image = new Image();
116
+
117
+ // Handle the image loading and error with the same callback.
118
+ $(image).bind('load.' + eventNamespace + ' error.' + eventNamespace, function (event) {
119
+ allImgsLoaded++;
120
+
121
+ // If an error occurred with loading the image, set the third argument accordingly.
122
+ eachCallback.call(img.element, allImgsLoaded, allImgsLength, event.type == 'load');
123
+
124
+ if (allImgsLoaded == allImgsLength) {
125
+ finishedCallback.call(obj[0]);
126
+ return false;
127
+ }
128
+
129
+ });
130
+
131
+ image.src = img.src;
132
+ });
133
+ });
134
+ };
135
+ }(jQuery));
products/photocrati_nextgen/modules/nextgen_gallery_display/static/jquery.waitforimages.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]},e.expr[":"].uncached=function(r){if(!e(r).is('img[src!=""]'))return!1;var n=new Image;return n.src=r.src,!n.complete},e.fn.waitForImages=function(r,n,a){var i=0,c=0;if(e.isPlainObject(arguments[0])&&(r=arguments[0].finished,n=arguments[0].each,a=arguments[0].waitForAll),r=r||e.noop,n=n||e.noop,a=!!a,!e.isFunction(r)||!e.isFunction(n))throw new TypeError("An invalid callback was supplied.");return this.each(function(){var t=e(this),s=[],o=e.waitForImages.hasImageProperties||[],u=/url\(\s*(['"]?)(.*?)\1\s*\)/g;a?t.find("*").andSelf().each(function(){var r=e(this);r.is("img:uncached")&&s.push({src:r.attr("src"),element:r[0]}),e.each(o,function(e,n){var a,i=r.css(n);if(!i)return!0;for(;a=u.exec(i);)s.push({src:a[2],element:r[0]})})}):t.find("img:uncached").each(function(){s.push({src:this.src,element:this})}),i=s.length,c=0,0===i&&r.call(t[0]),e.each(s,function(a,s){var o=new Image;e(o).bind("load.waitForImages error.waitForImages",function(e){if(c++,n.call(s.element,c,i,"load"==e.type),c==i)return r.call(t[0]),!1}),o.src=s.src})})}}(jQuery);
products/photocrati_nextgen/modules/nextgen_pagination/module.nextgen_pagination.php CHANGED
@@ -19,7 +19,7 @@ class M_NextGen_Pagination extends C_Base_Module
19
  'photocrati-nextgen_pagination',
20
  "Pagination",
21
  "Provides pagination for display types",
22
- '3.0.0',
23
  "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/",
24
  "Imagely",
25
  "https://www.imagely.com"
19
  'photocrati-nextgen_pagination',
20
  "Pagination",
21
  "Provides pagination for display types",
22
+ '3.0.0.2',
23
  "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/",
24
  "Imagely",
25
  "https://www.imagely.com"
products/photocrati_nextgen/modules/nextgen_pagination/static/style.css CHANGED
@@ -3,39 +3,61 @@
3
  font-size: 0.9em !important;
4
  clear: both !important;
5
  display: block !important;
6
- padding-top: 15px;
7
  padding-bottom: 3px;
8
  text-align: center;
9
  }
10
 
11
- .ngg-navigation span {
12
- font-weight: bold;
13
- margin: 0pt 6px;
14
- }
15
-
16
  .ngg-navigation a.page-numbers,
17
  .ngg-navigation a.next,
18
  .ngg-navigation a.prev,
19
  .ngg-navigation span.page-numbers,
20
  .ngg-navigation span.next,
21
- .ngg-navigation span.prev {
22
- border: 1px solid #DDDDDD;
 
 
 
 
 
 
 
 
23
  margin-right: 3px;
24
- padding: 3px 8px;
25
  text-decoration: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  }
27
 
28
  .ngg-navigation a.page-numbers:hover,
29
- .ngg-navigation a.next:hover,
30
- .ngg-navigation a.prev:hover,
31
  .ngg-navigation span.page-numbers:hover,
32
- .ngg-navigation span.next:hover,
33
- .ngg-navigation span.prev:hover {
34
- background-color: #0066CC;
35
  color: #FFFFFF !important;
36
  text-decoration: none !important;
37
  }
38
 
 
 
 
 
 
 
 
39
  .ngg-clear {
40
  clear: both;
41
  }
3
  font-size: 0.9em !important;
4
  clear: both !important;
5
  display: block !important;
6
+ padding-top: 24px;
7
  padding-bottom: 3px;
8
  text-align: center;
9
  }
10
 
 
 
 
 
 
11
  .ngg-navigation a.page-numbers,
12
  .ngg-navigation a.next,
13
  .ngg-navigation a.prev,
14
  .ngg-navigation span.page-numbers,
15
  .ngg-navigation span.next,
16
+ .ngg-navigation span.prev,
17
+ .ngg-navigation span.current {
18
+ background: #BBB;
19
+ border: none;
20
+ border-radius: 2px;
21
+ box-shadow: none;
22
+ color: #fff;
23
+ display:inline;
24
+ font-size: 14px;
25
+ font-weight: bold;
26
  margin-right: 3px;
27
+ padding: 4px 8px;
28
  text-decoration: none;
29
+ cursor: pointer !important;
30
+ }
31
+
32
+ .ngg-navigation span.current {
33
+ background: #666;
34
+ }
35
+
36
+ .ngg-navigation a.next,
37
+ .ngg-navigation a.prev,
38
+ .ngg-navigation span.next,
39
+ .ngg-navigation span.prev {
40
+ background: transparent;
41
+ color: #BBB;
42
+ padding: 2px;
43
+ border: none;
44
  }
45
 
46
  .ngg-navigation a.page-numbers:hover,
 
 
47
  .ngg-navigation span.page-numbers:hover,
48
+ .ngg-navigation span.current:hover {
49
+ background: #666;
 
50
  color: #FFFFFF !important;
51
  text-decoration: none !important;
52
  }
53
 
54
+ .ngg-navigation a.next:hover,
55
+ .ngg-navigation a.prev:hover,
56
+ .ngg-navigation span.next,
57
+ .ngg-navigation span.prev {
58
+ color: #666 !important;
59
+ }
60
+
61
  .ngg-clear {
62
  clear: both;
63
  }
products/photocrati_nextgen/modules/nextgen_pagination/static/style.min.css CHANGED
@@ -1 +1 @@
1
- .ngg-navigation{font-size:.9em!important;clear:both!important;display:block!important;padding-top:15px;padding-bottom:3px;text-align:center}.ngg-navigation span{font-weight:700;margin:0 6px}.ngg-navigation a.next,.ngg-navigation a.page-numbers,.ngg-navigation a.prev,.ngg-navigation span.next,.ngg-navigation span.page-numbers,.ngg-navigation span.prev{border:1px solid #ddd;margin-right:3px;padding:3px 8px;text-decoration:none}.ngg-navigation a.next:hover,.ngg-navigation a.page-numbers:hover,.ngg-navigation a.prev:hover,.ngg-navigation span.next:hover,.ngg-navigation span.page-numbers:hover,.ngg-navigation span.prev:hover{background-color:#06c;color:#fff!important;text-decoration:none!important}.ngg-clear{clear:both}
1
+ .ngg-navigation{font-size:.9em!important;clear:both!important;display:block!important;padding-top:24px;padding-bottom:3px;text-align:center}.ngg-navigation a.next,.ngg-navigation a.page-numbers,.ngg-navigation a.prev,.ngg-navigation span.current,.ngg-navigation span.next,.ngg-navigation span.page-numbers,.ngg-navigation span.prev{background:#bbb;border:none;border-radius:2px;box-shadow:none;color:#fff;display:inline;font-size:14px;font-weight:700;margin-right:3px;padding:4px 8px;text-decoration:none;cursor:pointer!important}.ngg-navigation span.current{background:#666}.ngg-navigation a.next,.ngg-navigation a.prev,.ngg-navigation span.next,.ngg-navigation span.prev{background:0 0;color:#bbb;padding:2px;border:none}.ngg-navigation a.page-numbers:hover,.ngg-navigation span.current:hover,.ngg-navigation span.page-numbers:hover{background:#666;color:#fff!important;text-decoration:none!important}.ngg-navigation a.next:hover,.ngg-navigation a.prev:hover,.ngg-navigation span.next,.ngg-navigation span.prev{color:#666!important}.ngg-clear{clear:both}
products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php CHANGED
@@ -18,7 +18,7 @@ class M_NextGen_Settings extends C_Base_Module
18
  'photocrati-nextgen_settings',
19
  'NextGEN Gallery Settings',
20
  'Provides central management for NextGEN Gallery settings',
21
- '3.0.0',
22
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
23
  'Imagely',
24
  'https://www.imagely.com'
@@ -82,30 +82,30 @@ class C_NextGen_Settings_Installer
82
  'thumbquality' => 100, // Thumb Quality
83
 
84
  // Image Settings
85
- 'imgWidth' => 800, // Image Width
86
- 'imgHeight' => 600, // Image height
87
  'imgQuality' => 100, // Image Quality
88
  'imgBackup' => True, // Create a backup
89
- 'imgAutoResize' => False, // Resize after upload
90
 
91
  // Gallery Settings
92
- 'galImages' => '20', // Number of images per page
93
  'galPagedGalleries' => 0, // Number of galleries per page (in a album)
94
  'galColumns' => 0, // Number of columns for the gallery
95
- 'galShowSlide' => True, // Show slideshow
96
- 'galTextSlide' => __('[Show slideshow]', 'nggallery'), // Text for slideshow
97
- 'galTextGallery' => __('[Show thumbnails]', 'nggallery'), // Text for gallery
98
  'galShowOrder' => 'gallery', // Show order
99
  'galSort' => 'sortorder', // Sort order
100
  'galSortDir' => 'ASC', // Sort direction
101
  'galNoPages' => True, // use no subpages for gallery
102
  'galImgBrowser' => 0, // Show ImageBrowser => instead effect
103
  'galHiddenImg' => 0, // For paged galleries we can hide image
104
- 'galAjaxNav' => 0, // AJAX Navigation for Shutter effect
105
 
106
  // Thumbnail Effect
107
- 'thumbEffect' => 'fancybox', // select effect
108
- 'thumbCode' => 'class="ngg-fancybox" rel="%GALLERY_NAME%"',
109
  'thumbEffectContext' => 'nextgen_images', // select effect
110
 
111
  // Watermark settings
@@ -122,9 +122,9 @@ class C_NextGen_Settings_Installer
122
 
123
  // Image Rotator settings
124
  'slideFX' => 'fade',
125
- 'irWidth' => 600,
126
- 'irHeight' => 400,
127
- 'irRotatetime' => 10,
128
 
129
  // CSS Style
130
  'activateCSS' => 1, // activate the CSS file
18
  'photocrati-nextgen_settings',
19
  'NextGEN Gallery Settings',
20
  'Provides central management for NextGEN Gallery settings',
21
+ '3.0.0.2',
22
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
23
  'Imagely',
24
  'https://www.imagely.com'
82
  'thumbquality' => 100, // Thumb Quality
83
 
84
  // Image Settings
85
+ 'imgWidth' => 1800, // Image Width
86
+ 'imgHeight' => 1200, // Image height
87
  'imgQuality' => 100, // Image Quality
88
  'imgBackup' => True, // Create a backup
89
+ 'imgAutoResize' => True, // Resize after upload
90
 
91
  // Gallery Settings
92
+ 'galImages' => '24', // Number of images per page
93
  'galPagedGalleries' => 0, // Number of galleries per page (in a album)
94
  'galColumns' => 0, // Number of columns for the gallery
95
+ 'galShowSlide' => False, // Show slideshow
96
+ 'galTextSlide' => __('View Slideshow', 'nggallery'), // Text for slideshow
97
+ 'galTextGallery' => __('View Thumbnails', 'nggallery'), // Text for gallery
98
  'galShowOrder' => 'gallery', // Show order
99
  'galSort' => 'sortorder', // Sort order
100
  'galSortDir' => 'ASC', // Sort direction
101
  'galNoPages' => True, // use no subpages for gallery
102
  'galImgBrowser' => 0, // Show ImageBrowser => instead effect
103
  'galHiddenImg' => 0, // For paged galleries we can hide image
104
+ 'galAjaxNav' => 1, // AJAX Navigation for Shutter effect
105
 
106
  // Thumbnail Effect
107
+ 'thumbEffect' => 'simplelightbox', // select effect
108
+ 'thumbCode' => 'class="ngg-simplelightbox" rel="%GALLERY_NAME%"',
109
  'thumbEffectContext' => 'nextgen_images', // select effect
110
 
111
  // Watermark settings
122
 
123
  // Image Rotator settings
124
  'slideFX' => 'fade',
125
+ 'irWidth' => 750,
126
+ 'irHeight' => 500,
127
+ 'irRotatetime' => 5,
128
 
129
  // CSS Style
130
  'activateCSS' => 1, // activate the CSS file
products/photocrati_nextgen/modules/ngglegacy/admin/album.php CHANGED
@@ -471,7 +471,7 @@ function showDialog() {
471
  <div class="alignleft actions">
472
  <span class="ngg_select_album"><?php esc_html_e('Select album', 'nggallery') ?></span>
473
  <select id="act_album" name="act_album" onchange="this.form.submit();">
474
- <option value="0" ><?php esc_html_e('No album selected', 'nggallery') ?></option>
475
  <?php
476
  if( is_array($this->albums) ) {
477
  foreach($this->albums as $a) {
@@ -491,7 +491,7 @@ function showDialog() {
491
  <?php } ?>
492
  <?php } else { ?>
493
  <?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?>
494
- <span><?php esc_html_e('Add new album', 'nggallery'); ?>&nbsp;</span>
495
  <input class="search-input" id="newalbum" name="newalbum" type="text" value="" />
496
  <input class="button-primary action" type="submit" name="add" value="<?php esc_attr_e('Add', 'nggallery'); ?>"/>
497
  <?php } ?>
471
  <div class="alignleft actions">
472
  <span class="ngg_select_album"><?php esc_html_e('Select album', 'nggallery') ?></span>
473
  <select id="act_album" name="act_album" onchange="this.form.submit();">
474
+ <option value="0" ><?php esc_html_e('Create New Album', 'nggallery') ?></option>
475
  <?php
476
  if( is_array($this->albums) ) {
477
  foreach($this->albums as $a) {
491
  <?php } ?>
492
  <?php } else { ?>
493
  <?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?>
494
+ <span><?php esc_html_e('New Album Name', 'nggallery'); ?>&nbsp;</span>
495
  <input class="search-input" id="newalbum" name="newalbum" type="text" value="" />
496
  <input class="button-primary action" type="submit" name="add" value="<?php esc_attr_e('Add', 'nggallery'); ?>"/>
497
  <?php } ?>
products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php CHANGED
@@ -16,7 +16,7 @@ class M_Third_Party_Compat extends C_Base_Module
16
  'photocrati-third_party_compat',
17
  'Third Party Compatibility',
18
  "Adds Third party compatibility hacks, adjustments, and modifications",
19
- '3.0.0',
20
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
21
  'Imagely',
22
  'https://www.imagely.com'
@@ -165,6 +165,7 @@ class M_Third_Party_Compat extends C_Base_Module
165
  // Assign our own shortcode handler; ngglegacy and ATP do this same routine for their own
166
  // legacy and preview image placeholders.
167
  remove_all_shortcodes();
 
168
  C_NextGen_Shortcode_Manager::add('ngg_images', array($this, 'wpseo_shortcode_handler'));
169
  do_shortcode($post->post_content);
170
 
16
  'photocrati-third_party_compat',
17
  'Third Party Compatibility',
18
  "Adds Third party compatibility hacks, adjustments, and modifications",
19
+ '3.0.0.1',
20
  'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
21
  'Imagely',
22
  'https://www.imagely.com'
165
  // Assign our own shortcode handler; ngglegacy and ATP do this same routine for their own
166
  // legacy and preview image placeholders.
167
  remove_all_shortcodes();
168
+ C_NextGen_Shortcode_Manager::add('ngg', array($this, 'wpseo_shortcode_handler'));
169
  C_NextGen_Shortcode_Manager::add('ngg_images', array($this, 'wpseo_shortcode_handler'));
170
  do_shortcode($post->post_content);
171
 
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: photocrati, imagely
3
  Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark
4
  Requires at least: 4.0.0
5
- Stable tag: 3.0.8
6
  Tested up to: 4.9.8
7
  License: GPLv2
8
 
@@ -183,6 +183,17 @@ For more information, feel free to visit the official website for the NextGEN Ga
183
 
184
  == Changelog ==
185
 
 
 
 
 
 
 
 
 
 
 
 
186
  = V3.0.8 - 09.05.2018 =
187
  * Fixed: IGW broken with Chrome 69+
188
 
2
  Contributors: photocrati, imagely
3
  Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark
4
  Requires at least: 4.0.0
5
+ Stable tag: 3.0.9
6
  Tested up to: 4.9.8
7
  License: GPLv2
8
 
183
 
184
  == Changelog ==
185
 
186
+ = V3.0.9 - 10.02.2018 =
187
+ * NEW: Added 2.0 template mechanism for basic galleries
188
+ * NEW: Simple Lightbox is the new default Lightbox
189
+ * Changed: Changed Javascript library and styling for basic slideshow
190
+ * Changed: New default template and styling for thumbnail galleries
191
+ * Changed: New default template and styling for imagebrowser galleries
192
+ * Changed: New default template and styling for compact albums
193
+ * Changed: New default template and styling for extended albums
194
+ * Changed: Changed implementation of "Number of Columns" setting
195
+ * Changed: Significantly simplified NextGEN default shortcodes
196
+
197
  = V3.0.8 - 09.05.2018 =
198
  * Fixed: IGW broken with Chrome 69+
199