Testimonials Widget - Version 3.4.3

Version Description

= 3.0.0 =

This is a major overhaul without backwards compliance of over 80 changes. Please read the Testimonials Widget 3.0 and Testimonials Widget Premium 2.0 Upgrade Notice for more help.

If you use custom CSS, actions, or filters to modify Testimonials Widget and Testimonials Widget Premium actions or output, this upgrade will not be compatible with those modifications until corrections are made.

= Older Versions =

Read UPGRADING.

Download this release

Release Info

Developer saurabhd
Plugin Icon wp plugin Testimonials Widget
Version 3.4.3
Comparing to
See all releases

Code changes from version 3.4.2 to 3.4.3

CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
 
3
  ## master
4
 
 
 
 
 
 
 
 
 
5
  ## 3.4.2
6
  * Confirm WordPress 4.8 compatibility
7
 
2
 
3
  ## master
4
 
5
+ ## 3.4.3
6
+ * Add setting for scroll on hover
7
+ * Add TW Slider start from 1st index
8
+ * Confirm WordPress 4.9.5 compatibility
9
+ * Require Aihrus Framework 1.3.1
10
+ * Update bxSlider-4 version
11
+ * User defined settings not being saved fixed
12
+
13
  ## 3.4.2
14
  * Confirm WordPress 4.8 compatibility
15
 
includes/class-testimonials-widget-settings.php CHANGED
@@ -157,6 +157,15 @@ class Axl_Testimonials_Widget_Settings extends Aihrus_Settings {
157
  'std' => 1,
158
  );
159
 
 
 
 
 
 
 
 
 
 
160
  self::$settings['bottom_text'] = array(
161
  'section' => 'widget',
162
  'title' => esc_html__( 'Bottom Text', 'testimonials-widget' ),
157
  'std' => 1,
158
  );
159
 
160
+ self::$settings['scroll_on_hover'] = array(
161
+ 'section' => 'widget',
162
+ 'title' => esc_html__( 'Stop scroll on hover?', 'testimonials-widget' ),
163
+ 'desc' => esc_html__( 'If checked, slider will not scroll when mouse hovers over the testimonial slide.', 'testimonials-widget' ),
164
+ 'type' => 'checkbox',
165
+ 'validate' => 'is_true',
166
+ 'std' => 1,
167
+ );
168
+
169
  self::$settings['bottom_text'] = array(
170
  'section' => 'widget',
171
  'title' => esc_html__( 'Bottom Text', 'testimonials-widget' ),
includes/class-testimonials-widget.php CHANGED
@@ -675,7 +675,7 @@ class Axl_Testimonials_Widget extends Aihrus_Common {
675
 
676
 
677
  public static function testimonials( $atts ) {
678
- $atts = wp_parse_args( $atts, self::get_defaults() );
679
  $atts = Axl_Testimonials_Widget_Settings::validate_settings( $atts );
680
 
681
  if ( get_query_var( 'paged' ) ) {
@@ -719,7 +719,7 @@ class Axl_Testimonials_Widget extends Aihrus_Common {
719
  }
720
  }
721
 
722
- $atts = wp_parse_args( $atts, self::get_defaults() );
723
  $atts = Axl_Testimonials_Widget_Settings::validate_settings( $atts );
724
 
725
  $atts['paging'] = false;
@@ -730,7 +730,8 @@ class Axl_Testimonials_Widget extends Aihrus_Common {
730
 
731
  $testimonials = array();
732
 
733
- $content = apply_filters( 'tw_cache_get', false, $atts );
 
734
  if ( false === $content ) {
735
  $testimonials = self::get_testimonials( $atts );
736
  $content = self::get_testimonials_html( $testimonials, $atts, false, $widget_number );
@@ -820,6 +821,7 @@ class Axl_Testimonials_Widget extends Aihrus_Common {
820
  $javascript .= '<script type="text/javascript">' . "\n";
821
 
822
  $adaptive_height = $atts['adaptive_height'] ? 'true' : 'false';
 
823
  $enable_video = $atts['enable_video'];
824
  $show_start_stop = $atts['show_start_stop'];
825
  $slide_width = empty( $atts['slide_width'] ) ? 0 : $atts['slide_width'];
@@ -840,14 +842,15 @@ jQuery(document).ready(function() {
840
  adaptiveHeight: {$adaptive_height},
841
  auto: {$auto},
842
  {$auto_controls}
843
- autoHover: true,
844
  controls: false,
845
  mode: '{$transition_mode}',
846
  pager: false,
847
  pause: {$pause},
848
  {$video},
849
  slideMargin: 2,
850
- slideWidth: {$slide_width}
 
851
  });
852
  });
853
  EOF;
@@ -914,7 +917,7 @@ EOF;
914
  . $post_paging
915
  . $div_close;
916
 
917
- $html = apply_filters( 'tw_get_testimonials_html', $html, $testimonials, $atts, $is_list, $widget_number, $div_open, $pre_paging, $testimonial_content, $post_paging, $div_close );
918
 
919
  return $html;
920
  }
@@ -1095,8 +1098,9 @@ EOF;
1095
  }
1096
 
1097
  if ( $random ) {
1098
- $orderby = 'rand';
1099
- $order = false;
 
1100
  }
1101
 
1102
  $args = array(
@@ -1251,7 +1255,8 @@ EOF;
1251
  $args = self::get_query_args( $atts );
1252
  $args['query'] = true;
1253
 
1254
- $testimonials = apply_filters( 'tw_cache_get', false, $args );
 
1255
  if ( false === $testimonials ) {
1256
  $testimonials = new WP_Query( $args );
1257
  $testimonials = apply_filters( 'tw_testimonials_query', $testimonials, $args );
@@ -1691,7 +1696,7 @@ EOF;
1691
 
1692
 
1693
  public static function testimonials_archives( $atts, $widget_number = null ) {
1694
- $atts = wp_parse_args( $atts, Axl_Testimonials_Widget_Archives_Widget::get_defaults() );
1695
  $atts = Axl_Testimonials_Widget_Archives_Widget::validate_settings( $atts );
1696
 
1697
  $atts['type'] = 'testimonials_archives';
@@ -1751,7 +1756,7 @@ EOF;
1751
 
1752
 
1753
  public static function testimonials_categories( $atts, $widget_number = null ) {
1754
- $atts = wp_parse_args( $atts, Axl_Testimonials_Widget_Categories_Widget::get_defaults() );
1755
  $atts = Axl_Testimonials_Widget_Categories_Widget::validate_settings( $atts );
1756
 
1757
  $atts['type'] = 'testimonials_categories';
@@ -1786,7 +1791,7 @@ EOF;
1786
 
1787
 
1788
  public static function testimonials_recent( $atts, $widget_number = null ) {
1789
- $atts = wp_parse_args( $atts, Axl_Testimonials_Widget_Recent_Testimonials_Widget::get_defaults() );
1790
  $atts = Axl_Testimonials_Widget_Recent_Testimonials_Widget::validate_settings( $atts );
1791
 
1792
  $atts['type'] = 'testimonials_recent';
@@ -1821,7 +1826,7 @@ EOF;
1821
 
1822
 
1823
  public static function testimonials_tag_cloud( $atts, $widget_number = null ) {
1824
- $atts = wp_parse_args( $atts, Axl_Testimonials_Widget_Tag_Cloud_Widget::get_defaults() );
1825
  $atts = Axl_Testimonials_Widget_Tag_Cloud_Widget::validate_settings( $atts );
1826
 
1827
  $atts['type'] = 'testimonials_tag_cloud';
@@ -1912,7 +1917,7 @@ EOF;
1912
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
1913
  */
1914
  public static function testimonials_examples( $atts = null ) {
1915
- $atts = wp_parse_args( $atts, self::get_defaults() );
1916
 
1917
  $atts['type'] = 'testimonials_examples';
1918
 
@@ -1946,7 +1951,7 @@ EOF;
1946
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
1947
  */
1948
  public static function testimonials_options( $atts = null ) {
1949
- $atts = wp_parse_args( $atts, self::get_defaults() );
1950
 
1951
  $atts['type'] = 'testimonials_options';
1952
 
675
 
676
 
677
  public static function testimonials( $atts ) {
678
+ $atts = wp_parse_args( self::get_defaults(), $atts );
679
  $atts = Axl_Testimonials_Widget_Settings::validate_settings( $atts );
680
 
681
  if ( get_query_var( 'paged' ) ) {
719
  }
720
  }
721
 
722
+ $atts = wp_parse_args( self::get_defaults(), $atts );
723
  $atts = Axl_Testimonials_Widget_Settings::validate_settings( $atts );
724
 
725
  $atts['paging'] = false;
730
 
731
  $testimonials = array();
732
 
733
+ //$content = apply_filters( 'tw_cache_get', false, $atts );
734
+ $content = false;
735
  if ( false === $content ) {
736
  $testimonials = self::get_testimonials( $atts );
737
  $content = self::get_testimonials_html( $testimonials, $atts, false, $widget_number );
821
  $javascript .= '<script type="text/javascript">' . "\n";
822
 
823
  $adaptive_height = $atts['adaptive_height'] ? 'true' : 'false';
824
+ $scroll_on_hover = $atts['scroll_on_hover'] ? 'true' : 'false';
825
  $enable_video = $atts['enable_video'];
826
  $show_start_stop = $atts['show_start_stop'];
827
  $slide_width = empty( $atts['slide_width'] ) ? 0 : $atts['slide_width'];
842
  adaptiveHeight: {$adaptive_height},
843
  auto: {$auto},
844
  {$auto_controls}
845
+ autoHover: {$scroll_on_hover},
846
  controls: false,
847
  mode: '{$transition_mode}',
848
  pager: false,
849
  pause: {$pause},
850
  {$video},
851
  slideMargin: 2,
852
+ slideWidth: {$slide_width},
853
+ startSlide: 0
854
  });
855
  });
856
  EOF;
917
  . $post_paging
918
  . $div_close;
919
 
920
+ //$html = apply_filters( 'tw_get_testimonials_html', $html, $testimonials, $atts, $is_list, $widget_number, $div_open, $pre_paging, $testimonial_content, $post_paging, $div_close );
921
 
922
  return $html;
923
  }
1098
  }
1099
 
1100
  if ( $random ) {
1101
+ $orders = ['DESC', 'ASC'];
1102
+ $orderby = 'date';
1103
+ $order = $orders[rand(0, 1)];
1104
  }
1105
 
1106
  $args = array(
1255
  $args = self::get_query_args( $atts );
1256
  $args['query'] = true;
1257
 
1258
+ //$testimonials = apply_filters( 'tw_cache_get', false, $args );
1259
+ $testimonials = false;
1260
  if ( false === $testimonials ) {
1261
  $testimonials = new WP_Query( $args );
1262
  $testimonials = apply_filters( 'tw_testimonials_query', $testimonials, $args );
1696
 
1697
 
1698
  public static function testimonials_archives( $atts, $widget_number = null ) {
1699
+ $atts = wp_parse_args( Axl_Testimonials_Widget_Archives_Widget::get_defaults(), $atts );
1700
  $atts = Axl_Testimonials_Widget_Archives_Widget::validate_settings( $atts );
1701
 
1702
  $atts['type'] = 'testimonials_archives';
1756
 
1757
 
1758
  public static function testimonials_categories( $atts, $widget_number = null ) {
1759
+ $atts = wp_parse_args( Axl_Testimonials_Widget_Archives_Widget::get_defaults(), $atts );
1760
  $atts = Axl_Testimonials_Widget_Categories_Widget::validate_settings( $atts );
1761
 
1762
  $atts['type'] = 'testimonials_categories';
1791
 
1792
 
1793
  public static function testimonials_recent( $atts, $widget_number = null ) {
1794
+ $atts = wp_parse_args( Axl_Testimonials_Widget_Archives_Widget::get_defaults(), $atts );
1795
  $atts = Axl_Testimonials_Widget_Recent_Testimonials_Widget::validate_settings( $atts );
1796
 
1797
  $atts['type'] = 'testimonials_recent';
1826
 
1827
 
1828
  public static function testimonials_tag_cloud( $atts, $widget_number = null ) {
1829
+ $atts = wp_parse_args( Axl_Testimonials_Widget_Archives_Widget::get_defaults(), $atts );
1830
  $atts = Axl_Testimonials_Widget_Tag_Cloud_Widget::validate_settings( $atts );
1831
 
1832
  $atts['type'] = 'testimonials_tag_cloud';
1917
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
1918
  */
1919
  public static function testimonials_examples( $atts = null ) {
1920
+ $atts = wp_parse_args( self::get_defaults(), $atts );
1921
 
1922
  $atts['type'] = 'testimonials_examples';
1923
 
1951
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
1952
  */
1953
  public static function testimonials_options( $atts = null ) {
1954
+ $atts = wp_parse_args( self::get_defaults(), $atts );
1955
 
1956
  $atts['type'] = 'testimonials_options';
1957
 
includes/libraries/aihrus-framework/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
 
3
  ## master
4
 
 
 
 
 
 
 
 
 
 
5
  ## 1.2.9
6
  * Added target url to blank to open links in seperate tab
7
 
2
 
3
  ## master
4
 
5
+ ## 1.3.1
6
+ * Tested with WordPress 4.9.4
7
+ * Fix copyright branding typo
8
+
9
+ ## 1.3.0
10
+ * Tested with WordPress 4.8.1
11
+ * Update branding from Aihrus Framework to Axelerant Framework
12
+ * Update donate page link
13
+
14
  ## 1.2.9
15
  * Added target url to blank to open links in seperate tab
16
 
includes/libraries/aihrus-framework/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # Aihrus Framework
2
 
3
- Tested up to: 4.7.1
4
- Stable tag: 1.2.9
5
 
6
- A helper library for WordPress plugins by Aihrus and maintained by [Axelerant](https://axelerant.com).
7
 
8
  ## Features
9
 
@@ -22,9 +22,9 @@ A helper library for WordPress plugins by Aihrus and maintained by [Axelerant](h
22
  * Load and link the external library
23
 
24
  ```
25
- git remote add aihrus https://github.com/michael-cannon/aihrus-framework.git
26
- git subtree add -P include/libraries/aihrus-framework aihrus master
27
- git commit -a -m "Read aihrus framework"
28
  git push origin master
29
  ```
30
 
@@ -58,7 +58,7 @@ function wps_notice_aihrus() {
58
  $help_url = esc_url( 'https://axelerant.atlassian.net/wiki/display/WPFAQ/Axelerant+Framework+Out+of+Date' );
59
  $help_link = sprintf( __( '<a href="%1$s">Update plugins</a>. <a href="%2$s">More information</a>.' ), self_admin_url( 'update-core.php' ), $help_url );
60
 
61
- $text = sprintf( esc_html__( 'Plugin "%1$s" has been deactivated as it requires a current Aihrus Framework. Once corrected, "%1$s" can be activated. %2$s' ), WPS_NAME, $help_link );
62
 
63
  aihr_notice_error( $text );
64
  }
@@ -67,7 +67,7 @@ function wps_notice_aihrus() {
67
  * Update the external library
68
 
69
  ```
70
- git subtree pull -P include/libraries/aihrus-framework aihrus master
71
  ```
72
 
73
  * Update the plugin repository
1
+ # Axelerant Framework
2
 
3
+ Tested up to: 4.8.1
4
+ Stable tag: 1.3.1
5
 
6
+ A helper library for WordPress plugins. Maintained by [Axelerant](https://axelerant.com).
7
 
8
  ## Features
9
 
22
  * Load and link the external library
23
 
24
  ```
25
+ git remote add axelerant https://github.com/michael-cannon/aihrus-framework.git
26
+ git subtree add -P include/libraries/aihrus-framework axelerant master
27
+ git commit -a -m "Read axelerant framework"
28
  git push origin master
29
  ```
30
 
58
  $help_url = esc_url( 'https://axelerant.atlassian.net/wiki/display/WPFAQ/Axelerant+Framework+Out+of+Date' );
59
  $help_link = sprintf( __( '<a href="%1$s">Update plugins</a>. <a href="%2$s">More information</a>.' ), self_admin_url( 'update-core.php' ), $help_url );
60
 
61
+ $text = sprintf( esc_html__( 'Plugin "%1$s" has been deactivated as it requires a current Axelerant Framework. Once corrected, "%1$s" can be activated. %2$s' ), WPS_NAME, $help_link );
62
 
63
  aihr_notice_error( $text );
64
  }
67
  * Update the external library
68
 
69
  ```
70
+ git subtree pull -P include/libraries/aihrus-framework axelerant master
71
  ```
72
 
73
  * Update the plugin repository
includes/libraries/aihrus-framework/aihrus-framework.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- Aihrus Framework
4
  Copyright (C) 2015 Axelerant
5
 
6
  This program is free software; you can redistribute it and/or modify
@@ -35,7 +35,7 @@ if ( ! defined( 'AIHR_DIR_LIB' ) ) {
35
  }
36
 
37
  if ( ! defined( 'AIHR_VERSION' ) ) {
38
- define( 'AIHR_VERSION', '1.2.9' );
39
  }
40
 
41
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
@@ -103,7 +103,7 @@ if ( ! function_exists( 'aihr_notice_aihrus_framework' ) ) {
103
 
104
  $aihr_version = defined( 'AIHR_VERSION' ) ? AIHR_VERSION : '0.0.0';
105
 
106
- $text = sprintf( esc_html__( 'Plugin "%1$s" has been deactivated as it requires Aihrus Framework %2$s or newer. You\'re running Aihrus Framework %4$s. Once corrected, "%1$s" can be activated. %5$s %3$s' ), $name, AIHR_VERSION_MIN, $help_link, $aihr_version, $note );
107
 
108
  aihr_notice_error( $text );
109
  }
1
  <?php
2
  /**
3
+ Axelerant Framework
4
  Copyright (C) 2015 Axelerant
5
 
6
  This program is free software; you can redistribute it and/or modify
35
  }
36
 
37
  if ( ! defined( 'AIHR_VERSION' ) ) {
38
+ define( 'AIHR_VERSION', '1.3.1' );
39
  }
40
 
41
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
103
 
104
  $aihr_version = defined( 'AIHR_VERSION' ) ? AIHR_VERSION : '0.0.0';
105
 
106
+ $text = sprintf( esc_html__( 'Plugin "%1$s" has been deactivated as it requires Axelerant Framework %2$s or newer. You\'re running Axelerant Framework %4$s. Once corrected, "%1$s" can be activated. %5$s %3$s' ), $name, AIHR_VERSION_MIN, $help_link, $aihr_version, $note );
107
 
108
  aihr_notice_error( $text );
109
  }
includes/libraries/aihrus-framework/includes/class-aihrus-common.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Aihrus Framework
4
  * Copyright (C) 2015 Axelerant
5
  * This program is free software; you can redistribute it and/or modify
6
  * it under the terms of the GNU General Public License as published by
@@ -41,7 +41,7 @@ abstract class Aihrus_Common {
41
  </form>
42
  EOD;
43
 
44
- self::$donate_link = '<a href="https://axelerant.com/about-axelerant/donate/"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" alt="PayPal - The safer, easier way to pay online!" /></a>';
45
 
46
  add_action( 'admin_init', array( static::$class, 'check_notices' ), 9999 );
47
  }
1
  <?php
2
  /**
3
+ * Axelerant Framework
4
  * Copyright (C) 2015 Axelerant
5
  * This program is free software; you can redistribute it and/or modify
6
  * it under the terms of the GNU General Public License as published by
41
  </form>
42
  EOD;
43
 
44
+ self::$donate_link = '<a href="https://store.axelerant.com/donate/"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" alt="PayPal - The safer, easier way to pay online!" /></a>';
45
 
46
  add_action( 'admin_init', array( static::$class, 'check_notices' ), 9999 );
47
  }
includes/libraries/aihrus-framework/includes/class-aihrus-licensing.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- Aihrus Framework
4
  Copyright (C) 2015 Axelerant
5
 
6
  This program is free software; you can redistribute it and/or modify
1
  <?php
2
  /**
3
+ Axelerant Framework
4
  Copyright (C) 2015 Axelerant
5
 
6
  This program is free software; you can redistribute it and/or modify
includes/libraries/aihrus-framework/includes/class-aihrus-settings.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Aihrus Framework
4
  * Copyright (C) 2015 Axelerant
5
  * This program is free software; you can redistribute it and/or modify
6
  * it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
17
 
18
 
19
  /**
20
- * Aihrus Framework settings helper class
21
  *
22
  * Based upon http://alisothegeek.com/2011/01/wordpress-settings-api-tutorial-1/
23
  */
@@ -296,7 +296,7 @@ abstract class Aihrus_Settings {
296
  echo '<p>' .
297
  sprintf(
298
  __( 'If you like this plugin, please <a href="%1$s" title="Donate for Good Karma"><img src="%2$s" border="0" alt="Donate for Good Karma" /></a> or <a href="%3$s" title="purchase premium WordPress plugins from Axelerant ">purchase the Premium version</a> to help fund further development and <a href="%4$s" title="Support forums">support</a>.' ),
299
- esc_url( 'https://axelerant.com/about-axelerant/donate/' ),
300
  esc_url( 'https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif' ),
301
  esc_url( 'https://store.axelerant.com/' ),
302
  esc_url( 'mailto:support@axelerant.com' )
@@ -306,7 +306,7 @@ abstract class Aihrus_Settings {
306
 
307
  echo '<p class="copyright">' .
308
  sprintf(
309
- __( 'Copyright &copy;%1$s <a href="%2$s">Axlerant</a>.' ),
310
  date( 'Y' ),
311
  esc_url( 'https://axelerant.com' )
312
  ) .
1
  <?php
2
  /**
3
+ * Axelerant Framework
4
  * Copyright (C) 2015 Axelerant
5
  * This program is free software; you can redistribute it and/or modify
6
  * it under the terms of the GNU General Public License as published by
17
 
18
 
19
  /**
20
+ * Axelerant Framework settings helper class
21
  *
22
  * Based upon http://alisothegeek.com/2011/01/wordpress-settings-api-tutorial-1/
23
  */
296
  echo '<p>' .
297
  sprintf(
298
  __( 'If you like this plugin, please <a href="%1$s" title="Donate for Good Karma"><img src="%2$s" border="0" alt="Donate for Good Karma" /></a> or <a href="%3$s" title="purchase premium WordPress plugins from Axelerant ">purchase the Premium version</a> to help fund further development and <a href="%4$s" title="Support forums">support</a>.' ),
299
+ esc_url( 'https://store.axelerant.com/donate/' ),
300
  esc_url( 'https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif' ),
301
  esc_url( 'https://store.axelerant.com/' ),
302
  esc_url( 'mailto:support@axelerant.com' )
306
 
307
  echo '<p class="copyright">' .
308
  sprintf(
309
+ __( 'Copyright &copy;%1$s <a href="%2$s">Axelerant</a>.' ),
310
  date( 'Y' ),
311
  esc_url( 'https://axelerant.com' )
312
  ) .
includes/libraries/aihrus-framework/includes/class-aihrus-widget.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Aihrus Framework
4
  * Copyright (C) 2015 Axelerant
5
  * This program is free software; you can redistribute it and/or modify
6
  * it under the terms of the GNU General Public License as published by
1
  <?php
2
  /**
3
+ * Axelerant Framework
4
  * Copyright (C) 2015 Axelerant
5
  * This program is free software; you can redistribute it and/or modify
6
  * it under the terms of the GNU General Public License as published by
includes/libraries/bxslider-4/Gulpfile.js CHANGED
@@ -1,82 +1,58 @@
1
- // ## Globals
2
- /*global $:true*/
3
- var $ = require('gulp-load-plugins')();
4
- var gulp = require('gulp');
5
-
6
- // ### Styles
7
- // `gulp styles` - compiles and optimizes css.
8
- gulp.task('styles', function() {
9
- return gulp.src('./src/less/*.less')
10
- .pipe($.less())
11
- .pipe($.pleeease({
12
- autoprefixer: {
13
- browsers: [
14
- 'last 2 versions', 'ie 8', 'ie 9', 'android 2.3', 'android 4',
15
- 'opera 12'
16
- ]
17
- },
18
- minifier: false
19
- }))
20
- .pipe(gulp.dest('./dist/'));
21
  });
22
 
23
- // ### Scripts
24
- // `gulp scripts` - runs jshint and uglify
25
- gulp.task('scripts', ['jshint'], function() {
26
- return gulp.src('./src/js/*.js')
27
- .pipe(gulp.dest('./dist/'))
28
- .pipe($.uglify({
29
- preserveComments: function (node, comment) {
30
- if (/^\*\*/.test(comment.value) && /\*\*$/.test(comment.value)) {
31
-
32
- console.log('Found tri-star comment. Preserving.');
33
- return true;
34
- }
35
- }
36
- }))
37
- .pipe($.rename({extname: '.min.js'}))
38
- .pipe(gulp.dest('./dist/'));
39
  });
40
 
41
- // ### Vendor Scripts
42
- // `gulp vendor` - runs uglify on 3rd party plugins
43
- gulp.task('vendor', function() {
44
- return gulp.src('./src/vendor/*.js')
45
- .pipe(gulp.dest('./dist/vendor'));
46
  });
47
 
48
- // ### Images
49
- // `gulp images` - run lossless compression on all the images.
50
- gulp.task('images', function() {
51
- return gulp.src('./src/images/*')
52
- .pipe($.imagemin({
53
- progressive: true,
54
- interlaced: true
55
- }))
56
- .pipe(gulp.dest('./dist/images'));
57
  });
58
 
59
- // ### JsHint
60
- // `gulp jshint` - lints configuration JSON and project javascript
61
- gulp.task('jshint', function() {
62
- return gulp.src([ 'bower.json', 'gulpfile.js', './src/*.js' ])
63
- .pipe($.jshint())
64
- .pipe($.jshint.reporter('jshint-stylish'))
65
- .pipe($.jshint.reporter('fail'));
66
  });
67
 
68
- // ### Clean
69
- // `gulp clean` - deletes the build folder entirely
70
- gulp.task('clean', require('del').bind(null, ['dist/']));
71
-
72
- // ### Build
73
- // `gulp build` - Run all the build tasks but don't clean up beforehand.
74
- // Generally you should be running `gulp` instead of `gulp build`.
75
- gulp.task('build', ['styles', 'scripts', 'images', 'vendor']);
76
 
 
 
 
 
 
 
 
77
 
78
- // ### Gulp
79
- // `gulp` - Run a complete build. To compile for production run `gulp --production`.
80
- gulp.task('default', ['clean'], function() {
81
- gulp.start('build');
82
- });
 
 
 
 
1
+ var gulp = require('gulp')
2
+ var uglify = require('gulp-uglify');
3
+ var cssmin = require('gulp-cssmin');
4
+ var rename = require('gulp-rename');
5
+
6
+ gulp.task('js-minify', function () {
7
+ gulp.src('./src/js/jquery.bxslider.js')
8
+ .pipe(uglify({
9
+ preserveComments: 'license'
10
+ }))
11
+ .pipe(rename({ suffix: '.min' }))
12
+ .pipe(gulp.dest('./dist'));
 
 
 
 
 
 
 
 
13
  });
14
 
15
+ gulp.task('js-copy-src', function () {
16
+ gulp.src('./src/js/jquery.bxslider.js')
17
+ .pipe(gulp.dest('./dist'));
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  });
19
 
20
+ gulp.task('css-minify', function () {
21
+ gulp.src('./src/css/jquery.bxslider.css')
22
+ .pipe(cssmin())
23
+ .pipe(rename({ suffix: '.min' }))
24
+ .pipe(gulp.dest('./dist'));
25
  });
26
 
27
+ gulp.task('css-copy-src', function () {
28
+ gulp.src('./src/css/jquery.bxslider.css')
29
+ .pipe(gulp.dest('./dist'));
 
 
 
 
 
 
30
  });
31
 
32
+ gulp.task('vendor-copy-src', function () {
33
+ gulp.src('./src/vendor/*')
34
+ .pipe(gulp.dest('./dist/vendor'));
 
 
 
 
35
  });
36
 
37
+ gulp.task('images-copy-src', function () {
38
+ gulp.src('./src/images/*')
39
+ .pipe(gulp.dest('./dist/images'));
40
+ });
 
 
 
 
41
 
42
+ gulp.task('docs-copy-src', function () {
43
+ gulp.src([
44
+ './readme.md',
45
+ './LICENSE.md'
46
+ ])
47
+ .pipe(gulp.dest('./dist'));
48
+ });
49
 
50
+ gulp.task('default', [
51
+ 'js-minify',
52
+ 'js-copy-src',
53
+ 'css-minify',
54
+ 'css-copy-src',
55
+ 'vendor-copy-src',
56
+ 'images-copy-src',
57
+ 'docs-copy-src'
58
+ ]);
includes/libraries/bxslider-4/bower.json CHANGED
@@ -1,6 +1,5 @@
1
  {
2
  "name": "bxslider-4",
3
- "version": "4.2.5",
4
  "homepage": "http://bxslider.com",
5
  "license": "MIT",
6
  "main": [
1
  {
2
  "name": "bxslider-4",
 
3
  "homepage": "http://bxslider.com",
4
  "license": "MIT",
5
  "main": [
includes/libraries/bxslider-4/dist/README.md CHANGED
@@ -1,7 +1,13 @@
1
- #bxSlider 4.2.5
2
- ##The fully-loaded, responsive jQuery content slider
 
3
 
4
- ###Why should I use this slider?
 
 
 
 
 
5
  * Fully responsive - will adapt to any device
6
  * Horizontal, vertical, and fade modes
7
  * Slides can contain images, video, or HTML content
@@ -10,20 +16,18 @@
10
  * Browser support: Firefox, Chrome, Safari, iOS, Android, IE7+
11
  * Tons of configuration options
12
 
13
- For complete documentation, tons of examples, and a good time, visit:
14
-
15
- [http://bxslider.com](http://bxslider.com)
16
 
17
  Written by: Steven Wanderski - [http://stevenwanderski.com](http://stevenwanderski.com)
18
 
19
- ###License
20
  Released under the MIT license - http://opensource.org/licenses/MIT
21
 
22
  Let's get on with it!
23
 
24
- ##Installation
25
 
26
- ###Step 1: Link required files
27
 
28
  First and most important, the jQuery library needs to be included (no need to download - link directly from Google). Next, download the package from this site and link the bxSlider CSS file (for the theme) and the bxSlider Javascript file.
29
 
@@ -36,7 +40,7 @@ First and most important, the jQuery library needs to be included (no need to do
36
  <link href="/lib/jquery.bxslider.css" rel="stylesheet" />
37
  ```
38
 
39
- ###Step 2: Create HTML markup
40
 
41
  Create a `<ul class="bxslider">` element, with a `<li>` for each slide. Slides can contain images, video, or any other HTML content!
42
 
@@ -49,7 +53,7 @@ Create a `<ul class="bxslider">` element, with a `<li>` for each slide. Slides c
49
  </ul>
50
  ```
51
 
52
- ###Step 3: Call the bxSlider
53
 
54
  Call .bxSlider() on `<ul class="bxslider">`. Note that the call must be made inside of a $(document).ready() call, or the plugin will not work!
55
 
@@ -59,11 +63,12 @@ $(document).ready(function(){
59
  });
60
  ```
61
 
62
- ##Configuration options
63
 
64
- ###General
65
 
66
  **mode**
 
67
  Type of transition between slides
68
  ```
69
  default: 'horizontal'
@@ -71,6 +76,7 @@ options: 'horizontal', 'vertical', 'fade'
71
  ```
72
 
73
  **speed**
 
74
  Slide transition duration (in ms)
75
  ```
76
  default: 500
@@ -78,6 +84,7 @@ options: integer
78
  ```
79
 
80
  **slideMargin**
 
81
  Margin between each slide
82
  ```
83
  default: 0
@@ -85,6 +92,7 @@ options: integer
85
  ```
86
 
87
  **startSlide**
 
88
  Starting slide index (zero-based)
89
  ```
90
  default: 0
@@ -92,6 +100,7 @@ options: integer
92
  ```
93
 
94
  **randomStart**
 
95
  Start slider on a random slide
96
  ```
97
  default: false
@@ -99,6 +108,7 @@ options: boolean (true / false)
99
  ```
100
 
101
  **slideSelector**
 
102
  Element to use as slides (ex. <code>'div.slide'</code>).<br />Note: by default, bxSlider will use all immediate children of the slider element
103
  ```
104
  default: ''
@@ -106,6 +116,7 @@ options: jQuery selector
106
  ```
107
 
108
  **infiniteLoop**
 
109
  If <code>true</code>, clicking "Next" while on the last slide will transition to the first slide and vice-versa
110
  ```
111
  default: true
@@ -113,6 +124,7 @@ options: boolean (true / false)
113
  ```
114
 
115
  **hideControlOnEnd**
 
116
  If <code>true</code>, "Prev" and "Next" controls will receive a class <code>disabled</code> when slide is the first or the last<br/>Note: Only used when <code>infiniteLoop: false</code>
117
  ```
118
  default: false
@@ -120,6 +132,7 @@ options: boolean (true / false)
120
  ```
121
 
122
  **easing**
 
123
  The type of "easing" to use during transitions. If using CSS transitions, include a value for the <code>transition-timing-function</code> property. If not using CSS transitions, you may include <code>plugins/jquery.easing.1.3.js</code> for many options.<br />See <a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">http://gsgd.co.uk/sandbox/jquery/easing/</a> for more info.
124
  ```
125
  default: null
@@ -127,6 +140,7 @@ options: if using CSS: 'linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', '
127
  ```
128
 
129
  **captions**
 
130
  Include image captions. Captions are derived from the image's <code>title</code> attribute
131
  ```
132
  default: false
@@ -134,6 +148,7 @@ options: boolean (true / false)
134
  ```
135
 
136
  **ticker**
 
137
  Use slider in ticker mode (similar to a news ticker)
138
  ```
139
  default: false
@@ -141,6 +156,7 @@ options: boolean (true / false)
141
  ```
142
 
143
  **tickerHover**
 
144
  Ticker will pause when mouse hovers over slider. Note: this functionality does NOT work if using CSS transitions!
145
  ```
146
  default: false
@@ -148,6 +164,7 @@ options: boolean (true / false)
148
  ```
149
 
150
  **adaptiveHeight**
 
151
  Dynamically adjust slider height based on each slide's height
152
  ```
153
  default: false
@@ -155,6 +172,7 @@ options: boolean (true / false)
155
  ```
156
 
157
  **adaptiveHeightSpeed**
 
158
  Slide height transition duration (in ms). Note: only used if <code>adaptiveHeight: true</code>
159
  ```
160
  default: 500
@@ -162,6 +180,7 @@ options: integer
162
  ```
163
 
164
  **video**
 
165
  If any slides contain video, set this to <code>true</code>. Also, include <code>plugins/jquery.fitvids.js</code><br />See <a href="http://fitvidsjs.com/" target="_blank">http://fitvidsjs.com/</a> for more info
166
  ```
167
  default: false
@@ -169,6 +188,7 @@ options: boolean (true / false)
169
  ```
170
 
171
  **responsive**
 
172
  Enable or disable auto resize of the slider. Useful if you need to use fixed width sliders.
173
  ```
174
  default: true
@@ -176,6 +196,7 @@ options: boolean (true /false)
176
  ```
177
 
178
  **useCSS**
 
179
  If true, CSS transitions will be used for horizontal and vertical slide animations (this uses native hardware acceleration). If false, jQuery animate() will be used.
180
  ```
181
  default: true
@@ -183,6 +204,7 @@ options: boolean (true / false)
183
  ```
184
 
185
  **preloadImages**
 
186
  If 'all', preloads all images before starting the slider. If 'visible', preloads only images in the initially visible slides before starting the slider (tip: use 'visible' if all slides are identical dimensions)
187
  ```
188
  default: 'visible'
@@ -190,6 +212,7 @@ options: 'all', 'visible'
190
  ```
191
 
192
  **touchEnabled**
 
193
  If <code>true</code>, slider will allow touch swipe transitions
194
  ```
195
  default: true
@@ -197,6 +220,7 @@ options: boolean (true / false)
197
  ```
198
 
199
  **swipeThreshold**
 
200
  Amount of pixels a touch swipe needs to exceed in order to execute a slide transition. Note: only used if <code>touchEnabled: true</code>
201
  ```
202
  default: 50
@@ -204,6 +228,7 @@ options: integer
204
  ```
205
 
206
  **oneToOneTouch**
 
207
  If <code>true</code>, non-fade slides follow the finger as it swipes
208
  ```
209
  default: true
@@ -211,6 +236,7 @@ options: boolean (true / false)
211
  ```
212
 
213
  **preventDefaultSwipeX**
 
214
  If <code>true</code>, touch screen will not move along the x-axis as the finger swipes
215
  ```
216
  default: true
@@ -218,6 +244,7 @@ options: boolean (true / false)
218
  ```
219
 
220
  **preventDefaultSwipeY**
 
221
  If <code>true</code>, touch screen will not move along the y-axis as the finger swipes
222
  ```
223
  default: false
@@ -225,15 +252,17 @@ options: boolean (true / false)
225
  ```
226
 
227
  **wrapperClass**
 
228
  Class to wrap the slider in. Change to prevent from using default bxSlider styles.
229
  ```
230
  default: 'bx-wrapper'
231
  options: string
232
  ```
233
 
234
- ###Pager
235
 
236
  **pager**
 
237
  If <code>true</code>, a pager will be added
238
  ```
239
  default: true
@@ -241,6 +270,7 @@ options: boolean (true / false)
241
  ```
242
 
243
  **pagerType**
 
244
  If <code>'full'</code>, a pager link will be generated for each slide. If <code>'short'</code>, a x / y pager will be used (ex. 1 / 5)
245
  ```
246
  default: 'full'
@@ -248,6 +278,7 @@ options: 'full', 'short'
248
  ```
249
 
250
  **pagerShortSeparator**
 
251
  If <code>pagerType: 'short'</code>, pager will use this value as the separating character
252
  ```
253
  default: ' / '
@@ -255,6 +286,7 @@ options: string
255
  ```
256
 
257
  **pagerSelector**
 
258
  Element used to populate the populate the pager. By default, the pager is appended to the bx-viewport
259
  ```
260
  default: ''
@@ -262,6 +294,7 @@ options: jQuery selector
262
  ```
263
 
264
  **pagerCustom**
 
265
  Parent element to be used as the pager. Parent element must contain a <code>&lt;a data-slide-index="x"&gt;</code> element for each slide. See example <a href="/examples/thumbnail-method-1">here</a>. Not for use with dynamic carousels.
266
  ```
267
  default: null
@@ -269,15 +302,17 @@ options: jQuery selector
269
  ```
270
 
271
  **buildPager**
 
272
  If supplied, function is called on every slide element, and the returned value is used as the pager item markup.<br />See <a href="http://bxslider.com/examples">examples</a> for detailed implementation
273
  ```
274
  default: null
275
  options: function(slideIndex)
276
  ```
277
 
278
- ###Controls
279
 
280
  **controls**
 
281
  If <code>true</code>, "Next" / "Prev" controls will be added
282
  ```
283
  default: true
@@ -285,6 +320,7 @@ options: boolean (true / false)
285
  ```
286
 
287
  **nextText**
 
288
  Text to be used for the "Next" control
289
  ```
290
  default: 'Next'
@@ -292,6 +328,7 @@ options: string
292
  ```
293
 
294
  **prevText**
 
295
  Text to be used for the "Prev" control
296
  ```
297
  default: 'Prev'
@@ -299,6 +336,7 @@ options: string
299
  ```
300
 
301
  **nextSelector**
 
302
  Element used to populate the "Next" control
303
  ```
304
  default: null
@@ -306,6 +344,7 @@ options: jQuery selector
306
  ```
307
 
308
  **prevSelector**
 
309
  Element used to populate the "Prev" control
310
  ```
311
  default: null
@@ -313,6 +352,7 @@ options: jQuery selector
313
  ```
314
 
315
  **autoControls**
 
316
  If <code>true</code>, "Start" / "Stop" controls will be added
317
  ```
318
  default: false
@@ -320,6 +360,7 @@ options: boolean (true / false)
320
  ```
321
 
322
  **startText**
 
323
  Text to be used for the "Start" control
324
  ```
325
  default: 'Start'
@@ -327,6 +368,7 @@ options: string
327
  ```
328
 
329
  **stopText**
 
330
  Text to be used for the "Stop" control
331
  ```
332
  default: 'Stop'
@@ -334,6 +376,7 @@ options: string
334
  ```
335
 
336
  **autoControlsCombine**
 
337
  When slideshow is playing only "Stop" control is displayed and vice-versa
338
  ```
339
  default: false
@@ -341,6 +384,7 @@ options: boolean (true / false)
341
  ```
342
 
343
  **autoControlsSelector**
 
344
  Element used to populate the auto controls
345
  ```
346
  default: null
@@ -348,21 +392,24 @@ options: jQuery selector
348
  ```
349
 
350
  **keyboardEnabled**
 
351
  Enable keyboard navigation for visible sliders
352
  ```
353
  default: false
354
  options: boolean (true / false)
355
  ```
356
 
357
- ###Auto
358
 
359
  **auto**
 
360
  Slides will automatically transition
361
  ```
362
  default: false
363
  options: boolean (true / false)
364
  ```
365
  **stopAutoOnClick**
 
366
  Auto will stop on interaction with controls
367
  ```
368
  default: false
@@ -370,6 +417,7 @@ options: boolean (true / false)
370
  ```
371
 
372
  **pause**
 
373
  The amount of time (in ms) between each auto transition
374
  ```
375
  default: 4000
@@ -377,6 +425,7 @@ options: integer
377
  ```
378
 
379
  **autoStart**
 
380
  Auto show starts playing on load. If <code>false</code>, slideshow will start when the "Start" control is clicked
381
  ```
382
  default: true
@@ -384,6 +433,7 @@ options: boolean (true / false)
384
  ```
385
 
386
  **autoDirection**
 
387
  The direction of auto show slide transitions
388
  ```
389
  default: 'next'
@@ -391,6 +441,7 @@ options: 'next', 'prev'
391
  ```
392
 
393
  **autoHover**
 
394
  Auto show will pause when mouse hovers over slider
395
  ```
396
  default: false
@@ -398,15 +449,17 @@ options: boolean (true / false)
398
  ```
399
 
400
  **autoDelay**
 
401
  Time (in ms) auto show should wait before starting
402
  ```
403
  default: 0
404
  options: integer
405
  ```
406
 
407
- ###Carousel
408
 
409
  **minSlides**
 
410
  The minimum number of slides to be shown. Slides will be sized down if carousel becomes smaller than the original size.
411
  ```
412
  default: 1
@@ -414,6 +467,7 @@ options: integer
414
  ```
415
 
416
  **maxSlides**
 
417
  The maximum number of slides to be shown. Slides will be sized up if carousel becomes larger than the original size.
418
  ```
419
  default: 1
@@ -421,13 +475,15 @@ options: integer
421
  ```
422
 
423
  **moveSlides**
424
- The number of slides to move on transition. This value must be <code>>= minSlides</code>, and <code><= maxSlides</code>. If zero (default), the number of fully-visible slides will be used.
 
425
  ```
426
  default: 0
427
  options: integer
428
  ```
429
 
430
  **slideWidth**
 
431
  The width of each slide. This setting is required for all horizontal carousels!
432
  ```
433
  default: 0
@@ -435,39 +491,45 @@ options: integer
435
  ```
436
 
437
  **shrinkItems**
 
438
  The Carousel will only show whole items and shrink the images to fit the viewport based on maxSlides/MinSlides.
439
  ```
440
  default: false
441
  options: boolean (true / false)
442
  ```
443
 
444
- ###Keyboard
445
 
446
  **keyboardEnabled**
 
447
  Allows for keyboard control of visible slider. Keypress ignored if slider not visible.
448
  ```
449
  default: false
450
  options: boolean (true / false)
451
  ```
452
 
453
- ###Accessibility
 
454
  **ariaLive**
 
455
  Adds Aria Live attribute to slider.
456
  ```
457
  default: true
458
  options: boolean (true / false)
459
  ```
460
-
461
  **ariaHidden**
 
462
  Adds Aria Hidden attribute to any nonvisible slides.
463
  ```
464
  default: true
465
  options: boolean (true / false)
466
  ```
467
 
468
- ###Callbacks
469
 
470
  **onSliderLoad**
 
471
  Executes immediately after the slider is fully loaded
472
  ```
473
  default: function(){}
@@ -477,6 +539,7 @@ arguments:
477
  ```
478
 
479
  **onSliderResize**
 
480
  Executes immediately after the slider is resized
481
  ```
482
  default: function(){}
@@ -486,6 +549,7 @@ arguments:
486
  ```
487
 
488
  **onSlideBefore**
 
489
  Executes immediately before each slide transition.
490
  ```
491
  default: function(){}
@@ -497,6 +561,7 @@ arguments:
497
  ```
498
 
499
  **onSlideAfter**
 
500
  Executes immediately after each slide transition. Function argument is the current slide element (when transition completes).
501
  ```
502
  default: function(){}
@@ -508,6 +573,7 @@ arguments:
508
  ```
509
 
510
  **onSlideNext**
 
511
  Executes immediately before each "Next" slide transition. Function argument is the target (next) slide element.
512
  ```
513
  default: function(){}
@@ -519,6 +585,7 @@ arguments:
519
  ```
520
 
521
  **onSlidePrev**
 
522
  Executes immediately before each "Prev" slide transition. Function argument is the target (prev) slide element.
523
  ```
524
  default: function(){}
@@ -529,9 +596,20 @@ arguments:
529
  newIndex: element index of the destination slide (after the transition)
530
  ```
531
 
532
- ###Public methods
 
 
 
 
 
 
 
 
 
 
533
 
534
  **goToSlide**
 
535
  Performs a slide transition to the supplied slide index (zero-based)
536
  ```
537
  example:
@@ -540,6 +618,7 @@ slider.goToSlide(3);
540
  ```
541
 
542
  **goToNextSlide**
 
543
  Performs a "Next" slide transition
544
  ```
545
  example:
@@ -548,6 +627,7 @@ slider.goToNextSlide();
548
  ```
549
 
550
  **goToPrevSlide**
 
551
  Performs a "Prev" slide transition
552
  ```
553
  example:
@@ -556,7 +636,7 @@ slider.goToPrevSlide();
556
  ```
557
 
558
  **startAuto**
559
- Starts the auto show. Provide an argument <code>false</code> to prevent the auto controls from being updated.
560
  ```
561
  example:
562
  slider = $('.bxslider').bxSlider();
@@ -564,7 +644,8 @@ slider.startAuto();
564
  ```
565
 
566
  **stopAuto**
567
- Stops the auto show. Provide an argument <code>false</code> to prevent the auto controls from being updated.
 
568
  ```
569
  example:
570
  slider = $('.bxslider').bxSlider();
@@ -572,6 +653,7 @@ slider.stopAuto();
572
  ```
573
 
574
  **getCurrentSlide**
 
575
  Returns the current active slide
576
  ```
577
  example:
@@ -580,6 +662,7 @@ var current = slider.getCurrentSlide();
580
  ```
581
 
582
  **getSlideCount**
 
583
  Returns the total number of slides in the slider
584
  ```
585
  example:
@@ -588,6 +671,7 @@ var slideQty = slider.getSlideCount();
588
  ```
589
 
590
  **redrawSlider**
 
591
  Redraw the slider. Useful when needing to redraw a hidden slider after it is unhidden.
592
  ```
593
  example:
@@ -596,7 +680,8 @@ slider.redrawSlider();
596
  ```
597
 
598
  **reloadSlider**
599
- Reload the slider. Useful when adding slides on the fly. Accepts an optional settings object. <a href="/examples/reload-slider-settings">See here for an example.</a>
 
600
  ```
601
  example:
602
  slider = $('.bxslider').bxSlider();
@@ -604,6 +689,7 @@ slider.reloadSlider();
604
  ```
605
 
606
  **destroySlider**
 
607
  Destroy the slider. This reverts all slider elements back to their original state (before calling the slider).
608
  ```
609
  example:
@@ -611,25 +697,15 @@ slider = $('.bxslider').bxSlider();
611
  slider.destroySlider();
612
  ```
613
 
614
- ### Install Grunt and Bower
615
 
616
  **Unfamiliar with npm? Don't have node installed?** [Download and install node.js](http://nodejs.org/download/) before proceeding.
617
 
618
  From the command line:
619
 
620
- 1. Install `grunt-cli` and `bower` globally with `npm install -g grunt-cli bower`.
621
- 2. Run `npm install`. npm will look at `package.json` and automatically install the necessary dependencies.
622
- 3. Run `bower install`, which installs front-end packages defined in `bower.json`.
623
-
624
- When completed, you'll be able to run the various Grunt commands provided from the command line.
625
-
626
- ### Available Grunt commands
627
-
628
- * `grunt` — Clean, Compile LESS to CSS, concatenate and validate JS, build documentation.
629
- * `grunt dist` — Clean, Compile LESS to CSS, concatenate and validate JS for plugin only.
630
- * `grunt docs` — Clean, build documentation only.
631
- * `grunt watch` — loads LiveReload, connects, and watches all assets.
632
- * `grunt zip` — Creates a zip of `/dist` and places it in `/download`.
633
 
634
  ## Contributing
635
 
@@ -642,13 +718,36 @@ Everyone is welcome to help [contribute](CONTRIBUTING.md) and improve this proje
642
 
643
  ## Changelog
644
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
645
  ### Version 4.2.5
646
  * Fix: Vertical carousel minSlides not working #840
647
  * Fix: slider breaks with css animations if settings.speed set to 0 #838
648
  * Fix: Slider runs into undefined state when reloadSlider is called before initialization was finished #833
649
 
650
  ### Version 4.2.4
651
- NOTICE: We have switched to a Grunt based build process in order to leverage [Assemble](http://assemble.io) for local documentation building. Please review the above notes about Grunt for the commands available.
 
652
 
653
  * Fix: Fixed transition from first to last slide during infinite loop #778
654
  * Fix: Reload on multiple sliders doesn't work? #755
@@ -661,7 +760,7 @@ NOTICE: We have switched to a Grunt based build process in order to leverage [As
661
  * Enhancement: Slider getter through jquery object #739
662
  * Enhancement: Add aria attributes #751
663
  * Enhancement: Slider element in every callback and a new method getSliderElement (#780)
664
- * Enhancement: Local Documentiation and examples. I have added buildable documentation to the repo. This will expand over time and allow for community corrections as needed. Please see above Grunt notes on how to build.
665
 
666
 
667
  ### Version 4.2.3
@@ -745,4 +844,4 @@ You now have all the necessary dependencies to run the build process.
745
  * Slider now only needs to load visible slides (by default) in order to initialize which results in much faster loading. A "preloadImages" setting allows for configuration.
746
 
747
 
748
- Long live Zep.
1
+ # ⚠️ Looking for a maintainer ⚠️
2
+ Please contact me if you are interested in keeping our community alive:
3
+ https://github.com/stevenwanderski/bxslider-4/issues/1095
4
 
5
+ ---
6
+
7
+ # bxSlider 4.2.12
8
+ ## The fully-loaded, responsive jQuery content slider
9
+
10
+ ### Why should I use this slider?
11
  * Fully responsive - will adapt to any device
12
  * Horizontal, vertical, and fade modes
13
  * Slides can contain images, video, or HTML content
16
  * Browser support: Firefox, Chrome, Safari, iOS, Android, IE7+
17
  * Tons of configuration options
18
 
19
+ For complete documentation, tons of examples, and a good time, visit: [http://bxslider.com](http://bxslider.com)
 
 
20
 
21
  Written by: Steven Wanderski - [http://stevenwanderski.com](http://stevenwanderski.com)
22
 
23
+ ### License
24
  Released under the MIT license - http://opensource.org/licenses/MIT
25
 
26
  Let's get on with it!
27
 
28
+ ## Installation
29
 
30
+ ### Step 1: Link required files
31
 
32
  First and most important, the jQuery library needs to be included (no need to download - link directly from Google). Next, download the package from this site and link the bxSlider CSS file (for the theme) and the bxSlider Javascript file.
33
 
40
  <link href="/lib/jquery.bxslider.css" rel="stylesheet" />
41
  ```
42
 
43
+ ### Step 2: Create HTML markup
44
 
45
  Create a `<ul class="bxslider">` element, with a `<li>` for each slide. Slides can contain images, video, or any other HTML content!
46
 
53
  </ul>
54
  ```
55
 
56
+ ### Step 3: Call the bxSlider
57
 
58
  Call .bxSlider() on `<ul class="bxslider">`. Note that the call must be made inside of a $(document).ready() call, or the plugin will not work!
59
 
63
  });
64
  ```
65
 
66
+ ## Configuration options
67
 
68
+ ### General
69
 
70
  **mode**
71
+
72
  Type of transition between slides
73
  ```
74
  default: 'horizontal'
76
  ```
77
 
78
  **speed**
79
+
80
  Slide transition duration (in ms)
81
  ```
82
  default: 500
84
  ```
85
 
86
  **slideMargin**
87
+
88
  Margin between each slide
89
  ```
90
  default: 0
92
  ```
93
 
94
  **startSlide**
95
+
96
  Starting slide index (zero-based)
97
  ```
98
  default: 0
100
  ```
101
 
102
  **randomStart**
103
+
104
  Start slider on a random slide
105
  ```
106
  default: false
108
  ```
109
 
110
  **slideSelector**
111
+
112
  Element to use as slides (ex. <code>'div.slide'</code>).<br />Note: by default, bxSlider will use all immediate children of the slider element
113
  ```
114
  default: ''
116
  ```
117
 
118
  **infiniteLoop**
119
+
120
  If <code>true</code>, clicking "Next" while on the last slide will transition to the first slide and vice-versa
121
  ```
122
  default: true
124
  ```
125
 
126
  **hideControlOnEnd**
127
+
128
  If <code>true</code>, "Prev" and "Next" controls will receive a class <code>disabled</code> when slide is the first or the last<br/>Note: Only used when <code>infiniteLoop: false</code>
129
  ```
130
  default: false
132
  ```
133
 
134
  **easing**
135
+
136
  The type of "easing" to use during transitions. If using CSS transitions, include a value for the <code>transition-timing-function</code> property. If not using CSS transitions, you may include <code>plugins/jquery.easing.1.3.js</code> for many options.<br />See <a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">http://gsgd.co.uk/sandbox/jquery/easing/</a> for more info.
137
  ```
138
  default: null
140
  ```
141
 
142
  **captions**
143
+
144
  Include image captions. Captions are derived from the image's <code>title</code> attribute
145
  ```
146
  default: false
148
  ```
149
 
150
  **ticker**
151
+
152
  Use slider in ticker mode (similar to a news ticker)
153
  ```
154
  default: false
156
  ```
157
 
158
  **tickerHover**
159
+
160
  Ticker will pause when mouse hovers over slider. Note: this functionality does NOT work if using CSS transitions!
161
  ```
162
  default: false
164
  ```
165
 
166
  **adaptiveHeight**
167
+
168
  Dynamically adjust slider height based on each slide's height
169
  ```
170
  default: false
172
  ```
173
 
174
  **adaptiveHeightSpeed**
175
+
176
  Slide height transition duration (in ms). Note: only used if <code>adaptiveHeight: true</code>
177
  ```
178
  default: 500
180
  ```
181
 
182
  **video**
183
+
184
  If any slides contain video, set this to <code>true</code>. Also, include <code>plugins/jquery.fitvids.js</code><br />See <a href="http://fitvidsjs.com/" target="_blank">http://fitvidsjs.com/</a> for more info
185
  ```
186
  default: false
188
  ```
189
 
190
  **responsive**
191
+
192
  Enable or disable auto resize of the slider. Useful if you need to use fixed width sliders.
193
  ```
194
  default: true
196
  ```
197
 
198
  **useCSS**
199
+
200
  If true, CSS transitions will be used for horizontal and vertical slide animations (this uses native hardware acceleration). If false, jQuery animate() will be used.
201
  ```
202
  default: true
204
  ```
205
 
206
  **preloadImages**
207
+
208
  If 'all', preloads all images before starting the slider. If 'visible', preloads only images in the initially visible slides before starting the slider (tip: use 'visible' if all slides are identical dimensions)
209
  ```
210
  default: 'visible'
212
  ```
213
 
214
  **touchEnabled**
215
+
216
  If <code>true</code>, slider will allow touch swipe transitions
217
  ```
218
  default: true
220
  ```
221
 
222
  **swipeThreshold**
223
+
224
  Amount of pixels a touch swipe needs to exceed in order to execute a slide transition. Note: only used if <code>touchEnabled: true</code>
225
  ```
226
  default: 50
228
  ```
229
 
230
  **oneToOneTouch**
231
+
232
  If <code>true</code>, non-fade slides follow the finger as it swipes
233
  ```
234
  default: true
236
  ```
237
 
238
  **preventDefaultSwipeX**
239
+
240
  If <code>true</code>, touch screen will not move along the x-axis as the finger swipes
241
  ```
242
  default: true
244
  ```
245
 
246
  **preventDefaultSwipeY**
247
+
248
  If <code>true</code>, touch screen will not move along the y-axis as the finger swipes
249
  ```
250
  default: false
252
  ```
253
 
254
  **wrapperClass**
255
+
256
  Class to wrap the slider in. Change to prevent from using default bxSlider styles.
257
  ```
258
  default: 'bx-wrapper'
259
  options: string
260
  ```
261
 
262
+ ### Pager
263
 
264
  **pager**
265
+
266
  If <code>true</code>, a pager will be added
267
  ```
268
  default: true
270
  ```
271
 
272
  **pagerType**
273
+
274
  If <code>'full'</code>, a pager link will be generated for each slide. If <code>'short'</code>, a x / y pager will be used (ex. 1 / 5)
275
  ```
276
  default: 'full'
278
  ```
279
 
280
  **pagerShortSeparator**
281
+
282
  If <code>pagerType: 'short'</code>, pager will use this value as the separating character
283
  ```
284
  default: ' / '
286
  ```
287
 
288
  **pagerSelector**
289
+
290
  Element used to populate the populate the pager. By default, the pager is appended to the bx-viewport
291
  ```
292
  default: ''
294
  ```
295
 
296
  **pagerCustom**
297
+
298
  Parent element to be used as the pager. Parent element must contain a <code>&lt;a data-slide-index="x"&gt;</code> element for each slide. See example <a href="/examples/thumbnail-method-1">here</a>. Not for use with dynamic carousels.
299
  ```
300
  default: null
302
  ```
303
 
304
  **buildPager**
305
+
306
  If supplied, function is called on every slide element, and the returned value is used as the pager item markup.<br />See <a href="http://bxslider.com/examples">examples</a> for detailed implementation
307
  ```
308
  default: null
309
  options: function(slideIndex)
310
  ```
311
 
312
+ ### Controls
313
 
314
  **controls**
315
+
316
  If <code>true</code>, "Next" / "Prev" controls will be added
317
  ```
318
  default: true
320
  ```
321
 
322
  **nextText**
323
+
324
  Text to be used for the "Next" control
325
  ```
326
  default: 'Next'
328
  ```
329
 
330
  **prevText**
331
+
332
  Text to be used for the "Prev" control
333
  ```
334
  default: 'Prev'
336
  ```
337
 
338
  **nextSelector**
339
+
340
  Element used to populate the "Next" control
341
  ```
342
  default: null
344
  ```
345
 
346
  **prevSelector**
347
+
348
  Element used to populate the "Prev" control
349
  ```
350
  default: null
352
  ```
353
 
354
  **autoControls**
355
+
356
  If <code>true</code>, "Start" / "Stop" controls will be added
357
  ```
358
  default: false
360
  ```
361
 
362
  **startText**
363
+
364
  Text to be used for the "Start" control
365
  ```
366
  default: 'Start'
368
  ```
369
 
370
  **stopText**
371
+
372
  Text to be used for the "Stop" control
373
  ```
374
  default: 'Stop'
376
  ```
377
 
378
  **autoControlsCombine**
379
+
380
  When slideshow is playing only "Stop" control is displayed and vice-versa
381
  ```
382
  default: false
384
  ```
385
 
386
  **autoControlsSelector**
387
+
388
  Element used to populate the auto controls
389
  ```
390
  default: null
392
  ```
393
 
394
  **keyboardEnabled**
395
+
396
  Enable keyboard navigation for visible sliders
397
  ```
398
  default: false
399
  options: boolean (true / false)
400
  ```
401
 
402
+ ### Auto
403
 
404
  **auto**
405
+
406
  Slides will automatically transition
407
  ```
408
  default: false
409
  options: boolean (true / false)
410
  ```
411
  **stopAutoOnClick**
412
+
413
  Auto will stop on interaction with controls
414
  ```
415
  default: false
417
  ```
418
 
419
  **pause**
420
+
421
  The amount of time (in ms) between each auto transition
422
  ```
423
  default: 4000
425
  ```
426
 
427
  **autoStart**
428
+
429
  Auto show starts playing on load. If <code>false</code>, slideshow will start when the "Start" control is clicked
430
  ```
431
  default: true
433
  ```
434
 
435
  **autoDirection**
436
+
437
  The direction of auto show slide transitions
438
  ```
439
  default: 'next'
441
  ```
442
 
443
  **autoHover**
444
+
445
  Auto show will pause when mouse hovers over slider
446
  ```
447
  default: false
449
  ```
450
 
451
  **autoDelay**
452
+
453
  Time (in ms) auto show should wait before starting
454
  ```
455
  default: 0
456
  options: integer
457
  ```
458
 
459
+ ### Carousel
460
 
461
  **minSlides**
462
+
463
  The minimum number of slides to be shown. Slides will be sized down if carousel becomes smaller than the original size.
464
  ```
465
  default: 1
467
  ```
468
 
469
  **maxSlides**
470
+
471
  The maximum number of slides to be shown. Slides will be sized up if carousel becomes larger than the original size.
472
  ```
473
  default: 1
475
  ```
476
 
477
  **moveSlides**
478
+
479
+ The number of slides to move on transition. This value must be `>= minSlides`, and `<= maxSlides`. If zero (default), the number of fully-visible slides will be used.
480
  ```
481
  default: 0
482
  options: integer
483
  ```
484
 
485
  **slideWidth**
486
+
487
  The width of each slide. This setting is required for all horizontal carousels!
488
  ```
489
  default: 0
491
  ```
492
 
493
  **shrinkItems**
494
+
495
  The Carousel will only show whole items and shrink the images to fit the viewport based on maxSlides/MinSlides.
496
  ```
497
  default: false
498
  options: boolean (true / false)
499
  ```
500
 
501
+ ### Keyboard
502
 
503
  **keyboardEnabled**
504
+
505
  Allows for keyboard control of visible slider. Keypress ignored if slider not visible.
506
  ```
507
  default: false
508
  options: boolean (true / false)
509
  ```
510
 
511
+ ### Accessibility
512
+
513
  **ariaLive**
514
+
515
  Adds Aria Live attribute to slider.
516
  ```
517
  default: true
518
  options: boolean (true / false)
519
  ```
520
+
521
  **ariaHidden**
522
+
523
  Adds Aria Hidden attribute to any nonvisible slides.
524
  ```
525
  default: true
526
  options: boolean (true / false)
527
  ```
528
 
529
+ ### Callbacks
530
 
531
  **onSliderLoad**
532
+
533
  Executes immediately after the slider is fully loaded
534
  ```
535
  default: function(){}
539
  ```
540
 
541
  **onSliderResize**
542
+
543
  Executes immediately after the slider is resized
544
  ```
545
  default: function(){}
549
  ```
550
 
551
  **onSlideBefore**
552
+
553
  Executes immediately before each slide transition.
554
  ```
555
  default: function(){}
561
  ```
562
 
563
  **onSlideAfter**
564
+
565
  Executes immediately after each slide transition. Function argument is the current slide element (when transition completes).
566
  ```
567
  default: function(){}
573
  ```
574
 
575
  **onSlideNext**
576
+
577
  Executes immediately before each "Next" slide transition. Function argument is the target (next) slide element.
578
  ```
579
  default: function(){}
585
  ```
586
 
587
  **onSlidePrev**
588
+
589
  Executes immediately before each "Prev" slide transition. Function argument is the target (prev) slide element.
590
  ```
591
  default: function(){}
596
  newIndex: element index of the destination slide (after the transition)
597
  ```
598
 
599
+ **onAutoChange**
600
+
601
+ Executes immediately after auto transtion starts or stops.
602
+ ```
603
+ default: function(){}
604
+ options: function(state){ // your code here }
605
+ arguments:
606
+ state: the new state of "auto": boolean (true / false)
607
+ ```
608
+
609
+ ### Public methods
610
 
611
  **goToSlide**
612
+
613
  Performs a slide transition to the supplied slide index (zero-based)
614
  ```
615
  example:
618
  ```
619
 
620
  **goToNextSlide**
621
+
622
  Performs a "Next" slide transition
623
  ```
624
  example:
627
  ```
628
 
629
  **goToPrevSlide**
630
+
631
  Performs a "Prev" slide transition
632
  ```
633
  example:
636
  ```
637
 
638
  **startAuto**
639
+ Starts the auto show. Provide an argument `false` to prevent the auto controls from being updated.
640
  ```
641
  example:
642
  slider = $('.bxslider').bxSlider();
644
  ```
645
 
646
  **stopAuto**
647
+
648
+ Stops the auto show. Provide an argument `false` to prevent the auto controls from being updated.
649
  ```
650
  example:
651
  slider = $('.bxslider').bxSlider();
653
  ```
654
 
655
  **getCurrentSlide**
656
+
657
  Returns the current active slide
658
  ```
659
  example:
662
  ```
663
 
664
  **getSlideCount**
665
+
666
  Returns the total number of slides in the slider
667
  ```
668
  example:
671
  ```
672
 
673
  **redrawSlider**
674
+
675
  Redraw the slider. Useful when needing to redraw a hidden slider after it is unhidden.
676
  ```
677
  example:
680
  ```
681
 
682
  **reloadSlider**
683
+
684
+ Reload the slider. Useful when adding slides on the fly. Accepts an optional settings object.
685
  ```
686
  example:
687
  slider = $('.bxslider').bxSlider();
689
  ```
690
 
691
  **destroySlider**
692
+
693
  Destroy the slider. This reverts all slider elements back to their original state (before calling the slider).
694
  ```
695
  example:
697
  slider.destroySlider();
698
  ```
699
 
700
+ ### Local Development with Gulp
701
 
702
  **Unfamiliar with npm? Don't have node installed?** [Download and install node.js](http://nodejs.org/download/) before proceeding.
703
 
704
  From the command line:
705
 
706
+ 1. Install the CLI: `npm install --global gulp-cli`
707
+ 2. Run `npm install` to install local development tools
708
+ 3. Run `gulp` which will build the project
 
 
 
 
 
 
 
 
 
 
709
 
710
  ## Contributing
711
 
718
 
719
  ## Changelog
720
 
721
+ ### Version 4.2.12
722
+ * Fixes auto control theme
723
+
724
+ ### Version 4.2.11
725
+ * Removes auto-centering for sliders with no pager or controls
726
+
727
+ ### Version 4.2.10
728
+ * Bumps npm and bower versions
729
+
730
+ ### Version 4.2.9
731
+ * Removes node engine version requirement
732
+
733
+ ### Version 4.2.8
734
+ * Removes auto-centering from the theme file (`jquery.bxslider.css`)
735
+
736
+ ### Version 4.2.7
737
+ * Allows new version to be published to NPM
738
+
739
+ ### Version 4.2.6
740
+ * Fix: jQuery 3 support
741
+ * Adds Gulp and removes Grunt (for easier local development)
742
+
743
  ### Version 4.2.5
744
  * Fix: Vertical carousel minSlides not working #840
745
  * Fix: slider breaks with css animations if settings.speed set to 0 #838
746
  * Fix: Slider runs into undefined state when reloadSlider is called before initialization was finished #833
747
 
748
  ### Version 4.2.4
749
+
750
+ NOTICE: We have switched to a Grunt based build process in order to leverage [Assemble](http://assemble.io) for local documentation building. Please review the above notes about Grunt for the commands available.
751
 
752
  * Fix: Fixed transition from first to last slide during infinite loop #778
753
  * Fix: Reload on multiple sliders doesn't work? #755
760
  * Enhancement: Slider getter through jquery object #739
761
  * Enhancement: Add aria attributes #751
762
  * Enhancement: Slider element in every callback and a new method getSliderElement (#780)
763
+ * Enhancement: Local Documentiation and examples. I have added buildable documentation to the repo. This will expand over time and allow for community corrections as needed. Please see above Grunt notes on how to build.
764
 
765
 
766
  ### Version 4.2.3
844
  * Slider now only needs to load visible slides (by default) in order to initialize which results in much faster loading. A "preloadImages" setting allows for configuration.
845
 
846
 
847
+ Long live Zep.
includes/libraries/bxslider-4/dist/jquery.bxslider.css CHANGED
@@ -1,18 +1,10 @@
1
- /**
2
- * bxSlider v4.2.5
3
- * Copyright 2013-2015 Steven Wanderski
4
- * Written while drinking Belgian ales and listening to jazz
5
-
6
- * Licensed under MIT (http://opensource.org/licenses/MIT)
7
- */
8
-
9
- /** VARIABLES
10
  ===================================*/
11
  /** RESET AND LAYOUT
12
  ===================================*/
13
  .bx-wrapper {
14
  position: relative;
15
- margin: 0 auto 60px;
16
  padding: 0;
17
  *zoom: 1;
18
  -ms-touch-action: pan-y;
@@ -30,8 +22,8 @@ ul.bxslider {
30
  list-style: none;
31
  }
32
  .bx-viewport {
33
- /*fix other elements on the page moving (on Chrome)*/
34
- -webkit-transform: translatez(0);
35
  }
36
  /** THEME
37
  ===================================*/
@@ -88,6 +80,7 @@ ul.bxslider {
88
  .bx-wrapper .bx-pager-item,
89
  .bx-wrapper .bx-controls-auto .bx-controls-auto-item {
90
  display: inline-block;
 
91
  *zoom: 1;
92
  *display: inline;
93
  }
1
+ /** VARIABLES
 
 
 
 
 
 
 
 
2
  ===================================*/
3
  /** RESET AND LAYOUT
4
  ===================================*/
5
  .bx-wrapper {
6
  position: relative;
7
+ margin-bottom: 60px;
8
  padding: 0;
9
  *zoom: 1;
10
  -ms-touch-action: pan-y;
22
  list-style: none;
23
  }
24
  .bx-viewport {
25
+ /* fix other elements on the page moving (in Chrome) */
26
+ -webkit-transform: translateZ(0);
27
  }
28
  /** THEME
29
  ===================================*/
80
  .bx-wrapper .bx-pager-item,
81
  .bx-wrapper .bx-controls-auto .bx-controls-auto-item {
82
  display: inline-block;
83
+ vertical-align: bottom;
84
  *zoom: 1;
85
  *display: inline;
86
  }
includes/libraries/bxslider-4/dist/jquery.bxslider.js CHANGED
@@ -1,8 +1,7 @@
1
  /**
2
- * bxSlider v4.2.5
3
  * Copyright 2013-2015 Steven Wanderski
4
  * Written while drinking Belgian ales and listening to jazz
5
-
6
  * Licensed under MIT (http://opensource.org/licenses/MIT)
7
  */
8
 
@@ -89,7 +88,8 @@
89
  onSlideAfter: function() { return true; },
90
  onSlideNext: function() { return true; },
91
  onSlidePrev: function() { return true; },
92
- onSliderResize: function() { return true; }
 
93
  };
94
 
95
  $.fn.bxSlider = function(options) {
@@ -226,15 +226,10 @@
226
  slider.viewport.parent().css({
227
  maxWidth: getViewportMaxWidth()
228
  });
229
- // make modification to the wrapper (.bx-wrapper)
230
- if (!slider.settings.pager && !slider.settings.controls) {
231
- slider.viewport.parent().css({
232
- margin: '0 auto 0px'
233
- });
234
- }
235
  // apply css to all slider children
236
  slider.children.css({
237
- float: slider.settings.mode === 'horizontal' ? 'left' : 'none',
 
238
  listStyle: 'none',
239
  position: 'relative'
240
  });
@@ -290,7 +285,7 @@
290
  $(this).one('load error', function() {
291
  if (++count === total) { callback(); }
292
  }).each(function() {
293
- if (this.complete) { $(this).load(); }
294
  });
295
  });
296
  };
@@ -455,7 +450,7 @@
455
  } else {
456
  childWidth = slider.children.first().width() + slider.settings.slideMargin;
457
  slidesShowing = Math.floor((slider.viewport.width() +
458
- slider.settings.slideMargin) / childWidth);
459
  }
460
  // if "vertical" mode, slides showing will always be minSlides
461
  } else if (slider.settings.mode === 'vertical') {
@@ -482,6 +477,7 @@
482
  breakPoint = counter + getNumberSlidesShowing();
483
  counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
484
  }
 
485
  }
486
  // if moveSlides is 0 (auto) divide children length by sides showing, then round up
487
  } else {
@@ -901,7 +897,9 @@
901
  }
902
  }
903
  };
904
-
 
 
905
  /**
906
  * Initializes the auto process
907
  */
@@ -914,11 +912,7 @@
914
  el.startAuto();
915
 
916
  //add focus and blur events to ensure its running if timeout gets paused
917
- $(window).focus(function() {
918
- el.startAuto();
919
- }).blur(function() {
920
- el.stopAuto();
921
- });
922
  }
923
  // if autoHover is requested
924
  if (slider.settings.autoHover) {
@@ -1434,9 +1428,8 @@
1434
  value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top;
1435
  // plugin values to be animated
1436
  setPositionProperty(value, 'slide', slider.settings.speed);
1437
- } else {
1438
- slider.working = false;
1439
  }
 
1440
  }
1441
  if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }
1442
  };
@@ -1447,6 +1440,7 @@
1447
  el.goToNextSlide = function() {
1448
  // if infiniteLoop is false and last page is showing, disregard call
1449
  if (!slider.settings.infiniteLoop && slider.active.last) { return; }
 
1450
  var pagerIndex = parseInt(slider.active.index) + 1;
1451
  el.goToSlide(pagerIndex, 'next');
1452
  };
@@ -1457,6 +1451,7 @@
1457
  el.goToPrevSlide = function() {
1458
  // if infiniteLoop is false and last page is showing, disregard call
1459
  if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; }
 
1460
  var pagerIndex = parseInt(slider.active.index) - 1;
1461
  el.goToSlide(pagerIndex, 'prev');
1462
  };
@@ -1478,6 +1473,8 @@
1478
  el.goToPrevSlide();
1479
  }
1480
  }, slider.settings.pause);
 
 
1481
  // if auto controls are displayed and preventControlUpdate is not true
1482
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); }
1483
  };
@@ -1494,6 +1491,8 @@
1494
  // clear the interval
1495
  clearInterval(slider.interval);
1496
  slider.interval = null;
 
 
1497
  // if auto controls are displayed and preventControlUpdate is not true
1498
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); }
1499
  };
@@ -1590,6 +1589,8 @@
1590
  if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); }
1591
  //remove self reference in data
1592
  $(this).removeData('bxSlider');
 
 
1593
  };
1594
 
1595
  /**
1
  /**
2
+ * bxSlider v4.2.12
3
  * Copyright 2013-2015 Steven Wanderski
4
  * Written while drinking Belgian ales and listening to jazz
 
5
  * Licensed under MIT (http://opensource.org/licenses/MIT)
6
  */
7
 
88
  onSlideAfter: function() { return true; },
89
  onSlideNext: function() { return true; },
90
  onSlidePrev: function() { return true; },
91
+ onSliderResize: function() { return true; },
92
+ onAutoChange: function() { return true; } //calls when auto slides starts and stops
93
  };
94
 
95
  $.fn.bxSlider = function(options) {
226
  slider.viewport.parent().css({
227
  maxWidth: getViewportMaxWidth()
228
  });
 
 
 
 
 
 
229
  // apply css to all slider children
230
  slider.children.css({
231
+ // the float attribute is a reserved word in compressors like YUI compressor and need to be quoted #48
232
+ 'float': slider.settings.mode === 'horizontal' ? 'left' : 'none',
233
  listStyle: 'none',
234
  position: 'relative'
235
  });
285
  $(this).one('load error', function() {
286
  if (++count === total) { callback(); }
287
  }).each(function() {
288
+ if (this.complete || this.src == '') { $(this).trigger('load'); }
289
  });
290
  });
291
  };
450
  } else {
451
  childWidth = slider.children.first().width() + slider.settings.slideMargin;
452
  slidesShowing = Math.floor((slider.viewport.width() +
453
+ slider.settings.slideMargin) / childWidth) || 1;
454
  }
455
  // if "vertical" mode, slides showing will always be minSlides
456
  } else if (slider.settings.mode === 'vertical') {
477
  breakPoint = counter + getNumberSlidesShowing();
478
  counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
479
  }
480
+ return counter;
481
  }
482
  // if moveSlides is 0 (auto) divide children length by sides showing, then round up
483
  } else {
897
  }
898
  }
899
  };
900
+ /* auto start and stop functions */
901
+ var windowFocusHandler = function() { el.startAuto(); };
902
+ var windowBlurHandler = function() { el.stopAuto(); };
903
  /**
904
  * Initializes the auto process
905
  */
912
  el.startAuto();
913
 
914
  //add focus and blur events to ensure its running if timeout gets paused
915
+ $(window).focus(windowFocusHandler).blur(windowBlurHandler);
 
 
 
 
916
  }
917
  // if autoHover is requested
918
  if (slider.settings.autoHover) {
1428
  value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top;
1429
  // plugin values to be animated
1430
  setPositionProperty(value, 'slide', slider.settings.speed);
 
 
1431
  }
1432
+ slider.working = false;
1433
  }
1434
  if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }
1435
  };
1440
  el.goToNextSlide = function() {
1441
  // if infiniteLoop is false and last page is showing, disregard call
1442
  if (!slider.settings.infiniteLoop && slider.active.last) { return; }
1443
+ if (slider.working == true){ return ;}
1444
  var pagerIndex = parseInt(slider.active.index) + 1;
1445
  el.goToSlide(pagerIndex, 'next');
1446
  };
1451
  el.goToPrevSlide = function() {
1452
  // if infiniteLoop is false and last page is showing, disregard call
1453
  if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; }
1454
+ if (slider.working == true){ return ;}
1455
  var pagerIndex = parseInt(slider.active.index) - 1;
1456
  el.goToSlide(pagerIndex, 'prev');
1457
  };
1473
  el.goToPrevSlide();
1474
  }
1475
  }, slider.settings.pause);
1476
+ //allback for when the auto rotate status changes
1477
+ slider.settings.onAutoChange.call(el, true);
1478
  // if auto controls are displayed and preventControlUpdate is not true
1479
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); }
1480
  };
1491
  // clear the interval
1492
  clearInterval(slider.interval);
1493
  slider.interval = null;
1494
+ //allback for when the auto rotate status changes
1495
+ slider.settings.onAutoChange.call(el, false);
1496
  // if auto controls are displayed and preventControlUpdate is not true
1497
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); }
1498
  };
1589
  if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); }
1590
  //remove self reference in data
1591
  $(this).removeData('bxSlider');
1592
+ // remove global window handlers
1593
+ $(window).off('blur', windowBlurHandler).off('focus', windowFocusHandler);
1594
  };
1595
 
1596
  /**
includes/libraries/bxslider-4/dist/jquery.bxslider.min.css CHANGED
@@ -1,10 +1 @@
1
- /**
2
- * bxSlider v4.2.5
3
- * Copyright 2013-2015 Steven Wanderski
4
- * Written while drinking Belgian ales and listening to jazz
5
-
6
- * Licensed under MIT (http://opensource.org/licenses/MIT)
7
- */
8
-
9
-
10
- .bx-wrapper{position:relative;margin:0 auto 60px;padding:0;*zoom:1;-ms-touch-action:pan-y;touch-action:pan-y}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper{-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;*zoom:1;*display:inline}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) no-repeat 0 -32px}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) no-repeat -43px -32px}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px}
1
+ .bx-wrapper{position:relative;margin-bottom:60px;padding:0;-ms-touch-action:pan-y;touch-action:pan-y;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translateZ(0)}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;vertical-align:bottom}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) 0 -32px no-repeat}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) -43px -32px no-repeat}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px}
 
 
 
 
 
 
 
 
 
includes/libraries/bxslider-4/dist/jquery.bxslider.min.js CHANGED
@@ -1,9 +1,7 @@
1
  /**
2
- * bxSlider v4.2.5
3
  * Copyright 2013-2015 Steven Wanderski
4
  * Written while drinking Belgian ales and listening to jazz
5
-
6
  * Licensed under MIT (http://opensource.org/licenses/MIT)
7
  */
8
-
9
- !function(a){var b={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};a.fn.bxSlider=function(c){if(0===this.length)return this;if(this.length>1)return this.each(function(){a(this).bxSlider(c)}),this;var d={},e=this,f=a(window).width(),g=a(window).height();if(!a(e).data("bxSlider")){var h=function(){a(e).data("bxSlider")||(d.settings=a.extend({},b,c),d.settings.slideWidth=parseInt(d.settings.slideWidth),d.children=e.children(d.settings.slideSelector),d.children.length<d.settings.minSlides&&(d.settings.minSlides=d.children.length),d.children.length<d.settings.maxSlides&&(d.settings.maxSlides=d.children.length),d.settings.randomStart&&(d.settings.startSlide=Math.floor(Math.random()*d.children.length)),d.active={index:d.settings.startSlide},d.carousel=d.settings.minSlides>1||d.settings.maxSlides>1?!0:!1,d.carousel&&(d.settings.preloadImages="all"),d.minThreshold=d.settings.minSlides*d.settings.slideWidth+(d.settings.minSlides-1)*d.settings.slideMargin,d.maxThreshold=d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin,d.working=!1,d.controls={},d.interval=null,d.animProp="vertical"===d.settings.mode?"top":"left",d.usingCSS=d.settings.useCSS&&"fade"!==d.settings.mode&&function(){for(var a=document.createElement("div"),b=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],c=0;c<b.length;c++)if(void 0!==a.style[b[c]])return d.cssPrefix=b[c].replace("Perspective","").toLowerCase(),d.animProp="-"+d.cssPrefix+"-transform",!0;return!1}(),"vertical"===d.settings.mode&&(d.settings.maxSlides=d.settings.minSlides),e.data("origStyle",e.attr("style")),e.children(d.settings.slideSelector).each(function(){a(this).data("origStyle",a(this).attr("style"))}),j())},j=function(){var b=d.children.eq(d.settings.startSlide);e.wrap('<div class="'+d.settings.wrapperClass+'"><div class="bx-viewport"></div></div>'),d.viewport=e.parent(),d.settings.ariaLive&&!d.settings.ticker&&d.viewport.attr("aria-live","polite"),d.loader=a('<div class="bx-loading" />'),d.viewport.prepend(d.loader),e.css({width:"horizontal"===d.settings.mode?1e3*d.children.length+215+"%":"auto",position:"relative"}),d.usingCSS&&d.settings.easing?e.css("-"+d.cssPrefix+"-transition-timing-function",d.settings.easing):d.settings.easing||(d.settings.easing="swing"),d.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),d.viewport.parent().css({maxWidth:n()}),d.settings.pager||d.settings.controls||d.viewport.parent().css({margin:"0 auto 0px"}),d.children.css({"float":"horizontal"===d.settings.mode?"left":"none",listStyle:"none",position:"relative"}),d.children.css("width",o()),"horizontal"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginRight",d.settings.slideMargin),"vertical"===d.settings.mode&&d.settings.slideMargin>0&&d.children.css("marginBottom",d.settings.slideMargin),"fade"===d.settings.mode&&(d.children.css({position:"absolute",zIndex:0,display:"none"}),d.children.eq(d.settings.startSlide).css({zIndex:d.settings.slideZIndex,display:"block"})),d.controls.el=a('<div class="bx-controls" />'),d.settings.captions&&y(),d.active.last=d.settings.startSlide===q()-1,d.settings.video&&e.fitVids(),("all"===d.settings.preloadImages||d.settings.ticker)&&(b=d.children),d.settings.ticker?d.settings.pager=!1:(d.settings.controls&&w(),d.settings.auto&&d.settings.autoControls&&x(),d.settings.pager&&v(),(d.settings.controls||d.settings.autoControls||d.settings.pager)&&d.viewport.after(d.controls.el)),k(b,l)},k=function(b,c){var d=b.find('img:not([src=""]), iframe').length,e=0;return 0===d?void c():void b.find('img:not([src=""]), iframe').each(function(){a(this).one("load error",function(){++e===d&&c()}).each(function(){this.complete&&a(this).load()})})},l=function(){if(d.settings.infiniteLoop&&"fade"!==d.settings.mode&&!d.settings.ticker){var b="vertical"===d.settings.mode?d.settings.minSlides:d.settings.maxSlides,c=d.children.slice(0,b).clone(!0).addClass("bx-clone"),f=d.children.slice(-b).clone(!0).addClass("bx-clone");d.settings.ariaHidden&&(c.attr("aria-hidden",!0),f.attr("aria-hidden",!0)),e.append(c).prepend(f)}d.loader.remove(),s(),"vertical"===d.settings.mode&&(d.settings.adaptiveHeight=!0),d.viewport.height(m()),e.redrawSlider(),d.settings.onSliderLoad.call(e,d.active.index),d.initialized=!0,d.settings.responsive&&a(window).bind("resize",S),d.settings.auto&&d.settings.autoStart&&(q()>1||d.settings.autoSlideForOnePage)&&I(),d.settings.ticker&&J(),d.settings.pager&&E(d.settings.startSlide),d.settings.controls&&H(),d.settings.touchEnabled&&!d.settings.ticker&&N(),d.settings.keyboardEnabled&&!d.settings.ticker&&a(document).keydown(M)},m=function(){var b=0,c=a();if("vertical"===d.settings.mode||d.settings.adaptiveHeight)if(d.carousel){var e=1===d.settings.moveSlides?d.active.index:d.active.index*r();for(c=d.children.eq(e),i=1;i<=d.settings.maxSlides-1;i++)c=e+i>=d.children.length?c.add(d.children.eq(i-1)):c.add(d.children.eq(e+i))}else c=d.children.eq(d.active.index);else c=d.children;return"vertical"===d.settings.mode?(c.each(function(c){b+=a(this).outerHeight()}),d.settings.slideMargin>0&&(b+=d.settings.slideMargin*(d.settings.minSlides-1))):b=Math.max.apply(Math,c.map(function(){return a(this).outerHeight(!1)}).get()),"border-box"===d.viewport.css("box-sizing")?b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))+parseFloat(d.viewport.css("border-top-width"))+parseFloat(d.viewport.css("border-bottom-width")):"padding-box"===d.viewport.css("box-sizing")&&(b+=parseFloat(d.viewport.css("padding-top"))+parseFloat(d.viewport.css("padding-bottom"))),b},n=function(){var a="100%";return d.settings.slideWidth>0&&(a="horizontal"===d.settings.mode?d.settings.maxSlides*d.settings.slideWidth+(d.settings.maxSlides-1)*d.settings.slideMargin:d.settings.slideWidth),a},o=function(){var a=d.settings.slideWidth,b=d.viewport.width();if(0===d.settings.slideWidth||d.settings.slideWidth>b&&!d.carousel||"vertical"===d.settings.mode)a=b;else if(d.settings.maxSlides>1&&"horizontal"===d.settings.mode){if(b>d.maxThreshold)return a;b<d.minThreshold?a=(b-d.settings.slideMargin*(d.settings.minSlides-1))/d.settings.minSlides:d.settings.shrinkItems&&(a=Math.floor((b+d.settings.slideMargin)/Math.ceil((b+d.settings.slideMargin)/(a+d.settings.slideMargin))-d.settings.slideMargin))}return a},p=function(){var a=1,b=null;return"horizontal"===d.settings.mode&&d.settings.slideWidth>0?d.viewport.width()<d.minThreshold?a=d.settings.minSlides:d.viewport.width()>d.maxThreshold?a=d.settings.maxSlides:(b=d.children.first().width()+d.settings.slideMargin,a=Math.floor((d.viewport.width()+d.settings.slideMargin)/b)):"vertical"===d.settings.mode&&(a=d.settings.minSlides),a},q=function(){var a=0,b=0,c=0;if(d.settings.moveSlides>0)if(d.settings.infiniteLoop)a=Math.ceil(d.children.length/r());else for(;b<d.children.length;)++a,b=c+p(),c+=d.settings.moveSlides<=p()?d.settings.moveSlides:p();else a=Math.ceil(d.children.length/p());return a},r=function(){return d.settings.moveSlides>0&&d.settings.moveSlides<=p()?d.settings.moveSlides:p()},s=function(){var a,b,c;d.children.length>d.settings.maxSlides&&d.active.last&&!d.settings.infiniteLoop?"horizontal"===d.settings.mode?(b=d.children.last(),a=b.position(),t(-(a.left-(d.viewport.width()-b.outerWidth())),"reset",0)):"vertical"===d.settings.mode&&(c=d.children.length-d.settings.minSlides,a=d.children.eq(c).position(),t(-a.top,"reset",0)):(a=d.children.eq(d.active.index*r()).position(),d.active.index===q()-1&&(d.active.last=!0),void 0!==a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0)))},t=function(b,c,f,g){var h,i;d.usingCSS?(i="vertical"===d.settings.mode?"translate3d(0, "+b+"px, 0)":"translate3d("+b+"px, 0, 0)",e.css("-"+d.cssPrefix+"-transition-duration",f/1e3+"s"),"slide"===c?(e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),F())}):F()):"reset"===c?e.css(d.animProp,i):"ticker"===c&&(e.css("-"+d.cssPrefix+"-transition-timing-function","linear"),e.css(d.animProp,i),0!==f?e.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(b){a(b.target).is(e)&&(e.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),t(g.resetValue,"reset",0),K())}):(t(g.resetValue,"reset",0),K()))):(h={},h[d.animProp]=b,"slide"===c?e.animate(h,f,d.settings.easing,function(){F()}):"reset"===c?e.css(d.animProp,b):"ticker"===c&&e.animate(h,f,"linear",function(){t(g.resetValue,"reset",0),K()}))},u=function(){for(var b="",c="",e=q(),f=0;e>f;f++)c="",d.settings.buildPager&&a.isFunction(d.settings.buildPager)||d.settings.pagerCustom?(c=d.settings.buildPager(f),d.pagerEl.addClass("bx-custom-pager")):(c=f+1,d.pagerEl.addClass("bx-default-pager")),b+='<div class="bx-pager-item"><a href="" data-slide-index="'+f+'" class="bx-pager-link">'+c+"</a></div>";d.pagerEl.html(b)},v=function(){d.settings.pagerCustom?d.pagerEl=a(d.settings.pagerCustom):(d.pagerEl=a('<div class="bx-pager" />'),d.settings.pagerSelector?a(d.settings.pagerSelector).html(d.pagerEl):d.controls.el.addClass("bx-has-pager").append(d.pagerEl),u()),d.pagerEl.on("click touchend","a",D)},w=function(){d.controls.next=a('<a class="bx-next" href="">'+d.settings.nextText+"</a>"),d.controls.prev=a('<a class="bx-prev" href="">'+d.settings.prevText+"</a>"),d.controls.next.bind("click touchend",z),d.controls.prev.bind("click touchend",A),d.settings.nextSelector&&a(d.settings.nextSelector).append(d.controls.next),d.settings.prevSelector&&a(d.settings.prevSelector).append(d.controls.prev),d.settings.nextSelector||d.settings.prevSelector||(d.controls.directionEl=a('<div class="bx-controls-direction" />'),d.controls.directionEl.append(d.controls.prev).append(d.controls.next),d.controls.el.addClass("bx-has-controls-direction").append(d.controls.directionEl))},x=function(){d.controls.start=a('<div class="bx-controls-auto-item"><a class="bx-start" href="">'+d.settings.startText+"</a></div>"),d.controls.stop=a('<div class="bx-controls-auto-item"><a class="bx-stop" href="">'+d.settings.stopText+"</a></div>"),d.controls.autoEl=a('<div class="bx-controls-auto" />'),d.controls.autoEl.on("click",".bx-start",B),d.controls.autoEl.on("click",".bx-stop",C),d.settings.autoControlsCombine?d.controls.autoEl.append(d.controls.start):d.controls.autoEl.append(d.controls.start).append(d.controls.stop),d.settings.autoControlsSelector?a(d.settings.autoControlsSelector).html(d.controls.autoEl):d.controls.el.addClass("bx-has-controls-auto").append(d.controls.autoEl),G(d.settings.autoStart?"stop":"start")},y=function(){d.children.each(function(b){var c=a(this).find("img:first").attr("title");void 0!==c&&(""+c).length&&a(this).append('<div class="bx-caption"><span>'+c+"</span></div>")})},z=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToNextSlide())},A=function(a){a.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),e.goToPrevSlide())},B=function(a){e.startAuto(),a.preventDefault()},C=function(a){e.stopAuto(),a.preventDefault()},D=function(b){var c,f;b.preventDefault(),d.controls.el.hasClass("disabled")||(d.settings.auto&&d.settings.stopAutoOnClick&&e.stopAuto(),c=a(b.currentTarget),void 0!==c.attr("data-slide-index")&&(f=parseInt(c.attr("data-slide-index")),f!==d.active.index&&e.goToSlide(f)))},E=function(b){var c=d.children.length;return"short"===d.settings.pagerType?(d.settings.maxSlides>1&&(c=Math.ceil(d.children.length/d.settings.maxSlides)),void d.pagerEl.html(b+1+d.settings.pagerShortSeparator+c)):(d.pagerEl.find("a").removeClass("active"),void d.pagerEl.each(function(c,d){a(d).find("a").eq(b).addClass("active")}))},F=function(){if(d.settings.infiniteLoop){var a="";0===d.active.index?a=d.children.eq(0).position():d.active.index===q()-1&&d.carousel?a=d.children.eq((q()-1)*r()).position():d.active.index===d.children.length-1&&(a=d.children.eq(d.children.length-1).position()),a&&("horizontal"===d.settings.mode?t(-a.left,"reset",0):"vertical"===d.settings.mode&&t(-a.top,"reset",0))}d.working=!1,d.settings.onSlideAfter.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)},G=function(a){d.settings.autoControlsCombine?d.controls.autoEl.html(d.controls[a]):(d.controls.autoEl.find("a").removeClass("active"),d.controls.autoEl.find("a:not(.bx-"+a+")").addClass("active"))},H=function(){1===q()?(d.controls.prev.addClass("disabled"),d.controls.next.addClass("disabled")):!d.settings.infiniteLoop&&d.settings.hideControlOnEnd&&(0===d.active.index?(d.controls.prev.addClass("disabled"),d.controls.next.removeClass("disabled")):d.active.index===q()-1?(d.controls.next.addClass("disabled"),d.controls.prev.removeClass("disabled")):(d.controls.prev.removeClass("disabled"),d.controls.next.removeClass("disabled")))},I=function(){if(d.settings.autoDelay>0){setTimeout(e.startAuto,d.settings.autoDelay)}else e.startAuto(),a(window).focus(function(){e.startAuto()}).blur(function(){e.stopAuto()});d.settings.autoHover&&e.hover(function(){d.interval&&(e.stopAuto(!0),d.autoPaused=!0)},function(){d.autoPaused&&(e.startAuto(!0),d.autoPaused=null)})},J=function(){var b,c,f,g,h,i,j,k,l=0;"next"===d.settings.autoDirection?e.append(d.children.clone().addClass("bx-clone")):(e.prepend(d.children.clone().addClass("bx-clone")),b=d.children.first().position(),l="horizontal"===d.settings.mode?-b.left:-b.top),t(l,"reset",0),d.settings.pager=!1,d.settings.controls=!1,d.settings.autoControls=!1,d.settings.tickerHover&&(d.usingCSS?(g="horizontal"===d.settings.mode?4:5,d.viewport.hover(function(){c=e.css("-"+d.cssPrefix+"-transform"),f=parseFloat(c.split(",")[g]),t(f,"reset",0)},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(f))),K(j)})):d.viewport.hover(function(){e.stop()},function(){k=0,d.children.each(function(b){k+="horizontal"===d.settings.mode?a(this).outerWidth(!0):a(this).outerHeight(!0)}),h=d.settings.speed/k,i="horizontal"===d.settings.mode?"left":"top",j=h*(k-Math.abs(parseInt(e.css(i)))),K(j)})),K()},K=function(a){var b,c,f,g=a?a:d.settings.speed,h={left:0,top:0},i={left:0,top:0};"next"===d.settings.autoDirection?h=e.find(".bx-clone").first().position():i=d.children.first().position(),b="horizontal"===d.settings.mode?-h.left:-h.top,c="horizontal"===d.settings.mode?-i.left:-i.top,f={resetValue:c},t(b,"ticker",g,f)},L=function(b){var c=a(window),d={top:c.scrollTop(),left:c.scrollLeft()},e=b.offset();return d.right=d.left+c.width(),d.bottom=d.top+c.height(),e.right=e.left+b.outerWidth(),e.bottom=e.top+b.outerHeight(),!(d.right<e.left||d.left>e.right||d.bottom<e.top||d.top>e.bottom)},M=function(a){var b=document.activeElement.tagName.toLowerCase(),c="input|textarea",d=new RegExp(b,["i"]),f=d.exec(c);if(null==f&&L(e)){if(39===a.keyCode)return z(a),!1;if(37===a.keyCode)return A(a),!1}},N=function(){d.touch={start:{x:0,y:0},end:{x:0,y:0}},d.viewport.bind("touchstart MSPointerDown pointerdown",O),d.viewport.on("click",".bxslider a",function(a){d.viewport.hasClass("click-disabled")&&(a.preventDefault(),d.viewport.removeClass("click-disabled"))})},O=function(a){if(d.controls.el.addClass("disabled"),d.working)a.preventDefault(),d.controls.el.removeClass("disabled");else{d.touch.originalPos=e.position();var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b];d.touch.start.x=c[0].pageX,d.touch.start.y=c[0].pageY,d.viewport.get(0).setPointerCapture&&(d.pointerId=b.pointerId,d.viewport.get(0).setPointerCapture(d.pointerId)),d.viewport.bind("touchmove MSPointerMove pointermove",Q),d.viewport.bind("touchend MSPointerUp pointerup",R),d.viewport.bind("MSPointerCancel pointercancel",P)}},P=function(a){t(d.touch.originalPos.left,"reset",0),d.controls.el.removeClass("disabled"),d.viewport.unbind("MSPointerCancel pointercancel",P),d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},Q=function(a){var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],e=Math.abs(c[0].pageX-d.touch.start.x),f=Math.abs(c[0].pageY-d.touch.start.y),g=0,h=0;3*e>f&&d.settings.preventDefaultSwipeX?a.preventDefault():3*f>e&&d.settings.preventDefaultSwipeY&&a.preventDefault(),"fade"!==d.settings.mode&&d.settings.oneToOneTouch&&("horizontal"===d.settings.mode?(h=c[0].pageX-d.touch.start.x,g=d.touch.originalPos.left+h):(h=c[0].pageY-d.touch.start.y,g=d.touch.originalPos.top+h),t(g,"reset",0))},R=function(a){d.viewport.unbind("touchmove MSPointerMove pointermove",Q),d.controls.el.removeClass("disabled");var b=a.originalEvent,c="undefined"!=typeof b.changedTouches?b.changedTouches:[b],f=0,g=0;d.touch.end.x=c[0].pageX,d.touch.end.y=c[0].pageY,"fade"===d.settings.mode?(g=Math.abs(d.touch.start.x-d.touch.end.x),g>=d.settings.swipeThreshold&&(d.touch.start.x>d.touch.end.x?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto())):("horizontal"===d.settings.mode?(g=d.touch.end.x-d.touch.start.x,f=d.touch.originalPos.left):(g=d.touch.end.y-d.touch.start.y,f=d.touch.originalPos.top),!d.settings.infiniteLoop&&(0===d.active.index&&g>0||d.active.last&&0>g)?t(f,"reset",200):Math.abs(g)>=d.settings.swipeThreshold?(0>g?e.goToNextSlide():e.goToPrevSlide(),e.stopAuto()):t(f,"reset",200)),d.viewport.unbind("touchend MSPointerUp pointerup",R),d.viewport.get(0).releasePointerCapture&&d.viewport.get(0).releasePointerCapture(d.pointerId)},S=function(b){if(d.initialized)if(d.working)window.setTimeout(S,10);else{var c=a(window).width(),h=a(window).height();(f!==c||g!==h)&&(f=c,g=h,e.redrawSlider(),d.settings.onSliderResize.call(e,d.active.index))}},T=function(a){var b=p();d.settings.ariaHidden&&!d.settings.ticker&&(d.children.attr("aria-hidden","true"),d.children.slice(a,a+b).attr("aria-hidden","false"))},U=function(a){return 0>a?d.settings.infiniteLoop?q()-1:d.active.index:a>=q()?d.settings.infiniteLoop?0:d.active.index:a};return e.goToSlide=function(b,c){var f,g,h,i,j=!0,k=0,l={left:0,top:0},n=null;if(d.oldIndex=d.active.index,d.active.index=U(b),!d.working&&d.active.index!==d.oldIndex){if(d.working=!0,j=d.settings.onSlideBefore.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index),"undefined"!=typeof j&&!j)return d.active.index=d.oldIndex,void(d.working=!1);"next"===c?d.settings.onSlideNext.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1):"prev"===c&&(d.settings.onSlidePrev.call(e,d.children.eq(d.active.index),d.oldIndex,d.active.index)||(j=!1)),d.active.last=d.active.index>=q()-1,(d.settings.pager||d.settings.pagerCustom)&&E(d.active.index),d.settings.controls&&H(),"fade"===d.settings.mode?(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),d.children.filter(":visible").fadeOut(d.settings.speed).css({zIndex:0}),d.children.eq(d.active.index).css("zIndex",d.settings.slideZIndex+1).fadeIn(d.settings.speed,function(){a(this).css("zIndex",d.settings.slideZIndex),F()})):(d.settings.adaptiveHeight&&d.viewport.height()!==m()&&d.viewport.animate({height:m()},d.settings.adaptiveHeightSpeed),!d.settings.infiniteLoop&&d.carousel&&d.active.last?"horizontal"===d.settings.mode?(n=d.children.eq(d.children.length-1),l=n.position(),k=d.viewport.width()-n.outerWidth()):(f=d.children.length-d.settings.minSlides,l=d.children.eq(f).position()):d.carousel&&d.active.last&&"prev"===c?(g=1===d.settings.moveSlides?d.settings.maxSlides-r():(q()-1)*r()-(d.children.length-d.settings.maxSlides),n=e.children(".bx-clone").eq(g),l=n.position()):"next"===c&&0===d.active.index?(l=e.find("> .bx-clone").eq(d.settings.maxSlides).position(),d.active.last=!1):b>=0&&(i=b*parseInt(r()),l=d.children.eq(i).position()),"undefined"!=typeof l?(h="horizontal"===d.settings.mode?-(l.left-k):-l.top,t(h,"slide",d.settings.speed)):d.working=!1),d.settings.ariaHidden&&T(d.active.index*r())}},e.goToNextSlide=function(){if(d.settings.infiniteLoop||!d.active.last){var a=parseInt(d.active.index)+1;e.goToSlide(a,"next")}},e.goToPrevSlide=function(){if(d.settings.infiniteLoop||0!==d.active.index){var a=parseInt(d.active.index)-1;e.goToSlide(a,"prev")}},e.startAuto=function(a){d.interval||(d.interval=setInterval(function(){"next"===d.settings.autoDirection?e.goToNextSlide():e.goToPrevSlide()},d.settings.pause),d.settings.autoControls&&a!==!0&&G("stop"))},e.stopAuto=function(a){d.interval&&(clearInterval(d.interval),d.interval=null,d.settings.autoControls&&a!==!0&&G("start"))},e.getCurrentSlide=function(){return d.active.index},e.getCurrentSlideElement=function(){return d.children.eq(d.active.index)},e.getSlideElement=function(a){return d.children.eq(a)},e.getSlideCount=function(){return d.children.length},e.isWorking=function(){return d.working},e.redrawSlider=function(){d.children.add(e.find(".bx-clone")).outerWidth(o()),d.viewport.css("height",m()),d.settings.ticker||s(),d.active.last&&(d.active.index=q()-1),d.active.index>=q()&&(d.active.last=!0),d.settings.pager&&!d.settings.pagerCustom&&(u(),E(d.active.index)),d.settings.ariaHidden&&T(d.active.index*r())},e.destroySlider=function(){d.initialized&&(d.initialized=!1,a(".bx-clone",this).remove(),d.children.each(function(){void 0!==a(this).data("origStyle")?a(this).attr("style",a(this).data("origStyle")):a(this).removeAttr("style")}),void 0!==a(this).data("origStyle")?this.attr("style",a(this).data("origStyle")):a(this).removeAttr("style"),a(this).unwrap().unwrap(),d.controls.el&&d.controls.el.remove(),d.controls.next&&d.controls.next.remove(),d.controls.prev&&d.controls.prev.remove(),d.pagerEl&&d.settings.controls&&!d.settings.pagerCustom&&d.pagerEl.remove(),a(".bx-caption",this).remove(),d.controls.autoEl&&d.controls.autoEl.remove(),clearInterval(d.interval),d.settings.responsive&&a(window).unbind("resize",S),d.settings.keyboardEnabled&&a(document).unbind("keydown",M),a(this).removeData("bxSlider"))},e.reloadSlider=function(b){void 0!==b&&(c=b),e.destroySlider(),h(),a(e).data("bxSlider",this)},h(),a(e).data("bxSlider",this),this}}}(jQuery);
1
  /**
2
+ * bxSlider v4.2.12
3
  * Copyright 2013-2015 Steven Wanderski
4
  * Written while drinking Belgian ales and listening to jazz
 
5
  * Licensed under MIT (http://opensource.org/licenses/MIT)
6
  */
7
+ !function(t){var e={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0},onAutoChange:function(){return!0}};t.fn.bxSlider=function(n){if(0===this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var s={},o=this,r=t(window).width(),a=t(window).height();if(!t(o).data("bxSlider")){var l=function(){t(o).data("bxSlider")||(s.settings=t.extend({},e,n),s.settings.slideWidth=parseInt(s.settings.slideWidth),s.children=o.children(s.settings.slideSelector),s.children.length<s.settings.minSlides&&(s.settings.minSlides=s.children.length),s.children.length<s.settings.maxSlides&&(s.settings.maxSlides=s.children.length),s.settings.randomStart&&(s.settings.startSlide=Math.floor(Math.random()*s.children.length)),s.active={index:s.settings.startSlide},s.carousel=s.settings.minSlides>1||s.settings.maxSlides>1,s.carousel&&(s.settings.preloadImages="all"),s.minThreshold=s.settings.minSlides*s.settings.slideWidth+(s.settings.minSlides-1)*s.settings.slideMargin,s.maxThreshold=s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin,s.working=!1,s.controls={},s.interval=null,s.animProp="vertical"===s.settings.mode?"top":"left",s.usingCSS=s.settings.useCSS&&"fade"!==s.settings.mode&&function(){for(var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],i=0;i<e.length;i++)if(void 0!==t.style[e[i]])return s.cssPrefix=e[i].replace("Perspective","").toLowerCase(),s.animProp="-"+s.cssPrefix+"-transform",!0;return!1}(),"vertical"===s.settings.mode&&(s.settings.maxSlides=s.settings.minSlides),o.data("origStyle",o.attr("style")),o.children(s.settings.slideSelector).each(function(){t(this).data("origStyle",t(this).attr("style"))}),d())},d=function(){var e=s.children.eq(s.settings.startSlide);o.wrap('<div class="'+s.settings.wrapperClass+'"><div class="bx-viewport"></div></div>'),s.viewport=o.parent(),s.settings.ariaLive&&!s.settings.ticker&&s.viewport.attr("aria-live","polite"),s.loader=t('<div class="bx-loading" />'),s.viewport.prepend(s.loader),o.css({width:"horizontal"===s.settings.mode?1e3*s.children.length+215+"%":"auto",position:"relative"}),s.usingCSS&&s.settings.easing?o.css("-"+s.cssPrefix+"-transition-timing-function",s.settings.easing):s.settings.easing||(s.settings.easing="swing"),s.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),s.viewport.parent().css({maxWidth:u()}),s.children.css({float:"horizontal"===s.settings.mode?"left":"none",listStyle:"none",position:"relative"}),s.children.css("width",h()),"horizontal"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginRight",s.settings.slideMargin),"vertical"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginBottom",s.settings.slideMargin),"fade"===s.settings.mode&&(s.children.css({position:"absolute",zIndex:0,display:"none"}),s.children.eq(s.settings.startSlide).css({zIndex:s.settings.slideZIndex,display:"block"})),s.controls.el=t('<div class="bx-controls" />'),s.settings.captions&&P(),s.active.last=s.settings.startSlide===f()-1,s.settings.video&&o.fitVids(),("all"===s.settings.preloadImages||s.settings.ticker)&&(e=s.children),s.settings.ticker?s.settings.pager=!1:(s.settings.controls&&C(),s.settings.auto&&s.settings.autoControls&&T(),s.settings.pager&&w(),(s.settings.controls||s.settings.autoControls||s.settings.pager)&&s.viewport.after(s.controls.el)),c(e,g)},c=function(e,i){var n=e.find('img:not([src=""]), iframe').length,s=0;if(0===n)return void i();e.find('img:not([src=""]), iframe').each(function(){t(this).one("load error",function(){++s===n&&i()}).each(function(){(this.complete||""==this.src)&&t(this).trigger("load")})})},g=function(){if(s.settings.infiniteLoop&&"fade"!==s.settings.mode&&!s.settings.ticker){var e="vertical"===s.settings.mode?s.settings.minSlides:s.settings.maxSlides,i=s.children.slice(0,e).clone(!0).addClass("bx-clone"),n=s.children.slice(-e).clone(!0).addClass("bx-clone");s.settings.ariaHidden&&(i.attr("aria-hidden",!0),n.attr("aria-hidden",!0)),o.append(i).prepend(n)}s.loader.remove(),m(),"vertical"===s.settings.mode&&(s.settings.adaptiveHeight=!0),s.viewport.height(p()),o.redrawSlider(),s.settings.onSliderLoad.call(o,s.active.index),s.initialized=!0,s.settings.responsive&&t(window).bind("resize",U),s.settings.auto&&s.settings.autoStart&&(f()>1||s.settings.autoSlideForOnePage)&&L(),s.settings.ticker&&O(),s.settings.pager&&I(s.settings.startSlide),s.settings.controls&&D(),s.settings.touchEnabled&&!s.settings.ticker&&Y(),s.settings.keyboardEnabled&&!s.settings.ticker&&t(document).keydown(X)},p=function(){var e=0,n=t();if("vertical"===s.settings.mode||s.settings.adaptiveHeight)if(s.carousel){var o=1===s.settings.moveSlides?s.active.index:s.active.index*x();for(n=s.children.eq(o),i=1;i<=s.settings.maxSlides-1;i++)n=o+i>=s.children.length?n.add(s.children.eq(i-1)):n.add(s.children.eq(o+i))}else n=s.children.eq(s.active.index);else n=s.children;return"vertical"===s.settings.mode?(n.each(function(i){e+=t(this).outerHeight()}),s.settings.slideMargin>0&&(e+=s.settings.slideMargin*(s.settings.minSlides-1))):e=Math.max.apply(Math,n.map(function(){return t(this).outerHeight(!1)}).get()),"border-box"===s.viewport.css("box-sizing")?e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))+parseFloat(s.viewport.css("border-top-width"))+parseFloat(s.viewport.css("border-bottom-width")):"padding-box"===s.viewport.css("box-sizing")&&(e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))),e},u=function(){var t="100%";return s.settings.slideWidth>0&&(t="horizontal"===s.settings.mode?s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin:s.settings.slideWidth),t},h=function(){var t=s.settings.slideWidth,e=s.viewport.width();if(0===s.settings.slideWidth||s.settings.slideWidth>e&&!s.carousel||"vertical"===s.settings.mode)t=e;else if(s.settings.maxSlides>1&&"horizontal"===s.settings.mode){if(e>s.maxThreshold)return t;e<s.minThreshold?t=(e-s.settings.slideMargin*(s.settings.minSlides-1))/s.settings.minSlides:s.settings.shrinkItems&&(t=Math.floor((e+s.settings.slideMargin)/Math.ceil((e+s.settings.slideMargin)/(t+s.settings.slideMargin))-s.settings.slideMargin))}return t},v=function(){var t=1,e=null;return"horizontal"===s.settings.mode&&s.settings.slideWidth>0?s.viewport.width()<s.minThreshold?t=s.settings.minSlides:s.viewport.width()>s.maxThreshold?t=s.settings.maxSlides:(e=s.children.first().width()+s.settings.slideMargin,t=Math.floor((s.viewport.width()+s.settings.slideMargin)/e)||1):"vertical"===s.settings.mode&&(t=s.settings.minSlides),t},f=function(){var t=0,e=0,i=0;if(s.settings.moveSlides>0){if(!s.settings.infiniteLoop){for(;e<s.children.length;)++t,e=i+v(),i+=s.settings.moveSlides<=v()?s.settings.moveSlides:v();return i}t=Math.ceil(s.children.length/x())}else t=Math.ceil(s.children.length/v());return t},x=function(){return s.settings.moveSlides>0&&s.settings.moveSlides<=v()?s.settings.moveSlides:v()},m=function(){var t,e,i;s.children.length>s.settings.maxSlides&&s.active.last&&!s.settings.infiniteLoop?"horizontal"===s.settings.mode?(e=s.children.last(),t=e.position(),S(-(t.left-(s.viewport.width()-e.outerWidth())),"reset",0)):"vertical"===s.settings.mode&&(i=s.children.length-s.settings.minSlides,t=s.children.eq(i).position(),S(-t.top,"reset",0)):(t=s.children.eq(s.active.index*x()).position(),s.active.index===f()-1&&(s.active.last=!0),void 0!==t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0)))},S=function(e,i,n,r){var a,l;s.usingCSS?(l="vertical"===s.settings.mode?"translate3d(0, "+e+"px, 0)":"translate3d("+e+"px, 0, 0)",o.css("-"+s.cssPrefix+"-transition-duration",n/1e3+"s"),"slide"===i?(o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),A())}):A()):"reset"===i?o.css(s.animProp,l):"ticker"===i&&(o.css("-"+s.cssPrefix+"-transition-timing-function","linear"),o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),S(r.resetValue,"reset",0),F())}):(S(r.resetValue,"reset",0),F()))):(a={},a[s.animProp]=e,"slide"===i?o.animate(a,n,s.settings.easing,function(){A()}):"reset"===i?o.css(s.animProp,e):"ticker"===i&&o.animate(a,n,"linear",function(){S(r.resetValue,"reset",0),F()}))},b=function(){for(var e="",i="",n=f(),o=0;o<n;o++)i="",s.settings.buildPager&&t.isFunction(s.settings.buildPager)||s.settings.pagerCustom?(i=s.settings.buildPager(o),s.pagerEl.addClass("bx-custom-pager")):(i=o+1,s.pagerEl.addClass("bx-default-pager")),e+='<div class="bx-pager-item"><a href="" data-slide-index="'+o+'" class="bx-pager-link">'+i+"</a></div>";s.pagerEl.html(e)},w=function(){s.settings.pagerCustom?s.pagerEl=t(s.settings.pagerCustom):(s.pagerEl=t('<div class="bx-pager" />'),s.settings.pagerSelector?t(s.settings.pagerSelector).html(s.pagerEl):s.controls.el.addClass("bx-has-pager").append(s.pagerEl),b()),s.pagerEl.on("click touchend","a",z)},C=function(){s.controls.next=t('<a class="bx-next" href="">'+s.settings.nextText+"</a>"),s.controls.prev=t('<a class="bx-prev" href="">'+s.settings.prevText+"</a>"),s.controls.next.bind("click touchend",k),s.controls.prev.bind("click touchend",E),s.settings.nextSelector&&t(s.settings.nextSelector).append(s.controls.next),s.settings.prevSelector&&t(s.settings.prevSelector).append(s.controls.prev),s.settings.nextSelector||s.settings.prevSelector||(s.controls.directionEl=t('<div class="bx-controls-direction" />'),s.controls.directionEl.append(s.controls.prev).append(s.controls.next),s.controls.el.addClass("bx-has-controls-direction").append(s.controls.directionEl))},T=function(){s.controls.start=t('<div class="bx-controls-auto-item"><a class="bx-start" href="">'+s.settings.startText+"</a></div>"),s.controls.stop=t('<div class="bx-controls-auto-item"><a class="bx-stop" href="">'+s.settings.stopText+"</a></div>"),s.controls.autoEl=t('<div class="bx-controls-auto" />'),s.controls.autoEl.on("click",".bx-start",M),s.controls.autoEl.on("click",".bx-stop",y),s.settings.autoControlsCombine?s.controls.autoEl.append(s.controls.start):s.controls.autoEl.append(s.controls.start).append(s.controls.stop),s.settings.autoControlsSelector?t(s.settings.autoControlsSelector).html(s.controls.autoEl):s.controls.el.addClass("bx-has-controls-auto").append(s.controls.autoEl),q(s.settings.autoStart?"stop":"start")},P=function(){s.children.each(function(e){var i=t(this).find("img:first").attr("title");void 0!==i&&(""+i).length&&t(this).append('<div class="bx-caption"><span>'+i+"</span></div>")})},k=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToNextSlide())},E=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToPrevSlide())},M=function(t){o.startAuto(),t.preventDefault()},y=function(t){o.stopAuto(),t.preventDefault()},z=function(e){var i,n;e.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),i=t(e.currentTarget),void 0!==i.attr("data-slide-index")&&(n=parseInt(i.attr("data-slide-index")))!==s.active.index&&o.goToSlide(n))},I=function(e){var i=s.children.length;if("short"===s.settings.pagerType)return s.settings.maxSlides>1&&(i=Math.ceil(s.children.length/s.settings.maxSlides)),void s.pagerEl.html(e+1+s.settings.pagerShortSeparator+i);s.pagerEl.find("a").removeClass("active"),s.pagerEl.each(function(i,n){t(n).find("a").eq(e).addClass("active")})},A=function(){if(s.settings.infiniteLoop){var t="";0===s.active.index?t=s.children.eq(0).position():s.active.index===f()-1&&s.carousel?t=s.children.eq((f()-1)*x()).position():s.active.index===s.children.length-1&&(t=s.children.eq(s.children.length-1).position()),t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0))}s.working=!1,s.settings.onSlideAfter.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)},q=function(t){s.settings.autoControlsCombine?s.controls.autoEl.html(s.controls[t]):(s.controls.autoEl.find("a").removeClass("active"),s.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},D=function(){1===f()?(s.controls.prev.addClass("disabled"),s.controls.next.addClass("disabled")):!s.settings.infiniteLoop&&s.settings.hideControlOnEnd&&(0===s.active.index?(s.controls.prev.addClass("disabled"),s.controls.next.removeClass("disabled")):s.active.index===f()-1?(s.controls.next.addClass("disabled"),s.controls.prev.removeClass("disabled")):(s.controls.prev.removeClass("disabled"),s.controls.next.removeClass("disabled")))},H=function(){o.startAuto()},W=function(){o.stopAuto()},L=function(){if(s.settings.autoDelay>0){setTimeout(o.startAuto,s.settings.autoDelay)}else o.startAuto(),t(window).focus(H).blur(W);s.settings.autoHover&&o.hover(function(){s.interval&&(o.stopAuto(!0),s.autoPaused=!0)},function(){s.autoPaused&&(o.startAuto(!0),s.autoPaused=null)})},O=function(){var e,i,n,r,a,l,d,c,g=0;"next"===s.settings.autoDirection?o.append(s.children.clone().addClass("bx-clone")):(o.prepend(s.children.clone().addClass("bx-clone")),e=s.children.first().position(),g="horizontal"===s.settings.mode?-e.left:-e.top),S(g,"reset",0),s.settings.pager=!1,s.settings.controls=!1,s.settings.autoControls=!1,s.settings.tickerHover&&(s.usingCSS?(r="horizontal"===s.settings.mode?4:5,s.viewport.hover(function(){i=o.css("-"+s.cssPrefix+"-transform"),n=parseFloat(i.split(",")[r]),S(n,"reset",0)},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(n))),F(d)})):s.viewport.hover(function(){o.stop()},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(o.css(l)))),F(d)})),F()},F=function(t){var e,i,n,r=t?t:s.settings.speed,a={left:0,top:0},l={left:0,top:0};"next"===s.settings.autoDirection?a=o.find(".bx-clone").first().position():l=s.children.first().position(),e="horizontal"===s.settings.mode?-a.left:-a.top,i="horizontal"===s.settings.mode?-l.left:-l.top,n={resetValue:i},S(e,"ticker",r,n)},N=function(e){var i=t(window),n={top:i.scrollTop(),left:i.scrollLeft()},s=e.offset();return n.right=n.left+i.width(),n.bottom=n.top+i.height(),s.right=s.left+e.outerWidth(),s.bottom=s.top+e.outerHeight(),!(n.right<s.left||n.left>s.right||n.bottom<s.top||n.top>s.bottom)},X=function(t){var e=document.activeElement.tagName.toLowerCase();if(null==new RegExp(e,["i"]).exec("input|textarea")&&N(o)){if(39===t.keyCode)return k(t),!1;if(37===t.keyCode)return E(t),!1}},Y=function(){s.touch={start:{x:0,y:0},end:{x:0,y:0}},s.viewport.bind("touchstart MSPointerDown pointerdown",V),s.viewport.on("click",".bxslider a",function(t){s.viewport.hasClass("click-disabled")&&(t.preventDefault(),s.viewport.removeClass("click-disabled"))})},V=function(t){if(s.controls.el.addClass("disabled"),s.working)t.preventDefault(),s.controls.el.removeClass("disabled");else{s.touch.originalPos=o.position();var e=t.originalEvent,i=void 0!==e.changedTouches?e.changedTouches:[e];s.touch.start.x=i[0].pageX,s.touch.start.y=i[0].pageY,s.viewport.get(0).setPointerCapture&&(s.pointerId=e.pointerId,s.viewport.get(0).setPointerCapture(s.pointerId)),s.viewport.bind("touchmove MSPointerMove pointermove",Z),s.viewport.bind("touchend MSPointerUp pointerup",B),s.viewport.bind("MSPointerCancel pointercancel",R)}},R=function(t){S(s.touch.originalPos.left,"reset",0),s.controls.el.removeClass("disabled"),s.viewport.unbind("MSPointerCancel pointercancel",R),s.viewport.unbind("touchmove MSPointerMove pointermove",Z),s.viewport.unbind("touchend MSPointerUp pointerup",B),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},Z=function(t){var e=t.originalEvent,i=void 0!==e.changedTouches?e.changedTouches:[e],n=Math.abs(i[0].pageX-s.touch.start.x),o=Math.abs(i[0].pageY-s.touch.start.y),r=0,a=0;3*n>o&&s.settings.preventDefaultSwipeX?t.preventDefault():3*o>n&&s.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!==s.settings.mode&&s.settings.oneToOneTouch&&("horizontal"===s.settings.mode?(a=i[0].pageX-s.touch.start.x,r=s.touch.originalPos.left+a):(a=i[0].pageY-s.touch.start.y,r=s.touch.originalPos.top+a),S(r,"reset",0))},B=function(t){s.viewport.unbind("touchmove MSPointerMove pointermove",Z),s.controls.el.removeClass("disabled");var e=t.originalEvent,i=void 0!==e.changedTouches?e.changedTouches:[e],n=0,r=0;s.touch.end.x=i[0].pageX,s.touch.end.y=i[0].pageY,"fade"===s.settings.mode?(r=Math.abs(s.touch.start.x-s.touch.end.x))>=s.settings.swipeThreshold&&(s.touch.start.x>s.touch.end.x?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto()):("horizontal"===s.settings.mode?(r=s.touch.end.x-s.touch.start.x,n=s.touch.originalPos.left):(r=s.touch.end.y-s.touch.start.y,n=s.touch.originalPos.top),!s.settings.infiniteLoop&&(0===s.active.index&&r>0||s.active.last&&r<0)?S(n,"reset",200):Math.abs(r)>=s.settings.swipeThreshold?(r<0?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto()):S(n,"reset",200)),s.viewport.unbind("touchend MSPointerUp pointerup",B),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},U=function(e){if(s.initialized)if(s.working)window.setTimeout(U,10);else{var i=t(window).width(),n=t(window).height();r===i&&a===n||(r=i,a=n,o.redrawSlider(),s.settings.onSliderResize.call(o,s.active.index))}},j=function(t){var e=v();s.settings.ariaHidden&&!s.settings.ticker&&(s.children.attr("aria-hidden","true"),s.children.slice(t,t+e).attr("aria-hidden","false"))},Q=function(t){return t<0?s.settings.infiniteLoop?f()-1:s.active.index:t>=f()?s.settings.infiniteLoop?0:s.active.index:t};return o.goToSlide=function(e,i){var n,r,a,l,d=!0,c=0,g={left:0,top:0},u=null;if(s.oldIndex=s.active.index,s.active.index=Q(e),!s.working&&s.active.index!==s.oldIndex){if(s.working=!0,void 0!==(d=s.settings.onSlideBefore.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index))&&!d)return s.active.index=s.oldIndex,void(s.working=!1);"next"===i?s.settings.onSlideNext.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1):"prev"===i&&(s.settings.onSlidePrev.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1)),s.active.last=s.active.index>=f()-1,(s.settings.pager||s.settings.pagerCustom)&&I(s.active.index),s.settings.controls&&D(),"fade"===s.settings.mode?(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),s.children.filter(":visible").fadeOut(s.settings.speed).css({zIndex:0}),s.children.eq(s.active.index).css("zIndex",s.settings.slideZIndex+1).fadeIn(s.settings.speed,function(){t(this).css("zIndex",s.settings.slideZIndex),A()})):(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),!s.settings.infiniteLoop&&s.carousel&&s.active.last?"horizontal"===s.settings.mode?(u=s.children.eq(s.children.length-1),g=u.position(),c=s.viewport.width()-u.outerWidth()):(n=s.children.length-s.settings.minSlides,g=s.children.eq(n).position()):s.carousel&&s.active.last&&"prev"===i?(r=1===s.settings.moveSlides?s.settings.maxSlides-x():(f()-1)*x()-(s.children.length-s.settings.maxSlides),u=o.children(".bx-clone").eq(r),g=u.position()):"next"===i&&0===s.active.index?(g=o.find("> .bx-clone").eq(s.settings.maxSlides).position(),s.active.last=!1):e>=0&&(l=e*parseInt(x()),g=s.children.eq(l).position()),void 0!==g&&(a="horizontal"===s.settings.mode?-(g.left-c):-g.top,S(a,"slide",s.settings.speed)),s.working=!1),s.settings.ariaHidden&&j(s.active.index*x())}},o.goToNextSlide=function(){if((s.settings.infiniteLoop||!s.active.last)&&1!=s.working){var t=parseInt(s.active.index)+1;o.goToSlide(t,"next")}},o.goToPrevSlide=function(){if((s.settings.infiniteLoop||0!==s.active.index)&&1!=s.working){var t=parseInt(s.active.index)-1;o.goToSlide(t,"prev")}},o.startAuto=function(t){s.interval||(s.interval=setInterval(function(){"next"===s.settings.autoDirection?o.goToNextSlide():o.goToPrevSlide()},s.settings.pause),s.settings.onAutoChange.call(o,!0),s.settings.autoControls&&t!==!0&&q("stop"))},o.stopAuto=function(t){s.interval&&(clearInterval(s.interval),s.interval=null,s.settings.onAutoChange.call(o,!1),s.settings.autoControls&&t!==!0&&q("start"))},o.getCurrentSlide=function(){return s.active.index},o.getCurrentSlideElement=function(){return s.children.eq(s.active.index)},o.getSlideElement=function(t){return s.children.eq(t)},o.getSlideCount=function(){return s.children.length},o.isWorking=function(){return s.working},o.redrawSlider=function(){s.children.add(o.find(".bx-clone")).outerWidth(h()),s.viewport.css("height",p()),s.settings.ticker||m(),s.active.last&&(s.active.index=f()-1),s.active.index>=f()&&(s.active.last=!0),s.settings.pager&&!s.settings.pagerCustom&&(b(),I(s.active.index)),s.settings.ariaHidden&&j(s.active.index*x())},o.destroySlider=function(){s.initialized&&(s.initialized=!1,t(".bx-clone",this).remove(),s.children.each(function(){void 0!==t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!==t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),s.controls.el&&s.controls.el.remove(),s.controls.next&&s.controls.next.remove(),s.controls.prev&&s.controls.prev.remove(),s.pagerEl&&s.settings.controls&&!s.settings.pagerCustom&&s.pagerEl.remove(),t(".bx-caption",this).remove(),s.controls.autoEl&&s.controls.autoEl.remove(),clearInterval(s.interval),s.settings.responsive&&t(window).unbind("resize",U),s.settings.keyboardEnabled&&t(document).unbind("keydown",X),t(this).removeData("bxSlider"),t(window).off("blur",W).off("focus",H))},o.reloadSlider=function(e){void 0!==e&&(n=e),o.destroySlider(),l(),t(o).data("bxSlider",this)},l(),t(o).data("bxSlider",this),this}}}(jQuery);
 
includes/libraries/bxslider-4/package.json CHANGED
@@ -1,17 +1,14 @@
1
  {
2
  "name": "bxslider",
3
  "description": "Touch enabled jQuery plugin for creating responsive carousels and sliders.",
4
- "version": "4.2.5",
5
  "homepage": "http://bxslider.com",
6
  "author": {
7
  "name": "Steven Wanderski",
8
  "email": "steven@bxcreative.com",
9
  "url": "http://stevenwanderski.com"
10
  },
11
- "license": {
12
- "type": "MIT",
13
- "url": "http://opensource.org/licenses/MIT"
14
- },
15
  "repository": {
16
  "type": "git",
17
  "url": "https://github.com/stevenwanderski/bxslider-4/bxslider-4.git"
@@ -20,25 +17,13 @@
20
  "url": "https://github.com/stevenwanderski/bxslider-4/issues"
21
  },
22
  "devDependencies": {
23
- "assemble": "~0.4.37",
24
- "grunt": "~0.4.5",
25
- "grunt-contrib-clean": "~0.5.0",
26
- "grunt-contrib-compress": "~0.9.1",
27
- "grunt-contrib-concat": "~0.4.0",
28
- "grunt-contrib-connect": "~0.7.1",
29
- "grunt-contrib-copy": "~0.5.0",
30
- "grunt-contrib-cssmin": "^0.9.0",
31
- "grunt-contrib-less": ">=1.0.0",
32
- "grunt-contrib-uglify": "^0.4.0",
33
- "grunt-contrib-watch": "^0.6.1",
34
- "grunt-jscs-checker": "~0.4.2",
35
- "grunt-contrib-jshint": "^0.10.0",
36
- "load-grunt-tasks": "^0.4.0",
37
- "pretty": "^0.1.2",
38
- "handlebars-helpers": "~0.5.8"
39
  },
40
  "engines": {
41
- "node": "~0.10.28"
42
  },
43
  "keywords": [
44
  "responsive",
1
  {
2
  "name": "bxslider",
3
  "description": "Touch enabled jQuery plugin for creating responsive carousels and sliders.",
4
+ "version": "4.2.12",
5
  "homepage": "http://bxslider.com",
6
  "author": {
7
  "name": "Steven Wanderski",
8
  "email": "steven@bxcreative.com",
9
  "url": "http://stevenwanderski.com"
10
  },
11
+ "license": "MIT",
 
 
 
12
  "repository": {
13
  "type": "git",
14
  "url": "https://github.com/stevenwanderski/bxslider-4/bxslider-4.git"
17
  "url": "https://github.com/stevenwanderski/bxslider-4/issues"
18
  },
19
  "devDependencies": {
20
+ "gulp": "^3.9.1",
21
+ "gulp-cssmin": "^0.1.7",
22
+ "gulp-rename": "^1.2.2",
23
+ "gulp-uglify": "^2.0.1"
 
 
 
 
 
 
 
 
 
 
 
 
24
  },
25
  "engines": {
26
+ "node": ">=0.10.28"
27
  },
28
  "keywords": [
29
  "responsive",
includes/libraries/bxslider-4/readme.md CHANGED
@@ -1,7 +1,13 @@
1
- #bxSlider 4.2.5
2
- ##The fully-loaded, responsive jQuery content slider
 
3
 
4
- ###Why should I use this slider?
 
 
 
 
 
5
  * Fully responsive - will adapt to any device
6
  * Horizontal, vertical, and fade modes
7
  * Slides can contain images, video, or HTML content
@@ -10,20 +16,18 @@
10
  * Browser support: Firefox, Chrome, Safari, iOS, Android, IE7+
11
  * Tons of configuration options
12
 
13
- For complete documentation, tons of examples, and a good time, visit:
14
-
15
- [http://bxslider.com](http://bxslider.com)
16
 
17
  Written by: Steven Wanderski - [http://stevenwanderski.com](http://stevenwanderski.com)
18
 
19
- ###License
20
  Released under the MIT license - http://opensource.org/licenses/MIT
21
 
22
  Let's get on with it!
23
 
24
- ##Installation
25
 
26
- ###Step 1: Link required files
27
 
28
  First and most important, the jQuery library needs to be included (no need to download - link directly from Google). Next, download the package from this site and link the bxSlider CSS file (for the theme) and the bxSlider Javascript file.
29
 
@@ -36,7 +40,7 @@ First and most important, the jQuery library needs to be included (no need to do
36
  <link href="/lib/jquery.bxslider.css" rel="stylesheet" />
37
  ```
38
 
39
- ###Step 2: Create HTML markup
40
 
41
  Create a `<ul class="bxslider">` element, with a `<li>` for each slide. Slides can contain images, video, or any other HTML content!
42
 
@@ -49,7 +53,7 @@ Create a `<ul class="bxslider">` element, with a `<li>` for each slide. Slides c
49
  </ul>
50
  ```
51
 
52
- ###Step 3: Call the bxSlider
53
 
54
  Call .bxSlider() on `<ul class="bxslider">`. Note that the call must be made inside of a $(document).ready() call, or the plugin will not work!
55
 
@@ -59,11 +63,12 @@ $(document).ready(function(){
59
  });
60
  ```
61
 
62
- ##Configuration options
63
 
64
- ###General
65
 
66
  **mode**
 
67
  Type of transition between slides
68
  ```
69
  default: 'horizontal'
@@ -71,6 +76,7 @@ options: 'horizontal', 'vertical', 'fade'
71
  ```
72
 
73
  **speed**
 
74
  Slide transition duration (in ms)
75
  ```
76
  default: 500
@@ -78,6 +84,7 @@ options: integer
78
  ```
79
 
80
  **slideMargin**
 
81
  Margin between each slide
82
  ```
83
  default: 0
@@ -85,6 +92,7 @@ options: integer
85
  ```
86
 
87
  **startSlide**
 
88
  Starting slide index (zero-based)
89
  ```
90
  default: 0
@@ -92,6 +100,7 @@ options: integer
92
  ```
93
 
94
  **randomStart**
 
95
  Start slider on a random slide
96
  ```
97
  default: false
@@ -99,6 +108,7 @@ options: boolean (true / false)
99
  ```
100
 
101
  **slideSelector**
 
102
  Element to use as slides (ex. <code>'div.slide'</code>).<br />Note: by default, bxSlider will use all immediate children of the slider element
103
  ```
104
  default: ''
@@ -106,6 +116,7 @@ options: jQuery selector
106
  ```
107
 
108
  **infiniteLoop**
 
109
  If <code>true</code>, clicking "Next" while on the last slide will transition to the first slide and vice-versa
110
  ```
111
  default: true
@@ -113,6 +124,7 @@ options: boolean (true / false)
113
  ```
114
 
115
  **hideControlOnEnd**
 
116
  If <code>true</code>, "Prev" and "Next" controls will receive a class <code>disabled</code> when slide is the first or the last<br/>Note: Only used when <code>infiniteLoop: false</code>
117
  ```
118
  default: false
@@ -120,6 +132,7 @@ options: boolean (true / false)
120
  ```
121
 
122
  **easing**
 
123
  The type of "easing" to use during transitions. If using CSS transitions, include a value for the <code>transition-timing-function</code> property. If not using CSS transitions, you may include <code>plugins/jquery.easing.1.3.js</code> for many options.<br />See <a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">http://gsgd.co.uk/sandbox/jquery/easing/</a> for more info.
124
  ```
125
  default: null
@@ -127,6 +140,7 @@ options: if using CSS: 'linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', '
127
  ```
128
 
129
  **captions**
 
130
  Include image captions. Captions are derived from the image's <code>title</code> attribute
131
  ```
132
  default: false
@@ -134,6 +148,7 @@ options: boolean (true / false)
134
  ```
135
 
136
  **ticker**
 
137
  Use slider in ticker mode (similar to a news ticker)
138
  ```
139
  default: false
@@ -141,6 +156,7 @@ options: boolean (true / false)
141
  ```
142
 
143
  **tickerHover**
 
144
  Ticker will pause when mouse hovers over slider. Note: this functionality does NOT work if using CSS transitions!
145
  ```
146
  default: false
@@ -148,6 +164,7 @@ options: boolean (true / false)
148
  ```
149
 
150
  **adaptiveHeight**
 
151
  Dynamically adjust slider height based on each slide's height
152
  ```
153
  default: false
@@ -155,6 +172,7 @@ options: boolean (true / false)
155
  ```
156
 
157
  **adaptiveHeightSpeed**
 
158
  Slide height transition duration (in ms). Note: only used if <code>adaptiveHeight: true</code>
159
  ```
160
  default: 500
@@ -162,6 +180,7 @@ options: integer
162
  ```
163
 
164
  **video**
 
165
  If any slides contain video, set this to <code>true</code>. Also, include <code>plugins/jquery.fitvids.js</code><br />See <a href="http://fitvidsjs.com/" target="_blank">http://fitvidsjs.com/</a> for more info
166
  ```
167
  default: false
@@ -169,6 +188,7 @@ options: boolean (true / false)
169
  ```
170
 
171
  **responsive**
 
172
  Enable or disable auto resize of the slider. Useful if you need to use fixed width sliders.
173
  ```
174
  default: true
@@ -176,6 +196,7 @@ options: boolean (true /false)
176
  ```
177
 
178
  **useCSS**
 
179
  If true, CSS transitions will be used for horizontal and vertical slide animations (this uses native hardware acceleration). If false, jQuery animate() will be used.
180
  ```
181
  default: true
@@ -183,6 +204,7 @@ options: boolean (true / false)
183
  ```
184
 
185
  **preloadImages**
 
186
  If 'all', preloads all images before starting the slider. If 'visible', preloads only images in the initially visible slides before starting the slider (tip: use 'visible' if all slides are identical dimensions)
187
  ```
188
  default: 'visible'
@@ -190,6 +212,7 @@ options: 'all', 'visible'
190
  ```
191
 
192
  **touchEnabled**
 
193
  If <code>true</code>, slider will allow touch swipe transitions
194
  ```
195
  default: true
@@ -197,6 +220,7 @@ options: boolean (true / false)
197
  ```
198
 
199
  **swipeThreshold**
 
200
  Amount of pixels a touch swipe needs to exceed in order to execute a slide transition. Note: only used if <code>touchEnabled: true</code>
201
  ```
202
  default: 50
@@ -204,6 +228,7 @@ options: integer
204
  ```
205
 
206
  **oneToOneTouch**
 
207
  If <code>true</code>, non-fade slides follow the finger as it swipes
208
  ```
209
  default: true
@@ -211,6 +236,7 @@ options: boolean (true / false)
211
  ```
212
 
213
  **preventDefaultSwipeX**
 
214
  If <code>true</code>, touch screen will not move along the x-axis as the finger swipes
215
  ```
216
  default: true
@@ -218,6 +244,7 @@ options: boolean (true / false)
218
  ```
219
 
220
  **preventDefaultSwipeY**
 
221
  If <code>true</code>, touch screen will not move along the y-axis as the finger swipes
222
  ```
223
  default: false
@@ -225,15 +252,17 @@ options: boolean (true / false)
225
  ```
226
 
227
  **wrapperClass**
 
228
  Class to wrap the slider in. Change to prevent from using default bxSlider styles.
229
  ```
230
  default: 'bx-wrapper'
231
  options: string
232
  ```
233
 
234
- ###Pager
235
 
236
  **pager**
 
237
  If <code>true</code>, a pager will be added
238
  ```
239
  default: true
@@ -241,6 +270,7 @@ options: boolean (true / false)
241
  ```
242
 
243
  **pagerType**
 
244
  If <code>'full'</code>, a pager link will be generated for each slide. If <code>'short'</code>, a x / y pager will be used (ex. 1 / 5)
245
  ```
246
  default: 'full'
@@ -248,6 +278,7 @@ options: 'full', 'short'
248
  ```
249
 
250
  **pagerShortSeparator**
 
251
  If <code>pagerType: 'short'</code>, pager will use this value as the separating character
252
  ```
253
  default: ' / '
@@ -255,6 +286,7 @@ options: string
255
  ```
256
 
257
  **pagerSelector**
 
258
  Element used to populate the populate the pager. By default, the pager is appended to the bx-viewport
259
  ```
260
  default: ''
@@ -262,6 +294,7 @@ options: jQuery selector
262
  ```
263
 
264
  **pagerCustom**
 
265
  Parent element to be used as the pager. Parent element must contain a <code>&lt;a data-slide-index="x"&gt;</code> element for each slide. See example <a href="/examples/thumbnail-method-1">here</a>. Not for use with dynamic carousels.
266
  ```
267
  default: null
@@ -269,15 +302,17 @@ options: jQuery selector
269
  ```
270
 
271
  **buildPager**
 
272
  If supplied, function is called on every slide element, and the returned value is used as the pager item markup.<br />See <a href="http://bxslider.com/examples">examples</a> for detailed implementation
273
  ```
274
  default: null
275
  options: function(slideIndex)
276
  ```
277
 
278
- ###Controls
279
 
280
  **controls**
 
281
  If <code>true</code>, "Next" / "Prev" controls will be added
282
  ```
283
  default: true
@@ -285,6 +320,7 @@ options: boolean (true / false)
285
  ```
286
 
287
  **nextText**
 
288
  Text to be used for the "Next" control
289
  ```
290
  default: 'Next'
@@ -292,6 +328,7 @@ options: string
292
  ```
293
 
294
  **prevText**
 
295
  Text to be used for the "Prev" control
296
  ```
297
  default: 'Prev'
@@ -299,6 +336,7 @@ options: string
299
  ```
300
 
301
  **nextSelector**
 
302
  Element used to populate the "Next" control
303
  ```
304
  default: null
@@ -306,6 +344,7 @@ options: jQuery selector
306
  ```
307
 
308
  **prevSelector**
 
309
  Element used to populate the "Prev" control
310
  ```
311
  default: null
@@ -313,6 +352,7 @@ options: jQuery selector
313
  ```
314
 
315
  **autoControls**
 
316
  If <code>true</code>, "Start" / "Stop" controls will be added
317
  ```
318
  default: false
@@ -320,6 +360,7 @@ options: boolean (true / false)
320
  ```
321
 
322
  **startText**
 
323
  Text to be used for the "Start" control
324
  ```
325
  default: 'Start'
@@ -327,6 +368,7 @@ options: string
327
  ```
328
 
329
  **stopText**
 
330
  Text to be used for the "Stop" control
331
  ```
332
  default: 'Stop'
@@ -334,6 +376,7 @@ options: string
334
  ```
335
 
336
  **autoControlsCombine**
 
337
  When slideshow is playing only "Stop" control is displayed and vice-versa
338
  ```
339
  default: false
@@ -341,6 +384,7 @@ options: boolean (true / false)
341
  ```
342
 
343
  **autoControlsSelector**
 
344
  Element used to populate the auto controls
345
  ```
346
  default: null
@@ -348,21 +392,24 @@ options: jQuery selector
348
  ```
349
 
350
  **keyboardEnabled**
 
351
  Enable keyboard navigation for visible sliders
352
  ```
353
  default: false
354
  options: boolean (true / false)
355
  ```
356
 
357
- ###Auto
358
 
359
  **auto**
 
360
  Slides will automatically transition
361
  ```
362
  default: false
363
  options: boolean (true / false)
364
  ```
365
  **stopAutoOnClick**
 
366
  Auto will stop on interaction with controls
367
  ```
368
  default: false
@@ -370,6 +417,7 @@ options: boolean (true / false)
370
  ```
371
 
372
  **pause**
 
373
  The amount of time (in ms) between each auto transition
374
  ```
375
  default: 4000
@@ -377,6 +425,7 @@ options: integer
377
  ```
378
 
379
  **autoStart**
 
380
  Auto show starts playing on load. If <code>false</code>, slideshow will start when the "Start" control is clicked
381
  ```
382
  default: true
@@ -384,6 +433,7 @@ options: boolean (true / false)
384
  ```
385
 
386
  **autoDirection**
 
387
  The direction of auto show slide transitions
388
  ```
389
  default: 'next'
@@ -391,6 +441,7 @@ options: 'next', 'prev'
391
  ```
392
 
393
  **autoHover**
 
394
  Auto show will pause when mouse hovers over slider
395
  ```
396
  default: false
@@ -398,15 +449,17 @@ options: boolean (true / false)
398
  ```
399
 
400
  **autoDelay**
 
401
  Time (in ms) auto show should wait before starting
402
  ```
403
  default: 0
404
  options: integer
405
  ```
406
 
407
- ###Carousel
408
 
409
  **minSlides**
 
410
  The minimum number of slides to be shown. Slides will be sized down if carousel becomes smaller than the original size.
411
  ```
412
  default: 1
@@ -414,6 +467,7 @@ options: integer
414
  ```
415
 
416
  **maxSlides**
 
417
  The maximum number of slides to be shown. Slides will be sized up if carousel becomes larger than the original size.
418
  ```
419
  default: 1
@@ -421,13 +475,15 @@ options: integer
421
  ```
422
 
423
  **moveSlides**
424
- The number of slides to move on transition. This value must be <code>>= minSlides</code>, and <code><= maxSlides</code>. If zero (default), the number of fully-visible slides will be used.
 
425
  ```
426
  default: 0
427
  options: integer
428
  ```
429
 
430
  **slideWidth**
 
431
  The width of each slide. This setting is required for all horizontal carousels!
432
  ```
433
  default: 0
@@ -435,39 +491,45 @@ options: integer
435
  ```
436
 
437
  **shrinkItems**
 
438
  The Carousel will only show whole items and shrink the images to fit the viewport based on maxSlides/MinSlides.
439
  ```
440
  default: false
441
  options: boolean (true / false)
442
  ```
443
 
444
- ###Keyboard
445
 
446
  **keyboardEnabled**
 
447
  Allows for keyboard control of visible slider. Keypress ignored if slider not visible.
448
  ```
449
  default: false
450
  options: boolean (true / false)
451
  ```
452
 
453
- ###Accessibility
 
454
  **ariaLive**
 
455
  Adds Aria Live attribute to slider.
456
  ```
457
  default: true
458
  options: boolean (true / false)
459
  ```
460
-
461
  **ariaHidden**
 
462
  Adds Aria Hidden attribute to any nonvisible slides.
463
  ```
464
  default: true
465
  options: boolean (true / false)
466
  ```
467
 
468
- ###Callbacks
469
 
470
  **onSliderLoad**
 
471
  Executes immediately after the slider is fully loaded
472
  ```
473
  default: function(){}
@@ -477,6 +539,7 @@ arguments:
477
  ```
478
 
479
  **onSliderResize**
 
480
  Executes immediately after the slider is resized
481
  ```
482
  default: function(){}
@@ -486,6 +549,7 @@ arguments:
486
  ```
487
 
488
  **onSlideBefore**
 
489
  Executes immediately before each slide transition.
490
  ```
491
  default: function(){}
@@ -497,6 +561,7 @@ arguments:
497
  ```
498
 
499
  **onSlideAfter**
 
500
  Executes immediately after each slide transition. Function argument is the current slide element (when transition completes).
501
  ```
502
  default: function(){}
@@ -508,6 +573,7 @@ arguments:
508
  ```
509
 
510
  **onSlideNext**
 
511
  Executes immediately before each "Next" slide transition. Function argument is the target (next) slide element.
512
  ```
513
  default: function(){}
@@ -519,6 +585,7 @@ arguments:
519
  ```
520
 
521
  **onSlidePrev**
 
522
  Executes immediately before each "Prev" slide transition. Function argument is the target (prev) slide element.
523
  ```
524
  default: function(){}
@@ -529,9 +596,20 @@ arguments:
529
  newIndex: element index of the destination slide (after the transition)
530
  ```
531
 
532
- ###Public methods
 
 
 
 
 
 
 
 
 
 
533
 
534
  **goToSlide**
 
535
  Performs a slide transition to the supplied slide index (zero-based)
536
  ```
537
  example:
@@ -540,6 +618,7 @@ slider.goToSlide(3);
540
  ```
541
 
542
  **goToNextSlide**
 
543
  Performs a "Next" slide transition
544
  ```
545
  example:
@@ -548,6 +627,7 @@ slider.goToNextSlide();
548
  ```
549
 
550
  **goToPrevSlide**
 
551
  Performs a "Prev" slide transition
552
  ```
553
  example:
@@ -556,7 +636,7 @@ slider.goToPrevSlide();
556
  ```
557
 
558
  **startAuto**
559
- Starts the auto show. Provide an argument <code>false</code> to prevent the auto controls from being updated.
560
  ```
561
  example:
562
  slider = $('.bxslider').bxSlider();
@@ -564,7 +644,8 @@ slider.startAuto();
564
  ```
565
 
566
  **stopAuto**
567
- Stops the auto show. Provide an argument <code>false</code> to prevent the auto controls from being updated.
 
568
  ```
569
  example:
570
  slider = $('.bxslider').bxSlider();
@@ -572,6 +653,7 @@ slider.stopAuto();
572
  ```
573
 
574
  **getCurrentSlide**
 
575
  Returns the current active slide
576
  ```
577
  example:
@@ -580,6 +662,7 @@ var current = slider.getCurrentSlide();
580
  ```
581
 
582
  **getSlideCount**
 
583
  Returns the total number of slides in the slider
584
  ```
585
  example:
@@ -588,6 +671,7 @@ var slideQty = slider.getSlideCount();
588
  ```
589
 
590
  **redrawSlider**
 
591
  Redraw the slider. Useful when needing to redraw a hidden slider after it is unhidden.
592
  ```
593
  example:
@@ -596,7 +680,8 @@ slider.redrawSlider();
596
  ```
597
 
598
  **reloadSlider**
599
- Reload the slider. Useful when adding slides on the fly. Accepts an optional settings object. <a href="/examples/reload-slider-settings">See here for an example.</a>
 
600
  ```
601
  example:
602
  slider = $('.bxslider').bxSlider();
@@ -604,6 +689,7 @@ slider.reloadSlider();
604
  ```
605
 
606
  **destroySlider**
 
607
  Destroy the slider. This reverts all slider elements back to their original state (before calling the slider).
608
  ```
609
  example:
@@ -611,25 +697,15 @@ slider = $('.bxslider').bxSlider();
611
  slider.destroySlider();
612
  ```
613
 
614
- ### Install Grunt and Bower
615
 
616
  **Unfamiliar with npm? Don't have node installed?** [Download and install node.js](http://nodejs.org/download/) before proceeding.
617
 
618
  From the command line:
619
 
620
- 1. Install `grunt-cli` and `bower` globally with `npm install -g grunt-cli bower`.
621
- 2. Run `npm install`. npm will look at `package.json` and automatically install the necessary dependencies.
622
- 3. Run `bower install`, which installs front-end packages defined in `bower.json`.
623
-
624
- When completed, you'll be able to run the various Grunt commands provided from the command line.
625
-
626
- ### Available Grunt commands
627
-
628
- * `grunt` — Clean, Compile LESS to CSS, concatenate and validate JS, build documentation.
629
- * `grunt dist` — Clean, Compile LESS to CSS, concatenate and validate JS for plugin only.
630
- * `grunt docs` — Clean, build documentation only.
631
- * `grunt watch` — loads LiveReload, connects, and watches all assets.
632
- * `grunt zip` — Creates a zip of `/dist` and places it in `/download`.
633
 
634
  ## Contributing
635
 
@@ -642,13 +718,36 @@ Everyone is welcome to help [contribute](CONTRIBUTING.md) and improve this proje
642
 
643
  ## Changelog
644
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
645
  ### Version 4.2.5
646
  * Fix: Vertical carousel minSlides not working #840
647
  * Fix: slider breaks with css animations if settings.speed set to 0 #838
648
  * Fix: Slider runs into undefined state when reloadSlider is called before initialization was finished #833
649
 
650
  ### Version 4.2.4
651
- NOTICE: We have switched to a Grunt based build process in order to leverage [Assemble](http://assemble.io) for local documentation building. Please review the above notes about Grunt for the commands available.
 
652
 
653
  * Fix: Fixed transition from first to last slide during infinite loop #778
654
  * Fix: Reload on multiple sliders doesn't work? #755
@@ -661,7 +760,7 @@ NOTICE: We have switched to a Grunt based build process in order to leverage [As
661
  * Enhancement: Slider getter through jquery object #739
662
  * Enhancement: Add aria attributes #751
663
  * Enhancement: Slider element in every callback and a new method getSliderElement (#780)
664
- * Enhancement: Local Documentiation and examples. I have added buildable documentation to the repo. This will expand over time and allow for community corrections as needed. Please see above Grunt notes on how to build.
665
 
666
 
667
  ### Version 4.2.3
@@ -745,4 +844,4 @@ You now have all the necessary dependencies to run the build process.
745
  * Slider now only needs to load visible slides (by default) in order to initialize which results in much faster loading. A "preloadImages" setting allows for configuration.
746
 
747
 
748
- Long live Zep.
1
+ # ⚠️ Looking for a maintainer ⚠️
2
+ Please contact me if you are interested in keeping our community alive:
3
+ https://github.com/stevenwanderski/bxslider-4/issues/1095
4
 
5
+ ---
6
+
7
+ # bxSlider 4.2.12
8
+ ## The fully-loaded, responsive jQuery content slider
9
+
10
+ ### Why should I use this slider?
11
  * Fully responsive - will adapt to any device
12
  * Horizontal, vertical, and fade modes
13
  * Slides can contain images, video, or HTML content
16
  * Browser support: Firefox, Chrome, Safari, iOS, Android, IE7+
17
  * Tons of configuration options
18
 
19
+ For complete documentation, tons of examples, and a good time, visit: [http://bxslider.com](http://bxslider.com)
 
 
20
 
21
  Written by: Steven Wanderski - [http://stevenwanderski.com](http://stevenwanderski.com)
22
 
23
+ ### License
24
  Released under the MIT license - http://opensource.org/licenses/MIT
25
 
26
  Let's get on with it!
27
 
28
+ ## Installation
29
 
30
+ ### Step 1: Link required files
31
 
32
  First and most important, the jQuery library needs to be included (no need to download - link directly from Google). Next, download the package from this site and link the bxSlider CSS file (for the theme) and the bxSlider Javascript file.
33
 
40
  <link href="/lib/jquery.bxslider.css" rel="stylesheet" />
41
  ```
42
 
43
+ ### Step 2: Create HTML markup
44
 
45
  Create a `<ul class="bxslider">` element, with a `<li>` for each slide. Slides can contain images, video, or any other HTML content!
46
 
53
  </ul>
54
  ```
55
 
56
+ ### Step 3: Call the bxSlider
57
 
58
  Call .bxSlider() on `<ul class="bxslider">`. Note that the call must be made inside of a $(document).ready() call, or the plugin will not work!
59
 
63
  });
64
  ```
65
 
66
+ ## Configuration options
67
 
68
+ ### General
69
 
70
  **mode**
71
+
72
  Type of transition between slides
73
  ```
74
  default: 'horizontal'
76
  ```
77
 
78
  **speed**
79
+
80
  Slide transition duration (in ms)
81
  ```
82
  default: 500
84
  ```
85
 
86
  **slideMargin**
87
+
88
  Margin between each slide
89
  ```
90
  default: 0
92
  ```
93
 
94
  **startSlide**
95
+
96
  Starting slide index (zero-based)
97
  ```
98
  default: 0
100
  ```
101
 
102
  **randomStart**
103
+
104
  Start slider on a random slide
105
  ```
106
  default: false
108
  ```
109
 
110
  **slideSelector**
111
+
112
  Element to use as slides (ex. <code>'div.slide'</code>).<br />Note: by default, bxSlider will use all immediate children of the slider element
113
  ```
114
  default: ''
116
  ```
117
 
118
  **infiniteLoop**
119
+
120
  If <code>true</code>, clicking "Next" while on the last slide will transition to the first slide and vice-versa
121
  ```
122
  default: true
124
  ```
125
 
126
  **hideControlOnEnd**
127
+
128
  If <code>true</code>, "Prev" and "Next" controls will receive a class <code>disabled</code> when slide is the first or the last<br/>Note: Only used when <code>infiniteLoop: false</code>
129
  ```
130
  default: false
132
  ```
133
 
134
  **easing**
135
+
136
  The type of "easing" to use during transitions. If using CSS transitions, include a value for the <code>transition-timing-function</code> property. If not using CSS transitions, you may include <code>plugins/jquery.easing.1.3.js</code> for many options.<br />See <a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">http://gsgd.co.uk/sandbox/jquery/easing/</a> for more info.
137
  ```
138
  default: null
140
  ```
141
 
142
  **captions**
143
+
144
  Include image captions. Captions are derived from the image's <code>title</code> attribute
145
  ```
146
  default: false
148
  ```
149
 
150
  **ticker**
151
+
152
  Use slider in ticker mode (similar to a news ticker)
153
  ```
154
  default: false
156
  ```
157
 
158
  **tickerHover**
159
+
160
  Ticker will pause when mouse hovers over slider. Note: this functionality does NOT work if using CSS transitions!
161
  ```
162
  default: false
164
  ```
165
 
166
  **adaptiveHeight**
167
+
168
  Dynamically adjust slider height based on each slide's height
169
  ```
170
  default: false
172
  ```
173
 
174
  **adaptiveHeightSpeed**
175
+
176
  Slide height transition duration (in ms). Note: only used if <code>adaptiveHeight: true</code>
177
  ```
178
  default: 500
180
  ```
181
 
182
  **video**
183
+
184
  If any slides contain video, set this to <code>true</code>. Also, include <code>plugins/jquery.fitvids.js</code><br />See <a href="http://fitvidsjs.com/" target="_blank">http://fitvidsjs.com/</a> for more info
185
  ```
186
  default: false
188
  ```
189
 
190
  **responsive**
191
+
192
  Enable or disable auto resize of the slider. Useful if you need to use fixed width sliders.
193
  ```
194
  default: true
196
  ```
197
 
198
  **useCSS**
199
+
200
  If true, CSS transitions will be used for horizontal and vertical slide animations (this uses native hardware acceleration). If false, jQuery animate() will be used.
201
  ```
202
  default: true
204
  ```
205
 
206
  **preloadImages**
207
+
208
  If 'all', preloads all images before starting the slider. If 'visible', preloads only images in the initially visible slides before starting the slider (tip: use 'visible' if all slides are identical dimensions)
209
  ```
210
  default: 'visible'
212
  ```
213
 
214
  **touchEnabled**
215
+
216
  If <code>true</code>, slider will allow touch swipe transitions
217
  ```
218
  default: true
220
  ```
221
 
222
  **swipeThreshold**
223
+
224
  Amount of pixels a touch swipe needs to exceed in order to execute a slide transition. Note: only used if <code>touchEnabled: true</code>
225
  ```
226
  default: 50
228
  ```
229
 
230
  **oneToOneTouch**
231
+
232
  If <code>true</code>, non-fade slides follow the finger as it swipes
233
  ```
234
  default: true
236
  ```
237
 
238
  **preventDefaultSwipeX**
239
+
240
  If <code>true</code>, touch screen will not move along the x-axis as the finger swipes
241
  ```
242
  default: true
244
  ```
245
 
246
  **preventDefaultSwipeY**
247
+
248
  If <code>true</code>, touch screen will not move along the y-axis as the finger swipes
249
  ```
250
  default: false
252
  ```
253
 
254
  **wrapperClass**
255
+
256
  Class to wrap the slider in. Change to prevent from using default bxSlider styles.
257
  ```
258
  default: 'bx-wrapper'
259
  options: string
260
  ```
261
 
262
+ ### Pager
263
 
264
  **pager**
265
+
266
  If <code>true</code>, a pager will be added
267
  ```
268
  default: true
270
  ```
271
 
272
  **pagerType**
273
+
274
  If <code>'full'</code>, a pager link will be generated for each slide. If <code>'short'</code>, a x / y pager will be used (ex. 1 / 5)
275
  ```
276
  default: 'full'
278
  ```
279
 
280
  **pagerShortSeparator**
281
+
282
  If <code>pagerType: 'short'</code>, pager will use this value as the separating character
283
  ```
284
  default: ' / '
286
  ```
287
 
288
  **pagerSelector**
289
+
290
  Element used to populate the populate the pager. By default, the pager is appended to the bx-viewport
291
  ```
292
  default: ''
294
  ```
295
 
296
  **pagerCustom**
297
+
298
  Parent element to be used as the pager. Parent element must contain a <code>&lt;a data-slide-index="x"&gt;</code> element for each slide. See example <a href="/examples/thumbnail-method-1">here</a>. Not for use with dynamic carousels.
299
  ```
300
  default: null
302
  ```
303
 
304
  **buildPager**
305
+
306
  If supplied, function is called on every slide element, and the returned value is used as the pager item markup.<br />See <a href="http://bxslider.com/examples">examples</a> for detailed implementation
307
  ```
308
  default: null
309
  options: function(slideIndex)
310
  ```
311
 
312
+ ### Controls
313
 
314
  **controls**
315
+
316
  If <code>true</code>, "Next" / "Prev" controls will be added
317
  ```
318
  default: true
320
  ```
321
 
322
  **nextText**
323
+
324
  Text to be used for the "Next" control
325
  ```
326
  default: 'Next'
328
  ```
329
 
330
  **prevText**
331
+
332
  Text to be used for the "Prev" control
333
  ```
334
  default: 'Prev'
336
  ```
337
 
338
  **nextSelector**
339
+
340
  Element used to populate the "Next" control
341
  ```
342
  default: null
344
  ```
345
 
346
  **prevSelector**
347
+
348
  Element used to populate the "Prev" control
349
  ```
350
  default: null
352
  ```
353
 
354
  **autoControls**
355
+
356
  If <code>true</code>, "Start" / "Stop" controls will be added
357
  ```
358
  default: false
360
  ```
361
 
362
  **startText**
363
+
364
  Text to be used for the "Start" control
365
  ```
366
  default: 'Start'
368
  ```
369
 
370
  **stopText**
371
+
372
  Text to be used for the "Stop" control
373
  ```
374
  default: 'Stop'
376
  ```
377
 
378
  **autoControlsCombine**
379
+
380
  When slideshow is playing only "Stop" control is displayed and vice-versa
381
  ```
382
  default: false
384
  ```
385
 
386
  **autoControlsSelector**
387
+
388
  Element used to populate the auto controls
389
  ```
390
  default: null
392
  ```
393
 
394
  **keyboardEnabled**
395
+
396
  Enable keyboard navigation for visible sliders
397
  ```
398
  default: false
399
  options: boolean (true / false)
400
  ```
401
 
402
+ ### Auto
403
 
404
  **auto**
405
+
406
  Slides will automatically transition
407
  ```
408
  default: false
409
  options: boolean (true / false)
410
  ```
411
  **stopAutoOnClick**
412
+
413
  Auto will stop on interaction with controls
414
  ```
415
  default: false
417
  ```
418
 
419
  **pause**
420
+
421
  The amount of time (in ms) between each auto transition
422
  ```
423
  default: 4000
425
  ```
426
 
427
  **autoStart**
428
+
429
  Auto show starts playing on load. If <code>false</code>, slideshow will start when the "Start" control is clicked
430
  ```
431
  default: true
433
  ```
434
 
435
  **autoDirection**
436
+
437
  The direction of auto show slide transitions
438
  ```
439
  default: 'next'
441
  ```
442
 
443
  **autoHover**
444
+
445
  Auto show will pause when mouse hovers over slider
446
  ```
447
  default: false
449
  ```
450
 
451
  **autoDelay**
452
+
453
  Time (in ms) auto show should wait before starting
454
  ```
455
  default: 0
456
  options: integer
457
  ```
458
 
459
+ ### Carousel
460
 
461
  **minSlides**
462
+
463
  The minimum number of slides to be shown. Slides will be sized down if carousel becomes smaller than the original size.
464
  ```
465
  default: 1
467
  ```
468
 
469
  **maxSlides**
470
+
471
  The maximum number of slides to be shown. Slides will be sized up if carousel becomes larger than the original size.
472
  ```
473
  default: 1
475
  ```
476
 
477
  **moveSlides**
478
+
479
+ The number of slides to move on transition. This value must be `>= minSlides`, and `<= maxSlides`. If zero (default), the number of fully-visible slides will be used.
480
  ```
481
  default: 0
482
  options: integer
483
  ```
484
 
485
  **slideWidth**
486
+
487
  The width of each slide. This setting is required for all horizontal carousels!
488
  ```
489
  default: 0
491
  ```
492
 
493
  **shrinkItems**
494
+
495
  The Carousel will only show whole items and shrink the images to fit the viewport based on maxSlides/MinSlides.
496
  ```
497
  default: false
498
  options: boolean (true / false)
499
  ```
500
 
501
+ ### Keyboard
502
 
503
  **keyboardEnabled**
504
+
505
  Allows for keyboard control of visible slider. Keypress ignored if slider not visible.
506
  ```
507
  default: false
508
  options: boolean (true / false)
509
  ```
510
 
511
+ ### Accessibility
512
+
513
  **ariaLive**
514
+
515
  Adds Aria Live attribute to slider.
516
  ```
517
  default: true
518
  options: boolean (true / false)
519
  ```
520
+
521
  **ariaHidden**
522
+
523
  Adds Aria Hidden attribute to any nonvisible slides.
524
  ```
525
  default: true
526
  options: boolean (true / false)
527
  ```
528
 
529
+ ### Callbacks
530
 
531
  **onSliderLoad**
532
+
533
  Executes immediately after the slider is fully loaded
534
  ```
535
  default: function(){}
539
  ```
540
 
541
  **onSliderResize**
542
+
543
  Executes immediately after the slider is resized
544
  ```
545
  default: function(){}
549
  ```
550
 
551
  **onSlideBefore**
552
+
553
  Executes immediately before each slide transition.
554
  ```
555
  default: function(){}
561
  ```
562
 
563
  **onSlideAfter**
564
+
565
  Executes immediately after each slide transition. Function argument is the current slide element (when transition completes).
566
  ```
567
  default: function(){}
573
  ```
574
 
575
  **onSlideNext**
576
+
577
  Executes immediately before each "Next" slide transition. Function argument is the target (next) slide element.
578
  ```
579
  default: function(){}
585
  ```
586
 
587
  **onSlidePrev**
588
+
589
  Executes immediately before each "Prev" slide transition. Function argument is the target (prev) slide element.
590
  ```
591
  default: function(){}
596
  newIndex: element index of the destination slide (after the transition)
597
  ```
598
 
599
+ **onAutoChange**
600
+
601
+ Executes immediately after auto transtion starts or stops.
602
+ ```
603
+ default: function(){}
604
+ options: function(state){ // your code here }
605
+ arguments:
606
+ state: the new state of "auto": boolean (true / false)
607
+ ```
608
+
609
+ ### Public methods
610
 
611
  **goToSlide**
612
+
613
  Performs a slide transition to the supplied slide index (zero-based)
614
  ```
615
  example:
618
  ```
619
 
620
  **goToNextSlide**
621
+
622
  Performs a "Next" slide transition
623
  ```
624
  example:
627
  ```
628
 
629
  **goToPrevSlide**
630
+
631
  Performs a "Prev" slide transition
632
  ```
633
  example:
636
  ```
637
 
638
  **startAuto**
639
+ Starts the auto show. Provide an argument `false` to prevent the auto controls from being updated.
640
  ```
641
  example:
642
  slider = $('.bxslider').bxSlider();
644
  ```
645
 
646
  **stopAuto**
647
+
648
+ Stops the auto show. Provide an argument `false` to prevent the auto controls from being updated.
649
  ```
650
  example:
651
  slider = $('.bxslider').bxSlider();
653
  ```
654
 
655
  **getCurrentSlide**
656
+
657
  Returns the current active slide
658
  ```
659
  example:
662
  ```
663
 
664
  **getSlideCount**
665
+
666
  Returns the total number of slides in the slider
667
  ```
668
  example:
671
  ```
672
 
673
  **redrawSlider**
674
+
675
  Redraw the slider. Useful when needing to redraw a hidden slider after it is unhidden.
676
  ```
677
  example:
680
  ```
681
 
682
  **reloadSlider**
683
+
684
+ Reload the slider. Useful when adding slides on the fly. Accepts an optional settings object.
685
  ```
686
  example:
687
  slider = $('.bxslider').bxSlider();
689
  ```
690
 
691
  **destroySlider**
692
+
693
  Destroy the slider. This reverts all slider elements back to their original state (before calling the slider).
694
  ```
695
  example:
697
  slider.destroySlider();
698
  ```
699
 
700
+ ### Local Development with Gulp
701
 
702
  **Unfamiliar with npm? Don't have node installed?** [Download and install node.js](http://nodejs.org/download/) before proceeding.
703
 
704
  From the command line:
705
 
706
+ 1. Install the CLI: `npm install --global gulp-cli`
707
+ 2. Run `npm install` to install local development tools
708
+ 3. Run `gulp` which will build the project
 
 
 
 
 
 
 
 
 
 
709
 
710
  ## Contributing
711
 
718
 
719
  ## Changelog
720
 
721
+ ### Version 4.2.12
722
+ * Fixes auto control theme
723
+
724
+ ### Version 4.2.11
725
+ * Removes auto-centering for sliders with no pager or controls
726
+
727
+ ### Version 4.2.10
728
+ * Bumps npm and bower versions
729
+
730
+ ### Version 4.2.9
731
+ * Removes node engine version requirement
732
+
733
+ ### Version 4.2.8
734
+ * Removes auto-centering from the theme file (`jquery.bxslider.css`)
735
+
736
+ ### Version 4.2.7
737
+ * Allows new version to be published to NPM
738
+
739
+ ### Version 4.2.6
740
+ * Fix: jQuery 3 support
741
+ * Adds Gulp and removes Grunt (for easier local development)
742
+
743
  ### Version 4.2.5
744
  * Fix: Vertical carousel minSlides not working #840
745
  * Fix: slider breaks with css animations if settings.speed set to 0 #838
746
  * Fix: Slider runs into undefined state when reloadSlider is called before initialization was finished #833
747
 
748
  ### Version 4.2.4
749
+
750
+ NOTICE: We have switched to a Grunt based build process in order to leverage [Assemble](http://assemble.io) for local documentation building. Please review the above notes about Grunt for the commands available.
751
 
752
  * Fix: Fixed transition from first to last slide during infinite loop #778
753
  * Fix: Reload on multiple sliders doesn't work? #755
760
  * Enhancement: Slider getter through jquery object #739
761
  * Enhancement: Add aria attributes #751
762
  * Enhancement: Slider element in every callback and a new method getSliderElement (#780)
763
+ * Enhancement: Local Documentiation and examples. I have added buildable documentation to the repo. This will expand over time and allow for community corrections as needed. Please see above Grunt notes on how to build.
764
 
765
 
766
  ### Version 4.2.3
844
  * Slider now only needs to load visible slides (by default) in order to initialize which results in much faster loading. A "preloadImages" setting allows for configuration.
845
 
846
 
847
+ Long live Zep.
includes/libraries/bxslider-4/src/css/jquery.bxslider.css CHANGED
@@ -1,10 +1,10 @@
1
- /** VARIABLES
2
  ===================================*/
3
  /** RESET AND LAYOUT
4
  ===================================*/
5
  .bx-wrapper {
6
  position: relative;
7
- margin: 0 auto 60px;
8
  padding: 0;
9
  *zoom: 1;
10
  -ms-touch-action: pan-y;
@@ -22,8 +22,8 @@ ul.bxslider {
22
  list-style: none;
23
  }
24
  .bx-viewport {
25
- /*fix other elements on the page moving (on Chrome)*/
26
- -webkit-transform: translatez(0);
27
  }
28
  /** THEME
29
  ===================================*/
@@ -80,6 +80,7 @@ ul.bxslider {
80
  .bx-wrapper .bx-pager-item,
81
  .bx-wrapper .bx-controls-auto .bx-controls-auto-item {
82
  display: inline-block;
 
83
  *zoom: 1;
84
  *display: inline;
85
  }
1
+ /** VARIABLES
2
  ===================================*/
3
  /** RESET AND LAYOUT
4
  ===================================*/
5
  .bx-wrapper {
6
  position: relative;
7
+ margin-bottom: 60px;
8
  padding: 0;
9
  *zoom: 1;
10
  -ms-touch-action: pan-y;
22
  list-style: none;
23
  }
24
  .bx-viewport {
25
+ /* fix other elements on the page moving (in Chrome) */
26
+ -webkit-transform: translateZ(0);
27
  }
28
  /** THEME
29
  ===================================*/
80
  .bx-wrapper .bx-pager-item,
81
  .bx-wrapper .bx-controls-auto .bx-controls-auto-item {
82
  display: inline-block;
83
+ vertical-align: bottom;
84
  *zoom: 1;
85
  *display: inline;
86
  }
includes/libraries/bxslider-4/src/js/jquery.bxslider.js CHANGED
@@ -1,3 +1,10 @@
 
 
 
 
 
 
 
1
  ;(function($) {
2
 
3
  var defaults = {
@@ -81,7 +88,8 @@
81
  onSlideAfter: function() { return true; },
82
  onSlideNext: function() { return true; },
83
  onSlidePrev: function() { return true; },
84
- onSliderResize: function() { return true; }
 
85
  };
86
 
87
  $.fn.bxSlider = function(options) {
@@ -218,15 +226,10 @@
218
  slider.viewport.parent().css({
219
  maxWidth: getViewportMaxWidth()
220
  });
221
- // make modification to the wrapper (.bx-wrapper)
222
- if (!slider.settings.pager && !slider.settings.controls) {
223
- slider.viewport.parent().css({
224
- margin: '0 auto 0px'
225
- });
226
- }
227
  // apply css to all slider children
228
  slider.children.css({
229
- float: slider.settings.mode === 'horizontal' ? 'left' : 'none',
 
230
  listStyle: 'none',
231
  position: 'relative'
232
  });
@@ -282,7 +285,7 @@
282
  $(this).one('load error', function() {
283
  if (++count === total) { callback(); }
284
  }).each(function() {
285
- if (this.complete) { $(this).load(); }
286
  });
287
  });
288
  };
@@ -447,7 +450,7 @@
447
  } else {
448
  childWidth = slider.children.first().width() + slider.settings.slideMargin;
449
  slidesShowing = Math.floor((slider.viewport.width() +
450
- slider.settings.slideMargin) / childWidth);
451
  }
452
  // if "vertical" mode, slides showing will always be minSlides
453
  } else if (slider.settings.mode === 'vertical') {
@@ -474,6 +477,7 @@
474
  breakPoint = counter + getNumberSlidesShowing();
475
  counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
476
  }
 
477
  }
478
  // if moveSlides is 0 (auto) divide children length by sides showing, then round up
479
  } else {
@@ -893,7 +897,9 @@
893
  }
894
  }
895
  };
896
-
 
 
897
  /**
898
  * Initializes the auto process
899
  */
@@ -906,11 +912,7 @@
906
  el.startAuto();
907
 
908
  //add focus and blur events to ensure its running if timeout gets paused
909
- $(window).focus(function() {
910
- el.startAuto();
911
- }).blur(function() {
912
- el.stopAuto();
913
- });
914
  }
915
  // if autoHover is requested
916
  if (slider.settings.autoHover) {
@@ -1426,9 +1428,8 @@
1426
  value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top;
1427
  // plugin values to be animated
1428
  setPositionProperty(value, 'slide', slider.settings.speed);
1429
- } else {
1430
- slider.working = false;
1431
  }
 
1432
  }
1433
  if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }
1434
  };
@@ -1439,6 +1440,7 @@
1439
  el.goToNextSlide = function() {
1440
  // if infiniteLoop is false and last page is showing, disregard call
1441
  if (!slider.settings.infiniteLoop && slider.active.last) { return; }
 
1442
  var pagerIndex = parseInt(slider.active.index) + 1;
1443
  el.goToSlide(pagerIndex, 'next');
1444
  };
@@ -1449,6 +1451,7 @@
1449
  el.goToPrevSlide = function() {
1450
  // if infiniteLoop is false and last page is showing, disregard call
1451
  if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; }
 
1452
  var pagerIndex = parseInt(slider.active.index) - 1;
1453
  el.goToSlide(pagerIndex, 'prev');
1454
  };
@@ -1470,6 +1473,8 @@
1470
  el.goToPrevSlide();
1471
  }
1472
  }, slider.settings.pause);
 
 
1473
  // if auto controls are displayed and preventControlUpdate is not true
1474
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); }
1475
  };
@@ -1486,6 +1491,8 @@
1486
  // clear the interval
1487
  clearInterval(slider.interval);
1488
  slider.interval = null;
 
 
1489
  // if auto controls are displayed and preventControlUpdate is not true
1490
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); }
1491
  };
@@ -1582,6 +1589,8 @@
1582
  if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); }
1583
  //remove self reference in data
1584
  $(this).removeData('bxSlider');
 
 
1585
  };
1586
 
1587
  /**
1
+ /**
2
+ * bxSlider v4.2.12
3
+ * Copyright 2013-2015 Steven Wanderski
4
+ * Written while drinking Belgian ales and listening to jazz
5
+ * Licensed under MIT (http://opensource.org/licenses/MIT)
6
+ */
7
+
8
  ;(function($) {
9
 
10
  var defaults = {
88
  onSlideAfter: function() { return true; },
89
  onSlideNext: function() { return true; },
90
  onSlidePrev: function() { return true; },
91
+ onSliderResize: function() { return true; },
92
+ onAutoChange: function() { return true; } //calls when auto slides starts and stops
93
  };
94
 
95
  $.fn.bxSlider = function(options) {
226
  slider.viewport.parent().css({
227
  maxWidth: getViewportMaxWidth()
228
  });
 
 
 
 
 
 
229
  // apply css to all slider children
230
  slider.children.css({
231
+ // the float attribute is a reserved word in compressors like YUI compressor and need to be quoted #48
232
+ 'float': slider.settings.mode === 'horizontal' ? 'left' : 'none',
233
  listStyle: 'none',
234
  position: 'relative'
235
  });
285
  $(this).one('load error', function() {
286
  if (++count === total) { callback(); }
287
  }).each(function() {
288
+ if (this.complete || this.src == '') { $(this).trigger('load'); }
289
  });
290
  });
291
  };
450
  } else {
451
  childWidth = slider.children.first().width() + slider.settings.slideMargin;
452
  slidesShowing = Math.floor((slider.viewport.width() +
453
+ slider.settings.slideMargin) / childWidth) || 1;
454
  }
455
  // if "vertical" mode, slides showing will always be minSlides
456
  } else if (slider.settings.mode === 'vertical') {
477
  breakPoint = counter + getNumberSlidesShowing();
478
  counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
479
  }
480
+ return counter;
481
  }
482
  // if moveSlides is 0 (auto) divide children length by sides showing, then round up
483
  } else {
897
  }
898
  }
899
  };
900
+ /* auto start and stop functions */
901
+ var windowFocusHandler = function() { el.startAuto(); };
902
+ var windowBlurHandler = function() { el.stopAuto(); };
903
  /**
904
  * Initializes the auto process
905
  */
912
  el.startAuto();
913
 
914
  //add focus and blur events to ensure its running if timeout gets paused
915
+ $(window).focus(windowFocusHandler).blur(windowBlurHandler);
 
 
 
 
916
  }
917
  // if autoHover is requested
918
  if (slider.settings.autoHover) {
1428
  value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top;
1429
  // plugin values to be animated
1430
  setPositionProperty(value, 'slide', slider.settings.speed);
 
 
1431
  }
1432
+ slider.working = false;
1433
  }
1434
  if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }
1435
  };
1440
  el.goToNextSlide = function() {
1441
  // if infiniteLoop is false and last page is showing, disregard call
1442
  if (!slider.settings.infiniteLoop && slider.active.last) { return; }
1443
+ if (slider.working == true){ return ;}
1444
  var pagerIndex = parseInt(slider.active.index) + 1;
1445
  el.goToSlide(pagerIndex, 'next');
1446
  };
1451
  el.goToPrevSlide = function() {
1452
  // if infiniteLoop is false and last page is showing, disregard call
1453
  if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; }
1454
+ if (slider.working == true){ return ;}
1455
  var pagerIndex = parseInt(slider.active.index) - 1;
1456
  el.goToSlide(pagerIndex, 'prev');
1457
  };
1473
  el.goToPrevSlide();
1474
  }
1475
  }, slider.settings.pause);
1476
+ //allback for when the auto rotate status changes
1477
+ slider.settings.onAutoChange.call(el, true);
1478
  // if auto controls are displayed and preventControlUpdate is not true
1479
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); }
1480
  };
1491
  // clear the interval
1492
  clearInterval(slider.interval);
1493
  slider.interval = null;
1494
+ //allback for when the auto rotate status changes
1495
+ slider.settings.onAutoChange.call(el, false);
1496
  // if auto controls are displayed and preventControlUpdate is not true
1497
  if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); }
1498
  };
1589
  if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); }
1590
  //remove self reference in data
1591
  $(this).removeData('bxSlider');
1592
+ // remove global window handlers
1593
+ $(window).off('blur', windowBlurHandler).off('focus', windowFocusHandler);
1594
  };
1595
 
1596
  /**
languages/testimonials-widget.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2017 Testimonials Widget
2
  # This file is distributed under the same license as the Testimonials Widget package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Testimonials Widget 3.4.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/testimonials-widget\n"
7
- "POT-Creation-Date: 2017-06-01 07:24:57+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
@@ -68,37 +68,37 @@ msgid "Settings"
68
  msgstr ""
69
 
70
  #: includes/class-testimonials-widget-settings.php:113
71
- #: includes/class-testimonials-widget-settings.php:944
72
  msgid "General"
73
  msgstr ""
74
 
75
  #: includes/class-testimonials-widget-settings.php:114
76
- #: includes/class-testimonials-widget-settings.php:952
77
  msgid "Fields"
78
  msgstr ""
79
 
80
  #: includes/class-testimonials-widget-settings.php:115
81
- #: includes/class-testimonials-widget-settings.php:960
82
  msgid "Selection"
83
  msgstr ""
84
 
85
  #: includes/class-testimonials-widget-settings.php:116
86
- #: includes/class-testimonials-widget-settings.php:968
87
  msgid "Ordering"
88
  msgstr ""
89
 
90
  #: includes/class-testimonials-widget-settings.php:117
91
- #: includes/class-testimonials-widget-settings.php:976
92
  msgid "Columns"
93
  msgstr ""
94
 
95
  #: includes/class-testimonials-widget-settings.php:118
96
- #: includes/class-testimonials-widget-settings.php:984
97
  msgid "Post Type"
98
  msgstr ""
99
 
100
  #: includes/class-testimonials-widget-settings.php:119
101
- #: includes/class-testimonials-widget-settings.php:992
102
  msgid "Slider Widget"
103
  msgstr ""
104
 
@@ -140,527 +140,535 @@ msgid "Dynamically adjust slider height based on each slide's height."
140
  msgstr ""
141
 
142
  #: includes/class-testimonials-widget-settings.php:162
143
- msgid "Bottom Text"
144
  msgstr ""
145
 
146
  #: includes/class-testimonials-widget-settings.php:163
 
 
 
 
 
 
 
 
147
  msgid "Common text or HTML for bottom of testimonials."
148
  msgstr ""
149
 
150
- #: includes/class-testimonials-widget-settings.php:170
151
  msgid "Character Limit"
152
  msgstr ""
153
 
154
- #: includes/class-testimonials-widget-settings.php:171
155
  msgid "Number of characters to limit non-single testimonial views to."
156
  msgstr ""
157
 
158
- #: includes/class-testimonials-widget-settings.php:177
159
  msgid "Keep Whitespace?"
160
  msgstr ""
161
 
162
- #: includes/class-testimonials-widget-settings.php:178
163
  msgid "Keeps testimonials looking as entered than sans auto-formatting."
164
  msgstr ""
165
 
166
- #: includes/class-testimonials-widget-settings.php:185
167
  msgid "Rotation Speed"
168
  msgstr ""
169
 
170
- #: includes/class-testimonials-widget-settings.php:186
171
  msgid "Number of seconds between testimonial rotations or 0 for no rotation at all refresh."
172
  msgstr ""
173
 
174
- #: includes/class-testimonials-widget-settings.php:193
175
  msgid "Show Play/Pause?"
176
  msgstr ""
177
 
178
- #: includes/class-testimonials-widget-settings.php:194
179
  msgid "Display start and stop buttons underneath the testimonial slider."
180
  msgstr ""
181
 
182
- #: includes/class-testimonials-widget-settings.php:202
183
  msgid "Slide Width?"
184
  msgstr ""
185
 
186
- #: includes/class-testimonials-widget-settings.php:203
187
  msgid "Width of each testimonial. Increase to thumbnail width or greater for improved looks. Requried for horizontal transitions."
188
  msgstr ""
189
 
190
- #: includes/class-testimonials-widget-settings.php:210
191
  msgid "Transition Mode?"
192
  msgstr ""
193
 
194
- #: includes/class-testimonials-widget-settings.php:211
195
  msgid "Type of transition between slides."
196
  msgstr ""
197
 
198
- #: includes/class-testimonials-widget-settings.php:214
199
  msgid "Fade"
200
  msgstr ""
201
 
202
- #: includes/class-testimonials-widget-settings.php:215
203
  msgid "Horizontal"
204
  msgstr ""
205
 
206
- #: includes/class-testimonials-widget-settings.php:216
207
  msgid "Vertical"
208
  msgstr ""
209
 
210
- #: includes/class-testimonials-widget-settings.php:228
211
  msgid "General Options"
212
  msgstr ""
213
 
214
- #: includes/class-testimonials-widget-settings.php:233
215
  msgid "Default Reviewed Item?"
216
  msgstr ""
217
 
218
- #: includes/class-testimonials-widget-settings.php:234
219
  msgid "Name of thing being referenced in testimonials."
220
  msgstr ""
221
 
222
- #: includes/class-testimonials-widget-settings.php:241
223
  msgid "Default Reviewed Item URL?"
224
  msgstr ""
225
 
226
- #: includes/class-testimonials-widget-settings.php:242
227
  msgid "URL of thing being referenced in testimonials."
228
  msgstr ""
229
 
230
- #: includes/class-testimonials-widget-settings.php:249
231
  msgid "Disable built-in quotes?"
232
  msgstr ""
233
 
234
- #: includes/class-testimonials-widget-settings.php:250
235
  msgid "Remove open and close quote span tags surrounding testimonial content."
236
  msgstr ""
237
 
238
- #: includes/class-testimonials-widget-settings.php:256
239
  msgid "Disable \"Testimonials Not Found\"?"
240
  msgstr ""
241
 
242
- #: includes/class-testimonials-widget-settings.php:257
243
  msgid "Remove \"Testimonials Not Found\" content when no testimonials are found to be displayed."
244
  msgstr ""
245
 
246
- #: includes/class-testimonials-widget-settings.php:263
247
  msgid "Enable Paging?"
248
  msgstr ""
249
 
250
- #: includes/class-testimonials-widget-settings.php:264
251
  msgid "Show paging controls for `[testimonials]` listing."
252
  msgstr ""
253
 
254
- #: includes/class-testimonials-widget-settings.php:267
255
  msgid "Disable"
256
  msgstr ""
257
 
258
- #: includes/class-testimonials-widget-settings.php:268
259
  msgid "Enable"
260
  msgstr ""
261
 
262
- #: includes/class-testimonials-widget-settings.php:269
263
  msgid "Before testimonials"
264
  msgstr ""
265
 
266
- #: includes/class-testimonials-widget-settings.php:270
267
  msgid "After testimonials"
268
  msgstr ""
269
 
270
- #: includes/class-testimonials-widget-settings.php:277
271
  msgid "Enable [shortcodes]?"
272
  msgstr ""
273
 
274
- #: includes/class-testimonials-widget-settings.php:278
275
  msgid "If unchecked, shortcodes are stripped."
276
  msgstr ""
277
 
278
- #: includes/class-testimonials-widget-settings.php:285
279
  msgid "Enable Video?"
280
  msgstr ""
281
 
282
- #: includes/class-testimonials-widget-settings.php:286
283
  msgid "Only enable when displaying video content."
284
  msgstr ""
285
 
286
- #: includes/class-testimonials-widget-settings.php:292
287
  msgid "Exclude bxSlider CSS?"
288
  msgstr ""
289
 
290
- #: includes/class-testimonials-widget-settings.php:293
291
  msgid "For a bare-bones, unthemed slider."
292
  msgstr ""
293
 
294
- #: includes/class-testimonials-widget-settings.php:301
295
  msgid "Exclude default CSS?"
296
  msgstr ""
297
 
298
- #: includes/class-testimonials-widget-settings.php:302
299
  msgid "Prevent default CSS from being loaded."
300
  msgstr ""
301
 
302
- #: includes/class-testimonials-widget-settings.php:310
303
  msgid "Remove `.hentry` CSS?"
304
  msgstr ""
305
 
306
- #: includes/class-testimonials-widget-settings.php:311
307
  msgid "Some themes use class `.hentry` in a manner that breaks Testimonials' CSS."
308
  msgstr ""
309
 
310
- #: includes/class-testimonials-widget-settings.php:318
311
  msgid "URL Target"
312
  msgstr ""
313
 
314
- #: includes/class-testimonials-widget-settings.php:319
315
  msgid "Add target to all URLs; leave blank if none."
316
  msgstr ""
317
 
318
- #: includes/class-testimonials-widget-settings.php:324
319
  msgid "Use `&lt;q&gt;` tag?"
320
  msgstr ""
321
 
322
- #: includes/class-testimonials-widget-settings.php:325
323
  msgid "Not HTML5 compliant."
324
  msgstr ""
325
 
326
- #: includes/class-testimonials-widget-settings.php:337
327
  msgid "Field Options"
328
  msgstr ""
329
 
330
- #: includes/class-testimonials-widget-settings.php:343
331
  msgid "Hide Title Above Content?"
332
  msgstr ""
333
 
334
- #: includes/class-testimonials-widget-settings.php:347
335
  msgid "Don't display testimonial title above testimonial content."
336
  msgstr ""
337
 
338
- #: includes/class-testimonials-widget-settings.php:352
339
- #: includes/class-testimonials-widget-settings.php:618
340
  msgid "Hide Author?"
341
  msgstr ""
342
 
343
- #: includes/class-testimonials-widget-settings.php:355
344
  msgid "Don't display testimonial title in cite."
345
  msgstr ""
346
 
347
- #: includes/class-testimonials-widget-settings.php:360
348
- #: includes/class-testimonials-widget-settings.php:628
349
  msgid "Hide Company?"
350
  msgstr ""
351
 
352
- #: includes/class-testimonials-widget-settings.php:363
353
  msgid "Don't display testimonial company in cite."
354
  msgstr ""
355
 
356
- #: includes/class-testimonials-widget-settings.php:368
357
  msgid "Hide Content?"
358
  msgstr ""
359
 
360
- #: includes/class-testimonials-widget-settings.php:371
361
  msgid "Don't display testimonial content in a view."
362
  msgstr ""
363
 
364
- #: includes/class-testimonials-widget-settings.php:376
365
- #: includes/class-testimonials-widget-settings.php:638
366
  msgid "Hide Email?"
367
  msgstr ""
368
 
369
- #: includes/class-testimonials-widget-settings.php:380
370
  msgid "Don't display or link to testimonial email in cite."
371
  msgstr ""
372
 
373
- #: includes/class-testimonials-widget-settings.php:385
374
  msgid "Hide Gravatar?"
375
  msgstr ""
376
 
377
- #: includes/class-testimonials-widget-settings.php:388
378
  msgid "Don't display Gravatar image with testimonial."
379
  msgstr ""
380
 
381
- #: includes/class-testimonials-widget-settings.php:393
382
- #: includes/class-testimonials-widget-settings.php:658
383
  msgid "Hide Image?"
384
  msgstr ""
385
 
386
- #: includes/class-testimonials-widget-settings.php:396
387
  msgid "Don't display featured image with testimonial."
388
  msgstr ""
389
 
390
- #: includes/class-testimonials-widget-settings.php:401
391
  msgid "Hide Image in Single View?"
392
  msgstr ""
393
 
394
- #: includes/class-testimonials-widget-settings.php:409
395
- #: includes/class-testimonials-widget-settings.php:667
396
  msgid "Hide Job Title?"
397
  msgstr ""
398
 
399
- #: includes/class-testimonials-widget-settings.php:412
400
  msgid "Don't display testimonial job title in cite."
401
  msgstr ""
402
 
403
- #: includes/class-testimonials-widget-settings.php:417
404
- #: includes/class-testimonials-widget-settings.php:677
405
  msgid "Hide Location?"
406
  msgstr ""
407
 
408
- #: includes/class-testimonials-widget-settings.php:420
409
  msgid "Don't display testimonial location in cite."
410
  msgstr ""
411
 
412
- #: includes/class-testimonials-widget-settings.php:425
413
- #: includes/class-testimonials-widget-settings.php:696
414
  msgid "Hide URL?"
415
  msgstr ""
416
 
417
- #: includes/class-testimonials-widget-settings.php:428
418
  msgid "Don't display or link to testimonial URL in cite."
419
  msgstr ""
420
 
421
- #: includes/class-testimonials-widget-settings.php:438
422
  msgid "Selection Options"
423
  msgstr ""
424
 
425
- #: includes/class-testimonials-widget-settings.php:444
426
  msgid "Category Filter"
427
  msgstr ""
428
 
429
- #: includes/class-testimonials-widget-settings.php:445
430
  msgid "Comma separated category names or IDs."
431
  msgstr ""
432
 
433
- #: includes/class-testimonials-widget-settings.php:452
434
  msgid "Exclude IDs Filter"
435
  msgstr ""
436
 
437
- #: includes/class-testimonials-widget-settings.php:453
438
- #: includes/class-testimonials-widget-settings.php:460
439
  msgid "Comma separated testimonial IDs."
440
  msgstr ""
441
 
442
- #: includes/class-testimonials-widget-settings.php:459
443
  msgid "Include IDs Filter"
444
  msgstr ""
445
 
446
- #: includes/class-testimonials-widget-settings.php:466
447
  msgid "Limit"
448
  msgstr ""
449
 
450
- #: includes/class-testimonials-widget-settings.php:467
451
  msgid "Number of testimonials to select per instance."
452
  msgstr ""
453
 
454
- #: includes/class-testimonials-widget-settings.php:474
455
  msgid "Require All Tags?"
456
  msgstr ""
457
 
458
- #: includes/class-testimonials-widget-settings.php:475
459
  msgid "Select only testimonials with all of the given tags."
460
  msgstr ""
461
 
462
- #: includes/class-testimonials-widget-settings.php:482
463
  msgid "Tags Filter"
464
  msgstr ""
465
 
466
- #: includes/class-testimonials-widget-settings.php:483
467
  msgid "Comma separated tag slugs or IDs."
468
  msgstr ""
469
 
470
- #: includes/class-testimonials-widget-settings.php:496
471
  msgid "Ordering Options"
472
  msgstr ""
473
 
474
- #: includes/class-testimonials-widget-settings.php:502
475
  msgid "ORDER BY"
476
  msgstr ""
477
 
478
- #: includes/class-testimonials-widget-settings.php:503
479
  msgid "Used when \"Random Order\" is disabled."
480
  msgstr ""
481
 
482
- #: includes/class-testimonials-widget-settings.php:506
483
  msgid "Testimonial ID"
484
  msgstr ""
485
 
486
- #: includes/class-testimonials-widget-settings.php:507
487
- #: includes/class-testimonials-widget-settings.php:510
488
  #: includes/class-testimonials-widget.php:504
489
  #: includes/class-testimonials-widget.php:535
490
- #: includes/class-testimonials-widget.php:1373
491
  msgid "Author"
492
  msgstr ""
493
 
494
- #: includes/class-testimonials-widget-settings.php:508
495
  #: includes/class-testimonials-widget.php:506
496
  msgid "Date"
497
  msgstr ""
498
 
499
- #: includes/class-testimonials-widget-settings.php:509
500
  msgid "Menu Order"
501
  msgstr ""
502
 
503
- #: includes/class-testimonials-widget-settings.php:511
504
  msgid "No order"
505
  msgstr ""
506
 
507
- #: includes/class-testimonials-widget-settings.php:519
508
  msgid "ORDER BY meta_key"
509
  msgstr ""
510
 
511
- #: includes/class-testimonials-widget-settings.php:520
512
  msgid "Used when \"Random Order\" is disabled and sorting by a testimonials meta key is needed. Overrides ORDER BY."
513
  msgstr ""
514
 
515
- #: includes/class-testimonials-widget-settings.php:523
516
  msgid "None"
517
  msgstr ""
518
 
519
- #: includes/class-testimonials-widget-settings.php:524
520
  #: includes/class-testimonials-widget.php:540
521
- #: includes/class-testimonials-widget.php:1379
522
  msgid "Job Title"
523
  msgstr ""
524
 
525
- #: includes/class-testimonials-widget-settings.php:525
526
  #: includes/class-testimonials-widget.php:555
527
- #: includes/class-testimonials-widget.php:1397
528
  msgid "Email"
529
  msgstr ""
530
 
531
- #: includes/class-testimonials-widget-settings.php:526
532
  #: includes/class-testimonials-widget.php:545
533
- #: includes/class-testimonials-widget.php:1385
534
  msgid "Location"
535
  msgstr ""
536
 
537
- #: includes/class-testimonials-widget-settings.php:527
538
  #: includes/class-testimonials-widget.php:550
539
- #: includes/class-testimonials-widget.php:1391
540
  msgid "Company"
541
  msgstr ""
542
 
543
- #: includes/class-testimonials-widget-settings.php:528
544
  #: includes/class-testimonials-widget.php:560
545
- #: includes/class-testimonials-widget.php:1403
546
  msgid "URL"
547
  msgstr ""
548
 
549
- #: includes/class-testimonials-widget-settings.php:535
550
  msgid "ORDER BY Order"
551
  msgstr ""
552
 
553
- #: includes/class-testimonials-widget-settings.php:538
554
  msgid "Descending"
555
  msgstr ""
556
 
557
- #: includes/class-testimonials-widget-settings.php:539
558
  msgid "Ascending"
559
  msgstr ""
560
 
561
- #: includes/class-testimonials-widget-settings.php:547
562
  msgid "Random Order?"
563
  msgstr ""
564
 
565
- #: includes/class-testimonials-widget-settings.php:548
566
  msgid "If checked, ignores ORDER BY, ORDER BY meta_key, and ORDER BY Order. Widgets are random by default automatically."
567
  msgstr ""
568
 
569
- #: includes/class-testimonials-widget-settings.php:561
570
  msgid "Allow Comments?"
571
  msgstr ""
572
 
573
- #: includes/class-testimonials-widget-settings.php:562
574
  msgid "Only affects the Testimonials post edit page. Your theme controls the front-end view."
575
  msgstr ""
576
 
577
- #: includes/class-testimonials-widget-settings.php:569
578
  msgid "URL slug-name for <a href=\"%1s\">testimonials archive</a> page."
579
  msgstr ""
580
 
581
- #: includes/class-testimonials-widget-settings.php:575
582
  msgid "Archive Page URL"
583
  msgstr ""
584
 
585
- #: includes/class-testimonials-widget-settings.php:585
586
  msgid "Disable Default Taxonomies?"
587
  msgstr ""
588
 
589
- #: includes/class-testimonials-widget-settings.php:588
590
  msgid "If checked, use Testimonials' own category and tag taxonomies than WordPress' defaults."
591
  msgstr ""
592
 
593
- #: includes/class-testimonials-widget-settings.php:594
594
  msgid "Include testimonials in archive and category views."
595
  msgstr ""
596
 
597
- #: includes/class-testimonials-widget-settings.php:597
598
  msgid "Enable archives view?"
599
  msgstr ""
600
 
601
- #: includes/class-testimonials-widget-settings.php:603
602
  msgid "URL slug-name for testimonial view pages. Shouldn't be the same as the Archive Page URL nor should it match a page URL slug."
603
  msgstr ""
604
 
605
- #: includes/class-testimonials-widget-settings.php:607
606
  msgid "Testimonial Page URL"
607
  msgstr ""
608
 
609
- #: includes/class-testimonials-widget-settings.php:648
610
  msgid "Hide ID?"
611
  msgstr ""
612
 
613
- #: includes/class-testimonials-widget-settings.php:687
614
  msgid "Hide Shortcode?"
615
  msgstr ""
616
 
617
- #: includes/class-testimonials-widget-settings.php:707
618
- #: includes/class-testimonials-widget-settings.php:1000
619
  #: includes/libraries/aihrus-framework/includes/class-aihrus-settings.php:65
620
  msgid "Reset"
621
  msgstr ""
622
 
623
- #: includes/class-testimonials-widget-settings.php:930
624
  msgid "These Testimonials Settings establish the default option values for shortcodes, theme functions, and widget instances. Widgets, once created no longer inherit these global settings. Therefore, you'll need to update each widget with the new settings. It might be easier to delete the widget and then recreate it."
625
  msgstr ""
626
 
627
- #: includes/class-testimonials-widget-settings.php:932
628
  msgid "Shortcode option names are listed below each entry."
629
  msgstr ""
630
 
631
- #: includes/class-testimonials-widget-settings.php:935
632
  msgid "View the <a href=\"%s\">Testimonials documentation</a>."
633
  msgstr ""
634
 
635
- #: includes/class-testimonials-widget-settings.php:945
636
  msgid "General options."
637
  msgstr ""
638
 
639
- #: includes/class-testimonials-widget-settings.php:953
640
  msgid "Show or hide fields."
641
  msgstr ""
642
 
643
- #: includes/class-testimonials-widget-settings.php:961
644
  msgid "Options used to select testimonials."
645
  msgstr ""
646
 
647
- #: includes/class-testimonials-widget-settings.php:969
648
  msgid "Options used to determine displayed testimonials ordering."
649
  msgstr ""
650
 
651
- #: includes/class-testimonials-widget-settings.php:977
652
  msgid "Allowed columns to display on edit page."
653
  msgstr ""
654
 
655
- #: includes/class-testimonials-widget-settings.php:985
656
  msgid "Archive and singular page URL related testimonials options."
657
  msgstr ""
658
 
659
- #: includes/class-testimonials-widget-settings.php:993
660
  msgid "Options related to showing testimonials in widgets."
661
  msgstr ""
662
 
663
- #: includes/class-testimonials-widget-settings.php:1001
664
  msgid "Backwards compatibility, import/export options, and reset options."
665
  msgstr ""
666
 
@@ -740,7 +748,7 @@ msgid "Edit Testimonial"
740
  msgstr ""
741
 
742
  #: includes/class-testimonials-widget.php:576
743
- #: includes/class-testimonials-widget.php:885
744
  msgid "No testimonials found"
745
  msgstr ""
746
 
@@ -753,8 +761,8 @@ msgid "Search Testimonials"
753
  msgstr ""
754
 
755
  #: includes/class-testimonials-widget.php:580
756
- #: includes/class-testimonials-widget.php:1464
757
- #: includes/class-testimonials-widget.php:1639
758
  msgid "Testimonial"
759
  msgstr ""
760
 
@@ -762,84 +770,84 @@ msgstr ""
762
  msgid "View Testimonial"
763
  msgstr ""
764
 
765
- #: includes/class-testimonials-widget.php:1376
766
  msgid "Use when the testimonial title is not the authors' name."
767
  msgstr ""
768
 
769
- #: includes/class-testimonials-widget.php:1400
770
  msgid "If an email is provided, but not an image, a Gravatar icon will be attempted to be loaded."
771
  msgstr ""
772
 
773
- #: includes/class-testimonials-widget.php:1415
774
  msgid "Testimonial Data"
775
  msgstr ""
776
 
777
- #: includes/class-testimonials-widget.php:1439
778
  msgid "Testimonial updated. <a href=\"%s\">View testimonial</a>"
779
  msgstr ""
780
 
781
- #: includes/class-testimonials-widget.php:1440
782
  msgid "Custom field updated."
783
  msgstr ""
784
 
785
- #: includes/class-testimonials-widget.php:1441
786
  msgid "Custom field deleted."
787
  msgstr ""
788
 
789
- #: includes/class-testimonials-widget.php:1442
790
  msgid "Testimonial updated."
791
  msgstr ""
792
 
793
  #. translators: %s: date and time of the revision
794
 
795
- #: includes/class-testimonials-widget.php:1444
796
  msgid "Testimonial restored to revision from %s"
797
  msgstr ""
798
 
799
- #: includes/class-testimonials-widget.php:1445
800
  msgid "Testimonial published. <a href=\"%s\">View testimonial</a>"
801
  msgstr ""
802
 
803
- #: includes/class-testimonials-widget.php:1446
804
  msgid "Testimonial saved."
805
  msgstr ""
806
 
807
- #: includes/class-testimonials-widget.php:1447
808
  msgid "Testimonial submitted. <a target=\"_blank\" href=\"%s\">Preview testimonial</a>"
809
  msgstr ""
810
 
811
- #: includes/class-testimonials-widget.php:1448
812
  msgid "Testimonial scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview testimonial</a>"
813
  msgstr ""
814
 
815
- #: includes/class-testimonials-widget.php:1449
816
  msgid "Testimonial draft updated. <a target=\"_blank\" href=\"%s\">Preview testimonial</a>"
817
  msgstr ""
818
 
819
- #: includes/class-testimonials-widget.php:1534
820
  msgid "If your Testimonials display has gone to funky town, please <a href=\"%s\">read the FAQ</a> about possible fixes."
821
  msgstr ""
822
 
823
- #: includes/class-testimonials-widget.php:1553
824
  msgid "Failed version check"
825
  msgstr ""
826
 
827
- #: includes/class-testimonials-widget.php:1584
828
  msgid "Shortcode"
829
  msgstr ""
830
 
831
- #: includes/class-testimonials-widget.php:2022
832
- #: includes/class-testimonials-widget.php:2095
833
  msgid "Used with: "
834
  msgstr ""
835
 
836
- #: includes/class-testimonials-widget.php:2059
837
- #: includes/class-testimonials-widget.php:2123
838
  msgid "Options: "
839
  msgstr ""
840
 
841
- #: includes/class-testimonials-widget.php:2064
842
- #: includes/class-testimonials-widget.php:2128
843
  msgid "Usage: "
844
  msgstr ""
845
 
@@ -856,7 +864,7 @@ msgid "Plugin \"%1$s\" is causing the out of date issue."
856
  msgstr ""
857
 
858
  #: includes/libraries/aihrus-framework/aihrus-framework.php:106
859
- msgid "Plugin \"%1$s\" has been deactivated as it requires Aihrus Framework %2$s or newer. You're running Aihrus Framework %4$s. Once corrected, \"%1$s\" can be activated. %5$s %3$s"
860
  msgstr ""
861
 
862
  #: includes/libraries/aihrus-framework/aihrus-framework.php:115
@@ -1072,7 +1080,7 @@ msgid "If you like this plugin, please <a href=\"%1$s\" title=\"Donate for Good
1072
  msgstr ""
1073
 
1074
  #: includes/libraries/aihrus-framework/includes/class-aihrus-settings.php:309
1075
- msgid "Copyright &copy;%1$s <a href=\"%2$s\">Axlerant</a>."
1076
  msgstr ""
1077
 
1078
  #: includes/libraries/aihrus-framework/includes/class-aihrus-settings.php:616
1
+ # Copyright (C) 2018 Testimonials Widget
2
  # This file is distributed under the same license as the Testimonials Widget package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Testimonials Widget 3.4.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/testimonials-widget\n"
7
+ "POT-Creation-Date: 2018-05-01 14:24:03+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
68
  msgstr ""
69
 
70
  #: includes/class-testimonials-widget-settings.php:113
71
+ #: includes/class-testimonials-widget-settings.php:953
72
  msgid "General"
73
  msgstr ""
74
 
75
  #: includes/class-testimonials-widget-settings.php:114
76
+ #: includes/class-testimonials-widget-settings.php:961
77
  msgid "Fields"
78
  msgstr ""
79
 
80
  #: includes/class-testimonials-widget-settings.php:115
81
+ #: includes/class-testimonials-widget-settings.php:969
82
  msgid "Selection"
83
  msgstr ""
84
 
85
  #: includes/class-testimonials-widget-settings.php:116
86
+ #: includes/class-testimonials-widget-settings.php:977
87
  msgid "Ordering"
88
  msgstr ""
89
 
90
  #: includes/class-testimonials-widget-settings.php:117
91
+ #: includes/class-testimonials-widget-settings.php:985
92
  msgid "Columns"
93
  msgstr ""
94
 
95
  #: includes/class-testimonials-widget-settings.php:118
96
+ #: includes/class-testimonials-widget-settings.php:993
97
  msgid "Post Type"
98
  msgstr ""
99
 
100
  #: includes/class-testimonials-widget-settings.php:119
101
+ #: includes/class-testimonials-widget-settings.php:1001
102
  msgid "Slider Widget"
103
  msgstr ""
104
 
140
  msgstr ""
141
 
142
  #: includes/class-testimonials-widget-settings.php:162
143
+ msgid "Stop scroll on hover?"
144
  msgstr ""
145
 
146
  #: includes/class-testimonials-widget-settings.php:163
147
+ msgid "If checked, slider will not scroll when mouse hovers over the testimonial slide."
148
+ msgstr ""
149
+
150
+ #: includes/class-testimonials-widget-settings.php:171
151
+ msgid "Bottom Text"
152
+ msgstr ""
153
+
154
+ #: includes/class-testimonials-widget-settings.php:172
155
  msgid "Common text or HTML for bottom of testimonials."
156
  msgstr ""
157
 
158
+ #: includes/class-testimonials-widget-settings.php:179
159
  msgid "Character Limit"
160
  msgstr ""
161
 
162
+ #: includes/class-testimonials-widget-settings.php:180
163
  msgid "Number of characters to limit non-single testimonial views to."
164
  msgstr ""
165
 
166
+ #: includes/class-testimonials-widget-settings.php:186
167
  msgid "Keep Whitespace?"
168
  msgstr ""
169
 
170
+ #: includes/class-testimonials-widget-settings.php:187
171
  msgid "Keeps testimonials looking as entered than sans auto-formatting."
172
  msgstr ""
173
 
174
+ #: includes/class-testimonials-widget-settings.php:194
175
  msgid "Rotation Speed"
176
  msgstr ""
177
 
178
+ #: includes/class-testimonials-widget-settings.php:195
179
  msgid "Number of seconds between testimonial rotations or 0 for no rotation at all refresh."
180
  msgstr ""
181
 
182
+ #: includes/class-testimonials-widget-settings.php:202
183
  msgid "Show Play/Pause?"
184
  msgstr ""
185
 
186
+ #: includes/class-testimonials-widget-settings.php:203
187
  msgid "Display start and stop buttons underneath the testimonial slider."
188
  msgstr ""
189
 
190
+ #: includes/class-testimonials-widget-settings.php:211
191
  msgid "Slide Width?"
192
  msgstr ""
193
 
194
+ #: includes/class-testimonials-widget-settings.php:212
195
  msgid "Width of each testimonial. Increase to thumbnail width or greater for improved looks. Requried for horizontal transitions."
196
  msgstr ""
197
 
198
+ #: includes/class-testimonials-widget-settings.php:219
199
  msgid "Transition Mode?"
200
  msgstr ""
201
 
202
+ #: includes/class-testimonials-widget-settings.php:220
203
  msgid "Type of transition between slides."
204
  msgstr ""
205
 
206
+ #: includes/class-testimonials-widget-settings.php:223
207
  msgid "Fade"
208
  msgstr ""
209
 
210
+ #: includes/class-testimonials-widget-settings.php:224
211
  msgid "Horizontal"
212
  msgstr ""
213
 
214
+ #: includes/class-testimonials-widget-settings.php:225
215
  msgid "Vertical"
216
  msgstr ""
217
 
218
+ #: includes/class-testimonials-widget-settings.php:237
219
  msgid "General Options"
220
  msgstr ""
221
 
222
+ #: includes/class-testimonials-widget-settings.php:242
223
  msgid "Default Reviewed Item?"
224
  msgstr ""
225
 
226
+ #: includes/class-testimonials-widget-settings.php:243
227
  msgid "Name of thing being referenced in testimonials."
228
  msgstr ""
229
 
230
+ #: includes/class-testimonials-widget-settings.php:250
231
  msgid "Default Reviewed Item URL?"
232
  msgstr ""
233
 
234
+ #: includes/class-testimonials-widget-settings.php:251
235
  msgid "URL of thing being referenced in testimonials."
236
  msgstr ""
237
 
238
+ #: includes/class-testimonials-widget-settings.php:258
239
  msgid "Disable built-in quotes?"
240
  msgstr ""
241
 
242
+ #: includes/class-testimonials-widget-settings.php:259
243
  msgid "Remove open and close quote span tags surrounding testimonial content."
244
  msgstr ""
245
 
246
+ #: includes/class-testimonials-widget-settings.php:265
247
  msgid "Disable \"Testimonials Not Found\"?"
248
  msgstr ""
249
 
250
+ #: includes/class-testimonials-widget-settings.php:266
251
  msgid "Remove \"Testimonials Not Found\" content when no testimonials are found to be displayed."
252
  msgstr ""
253
 
254
+ #: includes/class-testimonials-widget-settings.php:272
255
  msgid "Enable Paging?"
256
  msgstr ""
257
 
258
+ #: includes/class-testimonials-widget-settings.php:273
259
  msgid "Show paging controls for `[testimonials]` listing."
260
  msgstr ""
261
 
262
+ #: includes/class-testimonials-widget-settings.php:276
263
  msgid "Disable"
264
  msgstr ""
265
 
266
+ #: includes/class-testimonials-widget-settings.php:277
267
  msgid "Enable"
268
  msgstr ""
269
 
270
+ #: includes/class-testimonials-widget-settings.php:278
271
  msgid "Before testimonials"
272
  msgstr ""
273
 
274
+ #: includes/class-testimonials-widget-settings.php:279
275
  msgid "After testimonials"
276
  msgstr ""
277
 
278
+ #: includes/class-testimonials-widget-settings.php:286
279
  msgid "Enable [shortcodes]?"
280
  msgstr ""
281
 
282
+ #: includes/class-testimonials-widget-settings.php:287
283
  msgid "If unchecked, shortcodes are stripped."
284
  msgstr ""
285
 
286
+ #: includes/class-testimonials-widget-settings.php:294
287
  msgid "Enable Video?"
288
  msgstr ""
289
 
290
+ #: includes/class-testimonials-widget-settings.php:295
291
  msgid "Only enable when displaying video content."
292
  msgstr ""
293
 
294
+ #: includes/class-testimonials-widget-settings.php:301
295
  msgid "Exclude bxSlider CSS?"
296
  msgstr ""
297
 
298
+ #: includes/class-testimonials-widget-settings.php:302
299
  msgid "For a bare-bones, unthemed slider."
300
  msgstr ""
301
 
302
+ #: includes/class-testimonials-widget-settings.php:310
303
  msgid "Exclude default CSS?"
304
  msgstr ""
305
 
306
+ #: includes/class-testimonials-widget-settings.php:311
307
  msgid "Prevent default CSS from being loaded."
308
  msgstr ""
309
 
310
+ #: includes/class-testimonials-widget-settings.php:319
311
  msgid "Remove `.hentry` CSS?"
312
  msgstr ""
313
 
314
+ #: includes/class-testimonials-widget-settings.php:320
315
  msgid "Some themes use class `.hentry` in a manner that breaks Testimonials' CSS."
316
  msgstr ""
317
 
318
+ #: includes/class-testimonials-widget-settings.php:327
319
  msgid "URL Target"
320
  msgstr ""
321
 
322
+ #: includes/class-testimonials-widget-settings.php:328
323
  msgid "Add target to all URLs; leave blank if none."
324
  msgstr ""
325
 
326
+ #: includes/class-testimonials-widget-settings.php:333
327
  msgid "Use `&lt;q&gt;` tag?"
328
  msgstr ""
329
 
330
+ #: includes/class-testimonials-widget-settings.php:334
331
  msgid "Not HTML5 compliant."
332
  msgstr ""
333
 
334
+ #: includes/class-testimonials-widget-settings.php:346
335
  msgid "Field Options"
336
  msgstr ""
337
 
338
+ #: includes/class-testimonials-widget-settings.php:352
339
  msgid "Hide Title Above Content?"
340
  msgstr ""
341
 
342
+ #: includes/class-testimonials-widget-settings.php:356
343
  msgid "Don't display testimonial title above testimonial content."
344
  msgstr ""
345
 
346
+ #: includes/class-testimonials-widget-settings.php:361
347
+ #: includes/class-testimonials-widget-settings.php:627
348
  msgid "Hide Author?"
349
  msgstr ""
350
 
351
+ #: includes/class-testimonials-widget-settings.php:364
352
  msgid "Don't display testimonial title in cite."
353
  msgstr ""
354
 
355
+ #: includes/class-testimonials-widget-settings.php:369
356
+ #: includes/class-testimonials-widget-settings.php:637
357
  msgid "Hide Company?"
358
  msgstr ""
359
 
360
+ #: includes/class-testimonials-widget-settings.php:372
361
  msgid "Don't display testimonial company in cite."
362
  msgstr ""
363
 
364
+ #: includes/class-testimonials-widget-settings.php:377
365
  msgid "Hide Content?"
366
  msgstr ""
367
 
368
+ #: includes/class-testimonials-widget-settings.php:380
369
  msgid "Don't display testimonial content in a view."
370
  msgstr ""
371
 
372
+ #: includes/class-testimonials-widget-settings.php:385
373
+ #: includes/class-testimonials-widget-settings.php:647
374
  msgid "Hide Email?"
375
  msgstr ""
376
 
377
+ #: includes/class-testimonials-widget-settings.php:389
378
  msgid "Don't display or link to testimonial email in cite."
379
  msgstr ""
380
 
381
+ #: includes/class-testimonials-widget-settings.php:394
382
  msgid "Hide Gravatar?"
383
  msgstr ""
384
 
385
+ #: includes/class-testimonials-widget-settings.php:397
386
  msgid "Don't display Gravatar image with testimonial."
387
  msgstr ""
388
 
389
+ #: includes/class-testimonials-widget-settings.php:402
390
+ #: includes/class-testimonials-widget-settings.php:667
391
  msgid "Hide Image?"
392
  msgstr ""
393
 
394
+ #: includes/class-testimonials-widget-settings.php:405
395
  msgid "Don't display featured image with testimonial."
396
  msgstr ""
397
 
398
+ #: includes/class-testimonials-widget-settings.php:410
399
  msgid "Hide Image in Single View?"
400
  msgstr ""
401
 
402
+ #: includes/class-testimonials-widget-settings.php:418
403
+ #: includes/class-testimonials-widget-settings.php:676
404
  msgid "Hide Job Title?"
405
  msgstr ""
406
 
407
+ #: includes/class-testimonials-widget-settings.php:421
408
  msgid "Don't display testimonial job title in cite."
409
  msgstr ""
410
 
411
+ #: includes/class-testimonials-widget-settings.php:426
412
+ #: includes/class-testimonials-widget-settings.php:686
413
  msgid "Hide Location?"
414
  msgstr ""
415
 
416
+ #: includes/class-testimonials-widget-settings.php:429
417
  msgid "Don't display testimonial location in cite."
418
  msgstr ""
419
 
420
+ #: includes/class-testimonials-widget-settings.php:434
421
+ #: includes/class-testimonials-widget-settings.php:705
422
  msgid "Hide URL?"
423
  msgstr ""
424
 
425
+ #: includes/class-testimonials-widget-settings.php:437
426
  msgid "Don't display or link to testimonial URL in cite."
427
  msgstr ""
428
 
429
+ #: includes/class-testimonials-widget-settings.php:447
430
  msgid "Selection Options"
431
  msgstr ""
432
 
433
+ #: includes/class-testimonials-widget-settings.php:453
434
  msgid "Category Filter"
435
  msgstr ""
436
 
437
+ #: includes/class-testimonials-widget-settings.php:454
438
  msgid "Comma separated category names or IDs."
439
  msgstr ""
440
 
441
+ #: includes/class-testimonials-widget-settings.php:461
442
  msgid "Exclude IDs Filter"
443
  msgstr ""
444
 
445
+ #: includes/class-testimonials-widget-settings.php:462
446
+ #: includes/class-testimonials-widget-settings.php:469
447
  msgid "Comma separated testimonial IDs."
448
  msgstr ""
449
 
450
+ #: includes/class-testimonials-widget-settings.php:468
451
  msgid "Include IDs Filter"
452
  msgstr ""
453
 
454
+ #: includes/class-testimonials-widget-settings.php:475
455
  msgid "Limit"
456
  msgstr ""
457
 
458
+ #: includes/class-testimonials-widget-settings.php:476
459
  msgid "Number of testimonials to select per instance."
460
  msgstr ""
461
 
462
+ #: includes/class-testimonials-widget-settings.php:483
463
  msgid "Require All Tags?"
464
  msgstr ""
465
 
466
+ #: includes/class-testimonials-widget-settings.php:484
467
  msgid "Select only testimonials with all of the given tags."
468
  msgstr ""
469
 
470
+ #: includes/class-testimonials-widget-settings.php:491
471
  msgid "Tags Filter"
472
  msgstr ""
473
 
474
+ #: includes/class-testimonials-widget-settings.php:492
475
  msgid "Comma separated tag slugs or IDs."
476
  msgstr ""
477
 
478
+ #: includes/class-testimonials-widget-settings.php:505
479
  msgid "Ordering Options"
480
  msgstr ""
481
 
482
+ #: includes/class-testimonials-widget-settings.php:511
483
  msgid "ORDER BY"
484
  msgstr ""
485
 
486
+ #: includes/class-testimonials-widget-settings.php:512
487
  msgid "Used when \"Random Order\" is disabled."
488
  msgstr ""
489
 
490
+ #: includes/class-testimonials-widget-settings.php:515
491
  msgid "Testimonial ID"
492
  msgstr ""
493
 
494
+ #: includes/class-testimonials-widget-settings.php:516
495
+ #: includes/class-testimonials-widget-settings.php:519
496
  #: includes/class-testimonials-widget.php:504
497
  #: includes/class-testimonials-widget.php:535
498
+ #: includes/class-testimonials-widget.php:1378
499
  msgid "Author"
500
  msgstr ""
501
 
502
+ #: includes/class-testimonials-widget-settings.php:517
503
  #: includes/class-testimonials-widget.php:506
504
  msgid "Date"
505
  msgstr ""
506
 
507
+ #: includes/class-testimonials-widget-settings.php:518
508
  msgid "Menu Order"
509
  msgstr ""
510
 
511
+ #: includes/class-testimonials-widget-settings.php:520
512
  msgid "No order"
513
  msgstr ""
514
 
515
+ #: includes/class-testimonials-widget-settings.php:528
516
  msgid "ORDER BY meta_key"
517
  msgstr ""
518
 
519
+ #: includes/class-testimonials-widget-settings.php:529
520
  msgid "Used when \"Random Order\" is disabled and sorting by a testimonials meta key is needed. Overrides ORDER BY."
521
  msgstr ""
522
 
523
+ #: includes/class-testimonials-widget-settings.php:532
524
  msgid "None"
525
  msgstr ""
526
 
527
+ #: includes/class-testimonials-widget-settings.php:533
528
  #: includes/class-testimonials-widget.php:540
529
+ #: includes/class-testimonials-widget.php:1384
530
  msgid "Job Title"
531
  msgstr ""
532
 
533
+ #: includes/class-testimonials-widget-settings.php:534
534
  #: includes/class-testimonials-widget.php:555
535
+ #: includes/class-testimonials-widget.php:1402
536
  msgid "Email"
537
  msgstr ""
538
 
539
+ #: includes/class-testimonials-widget-settings.php:535
540
  #: includes/class-testimonials-widget.php:545
541
+ #: includes/class-testimonials-widget.php:1390
542
  msgid "Location"
543
  msgstr ""
544
 
545
+ #: includes/class-testimonials-widget-settings.php:536
546
  #: includes/class-testimonials-widget.php:550
547
+ #: includes/class-testimonials-widget.php:1396
548
  msgid "Company"
549
  msgstr ""
550
 
551
+ #: includes/class-testimonials-widget-settings.php:537
552
  #: includes/class-testimonials-widget.php:560
553
+ #: includes/class-testimonials-widget.php:1408
554
  msgid "URL"
555
  msgstr ""
556
 
557
+ #: includes/class-testimonials-widget-settings.php:544
558
  msgid "ORDER BY Order"
559
  msgstr ""
560
 
561
+ #: includes/class-testimonials-widget-settings.php:547
562
  msgid "Descending"
563
  msgstr ""
564
 
565
+ #: includes/class-testimonials-widget-settings.php:548
566
  msgid "Ascending"
567
  msgstr ""
568
 
569
+ #: includes/class-testimonials-widget-settings.php:556
570
  msgid "Random Order?"
571
  msgstr ""
572
 
573
+ #: includes/class-testimonials-widget-settings.php:557
574
  msgid "If checked, ignores ORDER BY, ORDER BY meta_key, and ORDER BY Order. Widgets are random by default automatically."
575
  msgstr ""
576
 
577
+ #: includes/class-testimonials-widget-settings.php:570
578
  msgid "Allow Comments?"
579
  msgstr ""
580
 
581
+ #: includes/class-testimonials-widget-settings.php:571
582
  msgid "Only affects the Testimonials post edit page. Your theme controls the front-end view."
583
  msgstr ""
584
 
585
+ #: includes/class-testimonials-widget-settings.php:578
586
  msgid "URL slug-name for <a href=\"%1s\">testimonials archive</a> page."
587
  msgstr ""
588
 
589
+ #: includes/class-testimonials-widget-settings.php:584
590
  msgid "Archive Page URL"
591
  msgstr ""
592
 
593
+ #: includes/class-testimonials-widget-settings.php:594
594
  msgid "Disable Default Taxonomies?"
595
  msgstr ""
596
 
597
+ #: includes/class-testimonials-widget-settings.php:597
598
  msgid "If checked, use Testimonials' own category and tag taxonomies than WordPress' defaults."
599
  msgstr ""
600
 
601
+ #: includes/class-testimonials-widget-settings.php:603
602
  msgid "Include testimonials in archive and category views."
603
  msgstr ""
604
 
605
+ #: includes/class-testimonials-widget-settings.php:606
606
  msgid "Enable archives view?"
607
  msgstr ""
608
 
609
+ #: includes/class-testimonials-widget-settings.php:612
610
  msgid "URL slug-name for testimonial view pages. Shouldn't be the same as the Archive Page URL nor should it match a page URL slug."
611
  msgstr ""
612
 
613
+ #: includes/class-testimonials-widget-settings.php:616
614
  msgid "Testimonial Page URL"
615
  msgstr ""
616
 
617
+ #: includes/class-testimonials-widget-settings.php:657
618
  msgid "Hide ID?"
619
  msgstr ""
620
 
621
+ #: includes/class-testimonials-widget-settings.php:696
622
  msgid "Hide Shortcode?"
623
  msgstr ""
624
 
625
+ #: includes/class-testimonials-widget-settings.php:716
626
+ #: includes/class-testimonials-widget-settings.php:1009
627
  #: includes/libraries/aihrus-framework/includes/class-aihrus-settings.php:65
628
  msgid "Reset"
629
  msgstr ""
630
 
631
+ #: includes/class-testimonials-widget-settings.php:939
632
  msgid "These Testimonials Settings establish the default option values for shortcodes, theme functions, and widget instances. Widgets, once created no longer inherit these global settings. Therefore, you'll need to update each widget with the new settings. It might be easier to delete the widget and then recreate it."
633
  msgstr ""
634
 
635
+ #: includes/class-testimonials-widget-settings.php:941
636
  msgid "Shortcode option names are listed below each entry."
637
  msgstr ""
638
 
639
+ #: includes/class-testimonials-widget-settings.php:944
640
  msgid "View the <a href=\"%s\">Testimonials documentation</a>."
641
  msgstr ""
642
 
643
+ #: includes/class-testimonials-widget-settings.php:954
644
  msgid "General options."
645
  msgstr ""
646
 
647
+ #: includes/class-testimonials-widget-settings.php:962
648
  msgid "Show or hide fields."
649
  msgstr ""
650
 
651
+ #: includes/class-testimonials-widget-settings.php:970
652
  msgid "Options used to select testimonials."
653
  msgstr ""
654
 
655
+ #: includes/class-testimonials-widget-settings.php:978
656
  msgid "Options used to determine displayed testimonials ordering."
657
  msgstr ""
658
 
659
+ #: includes/class-testimonials-widget-settings.php:986
660
  msgid "Allowed columns to display on edit page."
661
  msgstr ""
662
 
663
+ #: includes/class-testimonials-widget-settings.php:994
664
  msgid "Archive and singular page URL related testimonials options."
665
  msgstr ""
666
 
667
+ #: includes/class-testimonials-widget-settings.php:1002
668
  msgid "Options related to showing testimonials in widgets."
669
  msgstr ""
670
 
671
+ #: includes/class-testimonials-widget-settings.php:1010
672
  msgid "Backwards compatibility, import/export options, and reset options."
673
  msgstr ""
674
 
748
  msgstr ""
749
 
750
  #: includes/class-testimonials-widget.php:576
751
+ #: includes/class-testimonials-widget.php:888
752
  msgid "No testimonials found"
753
  msgstr ""
754
 
761
  msgstr ""
762
 
763
  #: includes/class-testimonials-widget.php:580
764
+ #: includes/class-testimonials-widget.php:1469
765
+ #: includes/class-testimonials-widget.php:1644
766
  msgid "Testimonial"
767
  msgstr ""
768
 
770
  msgid "View Testimonial"
771
  msgstr ""
772
 
773
+ #: includes/class-testimonials-widget.php:1381
774
  msgid "Use when the testimonial title is not the authors' name."
775
  msgstr ""
776
 
777
+ #: includes/class-testimonials-widget.php:1405
778
  msgid "If an email is provided, but not an image, a Gravatar icon will be attempted to be loaded."
779
  msgstr ""
780
 
781
+ #: includes/class-testimonials-widget.php:1420
782
  msgid "Testimonial Data"
783
  msgstr ""
784
 
785
+ #: includes/class-testimonials-widget.php:1444
786
  msgid "Testimonial updated. <a href=\"%s\">View testimonial</a>"
787
  msgstr ""
788
 
789
+ #: includes/class-testimonials-widget.php:1445
790
  msgid "Custom field updated."
791
  msgstr ""
792
 
793
+ #: includes/class-testimonials-widget.php:1446
794
  msgid "Custom field deleted."
795
  msgstr ""
796
 
797
+ #: includes/class-testimonials-widget.php:1447
798
  msgid "Testimonial updated."
799
  msgstr ""
800
 
801
  #. translators: %s: date and time of the revision
802
 
803
+ #: includes/class-testimonials-widget.php:1449
804
  msgid "Testimonial restored to revision from %s"
805
  msgstr ""
806
 
807
+ #: includes/class-testimonials-widget.php:1450
808
  msgid "Testimonial published. <a href=\"%s\">View testimonial</a>"
809
  msgstr ""
810
 
811
+ #: includes/class-testimonials-widget.php:1451
812
  msgid "Testimonial saved."
813
  msgstr ""
814
 
815
+ #: includes/class-testimonials-widget.php:1452
816
  msgid "Testimonial submitted. <a target=\"_blank\" href=\"%s\">Preview testimonial</a>"
817
  msgstr ""
818
 
819
+ #: includes/class-testimonials-widget.php:1453
820
  msgid "Testimonial scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview testimonial</a>"
821
  msgstr ""
822
 
823
+ #: includes/class-testimonials-widget.php:1454
824
  msgid "Testimonial draft updated. <a target=\"_blank\" href=\"%s\">Preview testimonial</a>"
825
  msgstr ""
826
 
827
+ #: includes/class-testimonials-widget.php:1539
828
  msgid "If your Testimonials display has gone to funky town, please <a href=\"%s\">read the FAQ</a> about possible fixes."
829
  msgstr ""
830
 
831
+ #: includes/class-testimonials-widget.php:1558
832
  msgid "Failed version check"
833
  msgstr ""
834
 
835
+ #: includes/class-testimonials-widget.php:1589
836
  msgid "Shortcode"
837
  msgstr ""
838
 
839
+ #: includes/class-testimonials-widget.php:2027
840
+ #: includes/class-testimonials-widget.php:2100
841
  msgid "Used with: "
842
  msgstr ""
843
 
844
+ #: includes/class-testimonials-widget.php:2064
845
+ #: includes/class-testimonials-widget.php:2128
846
  msgid "Options: "
847
  msgstr ""
848
 
849
+ #: includes/class-testimonials-widget.php:2069
850
+ #: includes/class-testimonials-widget.php:2133
851
  msgid "Usage: "
852
  msgstr ""
853
 
864
  msgstr ""
865
 
866
  #: includes/libraries/aihrus-framework/aihrus-framework.php:106
867
+ msgid "Plugin \"%1$s\" has been deactivated as it requires Axelerant Framework %2$s or newer. You're running Axelerant Framework %4$s. Once corrected, \"%1$s\" can be activated. %5$s %3$s"
868
  msgstr ""
869
 
870
  #: includes/libraries/aihrus-framework/aihrus-framework.php:115
1080
  msgstr ""
1081
 
1082
  #: includes/libraries/aihrus-framework/includes/class-aihrus-settings.php:309
1083
+ msgid "Copyright &copy;%1$s <a href=\"%2$s\">Axelerant</a>."
1084
  msgstr ""
1085
 
1086
  #: includes/libraries/aihrus-framework/includes/class-aihrus-settings.php:616
readme.txt CHANGED
@@ -4,8 +4,8 @@ Contributors: comprock,saurabhd,subharanjan
4
  Donate link: https://axelerant.com/about-axelerant/donate/
5
  Tags: axelerant, client, customer, portfolio, quote, quotes, random, recommendation, reference, review, reviews, slider, testimonial, testimonials, wpml
6
  Requires at least: 3.9.2
7
- Tested up to: 4.8
8
- Stable tag: 3.4.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
4
  Donate link: https://axelerant.com/about-axelerant/donate/
5
  Tags: axelerant, client, customer, portfolio, quote, quotes, random, recommendation, reference, review, reviews, slider, testimonial, testimonials, wpml
6
  Requires at least: 3.9.2
7
+ Tested up to: 4.9.5
8
+ Stable tag: 3.4.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
testimonials-widget.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: http://wordpress.org/plugins/testimonials-widget/
5
  * Description: Easily add social proofing to your website with Testimonials Widget. List or slide reviews via functions, shortcodes, or widgets.
6
  * lets you socially randomly slide or list selected portfolios, quotes, reviews, or text with images or videos on your WordPress site.
7
- * Version: 3.4.2
8
  * Author: Axelerant
9
  * Author URI: https://axelerant.com/
10
  * License: GPLv2 or later
@@ -36,7 +36,7 @@ if ( ! defined( 'ABSPATH' ) ) {
36
  }
37
 
38
  if ( ! defined( 'TW_AIHR_VERSION' ) ) {
39
- define( 'TW_AIHR_VERSION', '1.2.9' );
40
  }
41
 
42
  if ( ! defined( 'TW_BASE' ) ) {
@@ -64,7 +64,7 @@ if ( ! defined( 'TW_PREMIUM_LINK' ) ) {
64
  }
65
 
66
  if ( ! defined( 'TW_VERSION' ) ) {
67
- define( 'TW_VERSION', '3.4.2' );
68
  }
69
 
70
  require_once TW_DIR_INC . 'requirements.php';
4
  * Plugin URI: http://wordpress.org/plugins/testimonials-widget/
5
  * Description: Easily add social proofing to your website with Testimonials Widget. List or slide reviews via functions, shortcodes, or widgets.
6
  * lets you socially randomly slide or list selected portfolios, quotes, reviews, or text with images or videos on your WordPress site.
7
+ * Version: 3.4.3
8
  * Author: Axelerant
9
  * Author URI: https://axelerant.com/
10
  * License: GPLv2 or later
36
  }
37
 
38
  if ( ! defined( 'TW_AIHR_VERSION' ) ) {
39
+ define( 'TW_AIHR_VERSION', '1.3.1' );
40
  }
41
 
42
  if ( ! defined( 'TW_BASE' ) ) {
64
  }
65
 
66
  if ( ! defined( 'TW_VERSION' ) ) {
67
+ define( 'TW_VERSION', '3.4.3' );
68
  }
69
 
70
  require_once TW_DIR_INC . 'requirements.php';