Instagram Feed - Version 1.12

Version Description

  • Fix: Includes fixes for some security vulnerabilities. Thanks to Julio Potier of SecuPress for reporting the issues.
  • Fix: Fixed an issue caused by a bug in the Instagram API which was preventing some Instagram accounts from being able to be connected. If you experienced an issue connecting an Instagram account then please try again after updating.
  • Fix: Quotes represented by "%20" in Instagram data were causing a JSON parsing error.
  • Tweak: Data for the feed is now cached outside of the admin-ajax.php calls.
Download this release

Release Info

Developer smashballoon
Plugin Icon 128x128 Instagram Feed
Version 1.12
Comparing to
See all releases

Code changes from version 1.11.3 to 1.12

README.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: smashballoon, craig-at-smash-balloon
3
  Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
4
  Requires at least: 3.0
5
- Tested up to: 5.1
6
- Stable tag: 1.11.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -324,9 +324,15 @@ We understand that sometimes you need help, have issues or just have questions.
324
  * Plus more customization options added all the time!
325
 
326
  == Changelog ==
 
 
 
 
 
 
327
  = 1.11.3 =
328
- * Fix: Escaped single quotes causing a JSON parse error under certain circumstances
329
- * Fix: Translatable code errors in the admin area causing some text to not be translatable
330
 
331
  = 1.11.2 =
332
  * Fix: Unable to connect new accounts due to changes with Instagram's API. Remote requests to connect accounts are now made server-side.
2
  Contributors: smashballoon, craig-at-smash-balloon
3
  Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
4
  Requires at least: 3.0
5
+ Tested up to: 5.2
6
+ Stable tag: 1.12
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
324
  * Plus more customization options added all the time!
325
 
326
  == Changelog ==
327
+ = 1.12 =
328
+ * Fix: Includes fixes for some security vulnerabilities. Thanks to Julio Potier of [SecuPress](https://secupress.me/) for reporting the issues.
329
+ * Fix: Fixed an issue caused by a bug in the Instagram API which was preventing some Instagram accounts from being able to be connected. If you experienced an issue connecting an Instagram account then please try again after updating.
330
+ * Fix: Quotes represented by "%20" in Instagram data were causing a JSON parsing error.
331
+ * Tweak: Data for the feed is now cached outside of the admin-ajax.php calls.
332
+
333
  = 1.11.3 =
334
+ * Fix: Escaped single quotes causing a JSON parse error under certain circumstances.
335
+ * Fix: Translatable code errors in the admin area causing some text to not be translatable.
336
 
337
  = 1.11.2 =
338
  * Fix: Unable to connect new accounts due to changes with Instagram's API. Remote requests to connect accounts are now made server-side.
instagram-feed-admin.php CHANGED
@@ -371,8 +371,8 @@ function sb_instagram_settings_page() {
371
 
372
  <div id="sbi_config">
373
  <!-- <a href="https://instagram.com/oauth/authorize/?client_id=1654d0c81ad04754a898d89315bec227&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token" class="sbi_admin_btn"><?php _e( 'Log in and get my Access Token and User ID', 'instagram-feed' ); ?></a> -->
374
- <a href="https://instagram.com/oauth/authorize/?client_id=3a81a9fa2a064751b8c31385b91cc25c&scope=basic+public_content&redirect_uri=https://api.smashballoon.com/instagram-plugin-token.php?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token&state=<?php echo admin_url('admin.php?page-sb-instagram-feed'); ?>" class="sbi_admin_btn"><i class="fa fa-user-plus" aria-hidden="true" style="font-size: 20px;"></i>&nbsp; <?php _e( 'Connect an Instagram Account', 'instagram-feed' ); ?></a>
375
- <a href="https://smashballoon.com/instagram-feed/token/?utm_source=plugin-free&utm_campaign=sbi" target="_blank" style="position: relative; top: 14px; left: 15px;"><?php _e( 'Button not working?', 'instagram-feed' ); ?></a>
376
  </div>
377
 
378
  <!-- Old Access Token -->
@@ -2345,6 +2345,37 @@ function sbi_test_token() {
2345
  }
2346
  add_action( 'wp_ajax_sbi_test_token', 'sbi_test_token' );
2347
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2348
  function sbi_delete_account() {
2349
  $access_token = isset( $_POST['access_token'] ) ? sanitize_text_field( $_POST['access_token'] ) : false;
2350
  $options = get_option( 'sb_instagram_settings', array() );
@@ -2455,16 +2486,20 @@ function sbi_after_connection() {
2455
  }
2456
  add_action( 'wp_ajax_sbi_after_connection', 'sbi_after_connection' );
2457
 
2458
- // variables to define certain terms
2459
- $transient = 'instagram_feed_rating_notice_waiting';
2460
- $option = 'sbi_rating_notice';
2461
- $nag = 'sbi_ignore_rating_notice_nag';
 
2462
 
2463
- sbi_check_nag_get( $_GET, $nag, $option, $transient );
2464
- sbi_maybe_set_transient( $transient, $option );
2465
- $notice_status = get_option( $option, false );
2466
 
2467
  // only display the notice if the time offset has passed and the user hasn't already dismissed it
2468
- if ( get_transient( $transient ) !== 'waiting' && $notice_status !== 'dismissed' ) {
2469
- add_action( 'admin_notices', 'sbi_rating_notice_html' );
2470
- }
 
 
 
371
 
372
  <div id="sbi_config">
373
  <!-- <a href="https://instagram.com/oauth/authorize/?client_id=1654d0c81ad04754a898d89315bec227&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token" class="sbi_admin_btn"><?php _e( 'Log in and get my Access Token and User ID', 'instagram-feed' ); ?></a> -->
374
+ <a href="https://instagram.com/oauth/authorize/?client_id=3a81a9fa2a064751b8c31385b91cc25c&scope=basic+public_content&redirect_uri=https://api.smashballoon.com/instagram-plugin-token.php?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token&state=<?php echo admin_url('admin.php?page-sb-instagram-feed'); ?>&hl=en" class="sbi_admin_btn"><i class="fa fa-user-plus" aria-hidden="true" style="font-size: 20px;"></i>&nbsp; <?php _e( 'Connect an Instagram Account', 'instagram-feed' ); ?></a>
375
+ <a href="https://smashballoon.com/instagram-feed/token/" target="_blank" style="position: relative; top: 14px; left: 15px;"><?php _e( 'Button not working?', 'instagram-feed' ); ?></a>
376
  </div>
377
 
378
  <!-- Old Access Token -->
2345
  }
2346
  add_action( 'wp_ajax_sbi_test_token', 'sbi_test_token' );
2347
 
2348
+ //sbi_clear_backups
2349
+ function sbi_clear_backups() {
2350
+ $nonce = isset( $_POST['sbi_nonce'] ) ? sanitize_text_field( $_POST['sbi_nonce'] ) : '';
2351
+
2352
+ if ( ! wp_verify_nonce( $nonce, 'sbi-smash-balloon' ) ) {
2353
+ die ( 'You did not do this the right way!' );
2354
+ }
2355
+
2356
+ //Delete all transients
2357
+ global $wpdb;
2358
+ $table_name = $wpdb->prefix . "options";
2359
+ $wpdb->query( "
2360
+ DELETE
2361
+ FROM $table_name
2362
+ WHERE `option_name` LIKE ('%!sbi\_%')
2363
+ " );
2364
+ $wpdb->query( "
2365
+ DELETE
2366
+ FROM $table_name
2367
+ WHERE `option_name` LIKE ('%\_transient\_&sbi\_%')
2368
+ " );
2369
+ $wpdb->query( "
2370
+ DELETE
2371
+ FROM $table_name
2372
+ WHERE `option_name` LIKE ('%\_transient\_timeout\_&sbi\_%')
2373
+ " );
2374
+
2375
+ die();
2376
+ }
2377
+ add_action( 'wp_ajax_sbi_clear_backups', 'sbi_clear_backups' );
2378
+
2379
  function sbi_delete_account() {
2380
  $access_token = isset( $_POST['access_token'] ) ? sanitize_text_field( $_POST['access_token'] ) : false;
2381
  $options = get_option( 'sb_instagram_settings', array() );
2486
  }
2487
  add_action( 'wp_ajax_sbi_after_connection', 'sbi_after_connection' );
2488
 
2489
+ function sbi_process_admin_notices() {
2490
+ // variables to define certain terms
2491
+ $transient = 'instagram_feed_rating_notice_waiting';
2492
+ $option = 'sbi_rating_notice';
2493
+ $nag = 'sbi_ignore_rating_notice_nag';
2494
 
2495
+ sbi_check_nag_get( $_GET, $nag, $option, $transient );
2496
+ sbi_maybe_set_transient( $transient, $option );
2497
+ $notice_status = get_option( $option, false );
2498
 
2499
  // only display the notice if the time offset has passed and the user hasn't already dismissed it
2500
+ if ( get_transient( $transient ) !== 'waiting' && $notice_status !== 'dismissed' ) {
2501
+ add_action( 'admin_notices', 'sbi_rating_notice_html' );
2502
+ }
2503
+ }
2504
+ add_action( 'admin_init', 'sbi_process_admin_notices' );
2505
+
instagram-feed.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Instagram Feed
4
  Plugin URI: https://smashballoon.com/instagram-feed
5
  Description: Display beautifully clean, customizable, and responsive Instagram feeds
6
- Version: 1.11.3
7
  Author: Smash Balloon
8
  Author URI: https://smashballoon.com/
9
  License: GPLv2 or later
@@ -23,7 +23,7 @@ along with this program; if not, write to the Free Software
23
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
 
26
- define( 'SBIVER', '1.11.3' );
27
 
28
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
29
 
@@ -292,6 +292,11 @@ function display_instagram($atts, $content = null) {
292
  $feed_expires = get_option( '_transient_timeout_'.$sbi_transient_name );
293
  $sbi_cache_exists = $feed_expires !== false && ($feed_expires - time()) > 60 ? 'true' : 'false';
294
 
 
 
 
 
 
295
  $sbiHeaderCache = 'false';
296
  //If it's a user then add the header cache check to the feed
297
  $sb_instagram_user_id_arr = explode(',', $sb_instagram_user_id);
@@ -303,6 +308,11 @@ function display_instagram($atts, $content = null) {
303
  $sbi_header_cache_exists = $header_expires !== false && ($header_expires - time()) > 60 ? 'true' : 'false';
304
  $sbiHeaderCache = $sbi_header_cache_exists;
305
 
 
 
 
 
 
306
  if ( isset( $options['check_api'] ) && ( $options['check_api'] === 'on' || $options['check_api']) && ( !isset( $options['sb_instagram_cache_time'] ) || ( isset( $options['sb_instagram_cache_time'] ) && (int)$options['sb_instagram_cache_time'] > 0 ) ) ) {
307
  if ( ! get_transient( '&'.$sbi_transient_name, false ) ) {
308
  $sbi_cache_exists = 'true';
@@ -356,7 +366,6 @@ function display_instagram($atts, $content = null) {
356
  ( $sb_instagram_ajax_theme == 'on' || $sb_instagram_ajax_theme == 'true' || $sb_instagram_ajax_theme == true ) ? $sb_instagram_ajax_theme = true : $sb_instagram_ajax_theme = false;
357
  if( $atts[ 'disablemobile' ] === 'false' ) $sb_instagram_ajax_theme = false;
358
 
359
-
360
  /******************* CONTENT ********************/
361
 
362
  $sb_instagram_content = '<div id="sb_instagram" class="sbi' . $sbi_class . $sb_instagram_disable_mobile;
@@ -456,7 +465,7 @@ function sbi_should_use_backup_cache( $token, $cache_name, $is_filtered, $always
456
  return false;
457
  }
458
 
459
- function sbi_cache_photos() {
460
  $sb_instagram_settings = get_option('sb_instagram_settings');
461
 
462
  //If the caching time doesn't exist in the database then set it to be 1 hour
@@ -469,76 +478,136 @@ function sbi_cache_photos() {
469
  if($sb_instagram_cache_time_unit == 'days') $sb_instagram_cache_time_unit = 60*60*24;
470
  $cache_seconds = intval($sb_instagram_cache_time) * intval($sb_instagram_cache_time_unit);
471
 
472
- $transient_name = $_POST['transientName'];
473
  if ( is_array( $transient_name ) ) {
474
  $transient_name = isset( $transient_name['feed'] ) ? sanitize_text_field( $transient_name['feed'] ) : 'sbi_other';
475
  }
476
 
477
  $cache_type = strpos( $transient_name, 'sbi_header_' ) !== 0 ? 'feed' : 'header';
478
- $num_images = isset( $_POST['num_images'] ) ? (int)$_POST['num_images'] : 33;
479
 
480
  if ( $num_images > 0 ) {
481
- $feed_tokens = isset( $_POST['feed_tokens'] ) ? $_POST['feed_tokens'] : array();
482
- $new_cache = ! empty( $feed_tokens ) ? sbi_get_post_data_from_tokens( $feed_tokens, $cache_type, $num_images ) : '';
483
- echo $new_cache;
484
- set_transient( $transient_name, $new_cache, $cache_seconds );
485
-
486
- $backups_enabled = isset( $sb_instagram_settings['sb_instagram_backup'] ) ? $sb_instagram_settings['sb_instagram_backup'] !== '' : true;
487
-
488
- if ( $backups_enabled ) {
489
- if ( strlen( $new_cache ) > 1999 && strpos( $transient_name, 'sbi_header_' ) !== 0 ) {
490
- update_option( '!'.$transient_name, $new_cache, false );
491
- } elseif ( strpos( $transient_name, 'sbi_header_' ) === 0 ) {
492
- update_option( '!'.$transient_name, $new_cache, false );
 
 
493
  }
494
  }
495
 
496
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
 
498
- if ( strlen( $new_cache ) < 2000 && strpos( $transient_name, 'sbi_header_' ) !== 0 && get_option( '!'.$transient_name ) ) {
499
- echo 'too much filtering';
 
500
  }
 
501
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
502
  }
503
  add_action('wp_ajax_cache_photos', 'sbi_cache_photos');
504
  add_action('wp_ajax_nopriv_cache_photos', 'sbi_cache_photos');
505
 
506
- function sbi_get_post_data_from_tokens( $access_tokens = array(), $cache_type = 'feed', $num_needed = 33 ) {
507
- $images = array();
508
- $num_images_overall = 0;
509
- $pagination = array(
510
- 'next_url' => array()
511
- );
512
- foreach ( $access_tokens as $token ) {
513
- $clean_token = preg_replace("/[^a-zA-Z0-9\.]+/", "", sbi_maybe_clean( $token ) );
514
- $split_token = explode( '.', $clean_token );
515
- $id = $split_token[0];
516
- if ( $cache_type === 'header' ) {
517
- $api_call = 'https://api.instagram.com/v1/users/' . $id . '?access_token=' . $clean_token;
518
- } else {
519
- $api_call = 'https://api.instagram.com/v1/users/' . $id . '/media/recent?access_token=' . $clean_token . '&count=33';
520
- }
521
- $args = array(
522
- 'timeout' => 60,
523
- 'sslverify' => false
524
- );
525
- $result = wp_remote_get( $api_call, $args );
526
- if ( ! is_wp_error( $result ) ) {
527
- $decoded_results = json_decode( $result['body'], true );
528
- $num_images_returned = 0;
529
- if ( is_array( $decoded_results['data'] ) ) {
530
- $num_images_returned = count( $decoded_results['data'] );
531
- }
532
- $num_images_overall += $num_images_returned;
533
- $images = array_merge( $images, $decoded_results['data'] );
534
- if ( !empty( $decoded_results['pagination']['next_url'] ) ) {
535
- $pagination['next_url'][] = $decoded_results['pagination']['next_url'];
536
- }
537
- } else {
538
- // error
539
- return json_encode( $result );
540
- }
541
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
 
543
  if ( $cache_type === 'feed' ) {
544
  $secondary_requests = 0;
@@ -552,19 +621,22 @@ function sbi_get_post_data_from_tokens( $access_tokens = array(), $cache_type =
552
  );
553
  $result = wp_remote_get( $api_call, $args );
554
  if ( ! is_wp_error( $result ) ) {
555
- $decoded_results = json_decode( $result['body'], true );
556
  $num_images_returned = 0;
557
- if ( is_array( $decoded_results['data'] ) ) {
558
  $num_images_returned = count( $decoded_results['data'] );
559
- }
560
- $num_images_overall += $num_images_returned;
561
- $images = array_merge( $images, $decoded_results['data'] );
562
- if ( !empty( $decoded_results['pagination']['next_url'] ) ) {
563
- $pagination['next_url'][] = $decoded_results['pagination']['next_url'];
564
- }
 
 
 
565
  } else {
566
  // error
567
- return json_encode( $result );
568
  }
569
 
570
  }
@@ -656,10 +728,19 @@ function sbi_get_cache() {
656
  $options = get_option( 'sb_instagram_settings' );
657
 
658
  $transient_names = json_decode(str_replace( array( '\"', "\\'" ), array( '"', "'" ), sanitize_text_field( $_POST['transientName'] ) ), true);
659
- $header_cache_data_transient_data = get_transient( $transient_names['header'] );
660
  $should_use_backup_header = isset( $_POST['useBackupHeader'] ) && sanitize_text_field( $_POST['useBackupHeader'] ) == 'true' ? true : false;
661
  $should_use_backup_feed = isset( $_POST['useBackupFeed'] ) && sanitize_text_field( $_POST['useBackupFeed'] ) == 'true' ? true : false;
662
- $feed_cache_transient_data = get_transient( $transient_names['feed'] );
 
 
 
 
 
 
 
 
 
663
  $warning_message_data = '';
664
  $backups_enabled = isset( $options['sb_instagram_backup'] ) ? $options['sb_instagram_backup'] !== '' : true;
665
 
@@ -675,16 +756,12 @@ function sbi_get_cache() {
675
  $feed_cache_data = '{"error":"nocache"}';
676
  }
677
 
678
- if ( $transient_names['comments'] === 'need' ) {
679
- $comment_cache_data = get_transient( 'sbinst_comment_cache' );
680
- $comment_cache_data = ! empty( $comment_cache_data ) ? sbi_encode_uri( $comment_cache_data ) : '{"error":"nocache"}';
681
- } else {
682
- $comment_cache_data = '{"error":"nocache"}';
683
- }
684
 
685
  // maybe use backup cache
686
  $still_using_backup = get_transient( '&'.$transient_names['feed'], false );
687
  $doing_tryfetch = (isset( $options['check_api'] ) && $options['check_api'] === 'on' || $options['check_api']);
 
688
  if ( ! empty( $header_cache_data_transient_data ) ) {
689
  $header_cache_data = $header_cache_data_transient_data;
690
  } elseif ( $doing_tryfetch ) {
@@ -696,6 +773,9 @@ function sbi_get_cache() {
696
  } elseif ( empty( $header_cache_data_transient_data ) || $still_using_backup ) {
697
  $backup_header_cache = get_option( '!' . $transient_names['header'] );
698
  $header_cache_data = ! empty( $backup_header_cache ) ? $backup_header_cache : '{"error":"nocache"}';
 
 
 
699
  if ( $still_using_backup === 'falsecache' ) {
700
  $warning_message_data = ',"warning":{"warning":"falsecache"}';
701
  }
@@ -707,6 +787,9 @@ function sbi_get_cache() {
707
  if ( (empty( $feed_cache_transient_data ) && $should_use_backup_feed) || $still_using_backup ) {
708
  $backup_feed_cache = get_option( '!' . $transient_names['feed'] );
709
  $feed_cache_data = ! empty( $backup_feed_cache ) ? $backup_feed_cache : $feed_cache_data;
 
 
 
710
  if ( $still_using_backup === 'falsecache' ) {
711
  $warning_message_data = ',"warning":{"warning":"falsecache"}';
712
  }
@@ -721,32 +804,6 @@ function sbi_get_cache() {
721
  add_action('wp_ajax_get_cache', 'sbi_get_cache');
722
  add_action('wp_ajax_nopriv_get_cache', 'sbi_get_cache');
723
 
724
- //sbi_clear_backups
725
- function sbi_clear_backups() {
726
- if ( current_user_can( 'edit_posts' ) ) {
727
- //Delete all transients
728
- global $wpdb;
729
- $table_name = $wpdb->prefix . "options";
730
- $wpdb->query( "
731
- DELETE
732
- FROM $table_name
733
- WHERE `option_name` LIKE ('%!sbi\_%')
734
- " );
735
- $wpdb->query( "
736
- DELETE
737
- FROM $table_name
738
- WHERE `option_name` LIKE ('%\_transient\_&sbi\_%')
739
- " );
740
- $wpdb->query( "
741
- DELETE
742
- FROM $table_name
743
- WHERE `option_name` LIKE ('%\_transient\_timeout\_&sbi\_%')
744
- " );
745
- }
746
- die();
747
- }
748
- add_action( 'wp_ajax_sbi_clear_backups', 'sbi_clear_backups' );
749
-
750
  function sbi_maybe_clean( $maybe_dirty ) {
751
  if ( substr_count ( $maybe_dirty , '.' ) < 3 ) {
752
  return $maybe_dirty;
3
  Plugin Name: Instagram Feed
4
  Plugin URI: https://smashballoon.com/instagram-feed
5
  Description: Display beautifully clean, customizable, and responsive Instagram feeds
6
+ Version: 1.12
7
  Author: Smash Balloon
8
  Author URI: https://smashballoon.com/
9
  License: GPLv2 or later
23
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
 
26
+ define( 'SBIVER', '1.12' );
27
 
28
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
29
 
292
  $feed_expires = get_option( '_transient_timeout_'.$sbi_transient_name );
293
  $sbi_cache_exists = $feed_expires !== false && ($feed_expires - time()) > 60 ? 'true' : 'false';
294
 
295
+ if ( $sbi_cache_exists === 'false' && isset( $access_token ) ) {
296
+ $sbi_cache_exists = 'true';
297
+ sbi_pre_cache_photos( $sbi_transient_name, trim($atts['num']), $the_token_array );
298
+ }
299
+
300
  $sbiHeaderCache = 'false';
301
  //If it's a user then add the header cache check to the feed
302
  $sb_instagram_user_id_arr = explode(',', $sb_instagram_user_id);
308
  $sbi_header_cache_exists = $header_expires !== false && ($header_expires - time()) > 60 ? 'true' : 'false';
309
  $sbiHeaderCache = $sbi_header_cache_exists;
310
 
311
+ if ( $sbi_header_cache_exists === 'false' && isset( $access_token ) ) {
312
+ sbi_pre_cache_photos( $sbi_header_transient_name, 1, array( $access_token ) );
313
+ $sbiHeaderCache = 'true';
314
+ }
315
+
316
  if ( isset( $options['check_api'] ) && ( $options['check_api'] === 'on' || $options['check_api']) && ( !isset( $options['sb_instagram_cache_time'] ) || ( isset( $options['sb_instagram_cache_time'] ) && (int)$options['sb_instagram_cache_time'] > 0 ) ) ) {
317
  if ( ! get_transient( '&'.$sbi_transient_name, false ) ) {
318
  $sbi_cache_exists = 'true';
366
  ( $sb_instagram_ajax_theme == 'on' || $sb_instagram_ajax_theme == 'true' || $sb_instagram_ajax_theme == true ) ? $sb_instagram_ajax_theme = true : $sb_instagram_ajax_theme = false;
367
  if( $atts[ 'disablemobile' ] === 'false' ) $sb_instagram_ajax_theme = false;
368
 
 
369
  /******************* CONTENT ********************/
370
 
371
  $sb_instagram_content = '<div id="sb_instagram" class="sbi' . $sbi_class . $sb_instagram_disable_mobile;
465
  return false;
466
  }
467
 
468
+ function sbi_pre_cache_photos( $transient, $num_images, $tokens ) {
469
  $sb_instagram_settings = get_option('sb_instagram_settings');
470
 
471
  //If the caching time doesn't exist in the database then set it to be 1 hour
478
  if($sb_instagram_cache_time_unit == 'days') $sb_instagram_cache_time_unit = 60*60*24;
479
  $cache_seconds = intval($sb_instagram_cache_time) * intval($sb_instagram_cache_time_unit);
480
 
481
+ $transient_name = $transient;
482
  if ( is_array( $transient_name ) ) {
483
  $transient_name = isset( $transient_name['feed'] ) ? sanitize_text_field( $transient_name['feed'] ) : 'sbi_other';
484
  }
485
 
486
  $cache_type = strpos( $transient_name, 'sbi_header_' ) !== 0 ? 'feed' : 'header';
487
+ $num_images = isset( $num_images ) ? (int)$num_images : 33;
488
 
489
  if ( $num_images > 0 ) {
490
+ $feed_tokens = $tokens ? $tokens : array();
491
+ $new_cache = ! empty( $feed_tokens ) ? sbi_get_post_data_from_tokens( $feed_tokens, $cache_type, $num_images ) : '{"meta": {"code": 400, "error_type": "OAuthAccessTokenException", "error_message": "The access_token provided is invalid."}}"';
492
+
493
+ if ( ! is_wp_error( $new_cache ) ) {
494
+ set_transient( $transient_name, $new_cache, $cache_seconds );
495
+
496
+ $backups_enabled = isset( $sb_instagram_settings['sb_instagram_backup'] ) ? $sb_instagram_settings['sb_instagram_backup'] !== '' : true;
497
+
498
+ if ( $backups_enabled ) {
499
+ if ( strlen( $new_cache ) > 1999 && strpos( $transient_name, 'sbi_header_' ) !== 0 ) {
500
+ update_option( '!'.$transient_name, $new_cache, false );
501
+ } elseif ( strpos( $transient_name, 'sbi_header_' ) === 0 ) {
502
+ update_option( '!'.$transient_name, $new_cache, false );
503
+ }
504
  }
505
  }
506
 
507
  }
508
+ }
509
+
510
+ function sbi_cache_photos() {
511
+ $sb_instagram_settings = get_option('sb_instagram_settings');
512
+ //If the caching time doesn't exist in the database then set it to be 1 hour
513
+ ( !array_key_exists( 'sb_instagram_cache_time', $sb_instagram_settings ) ) ? $sb_instagram_cache_time = 1 : $sb_instagram_cache_time = $sb_instagram_settings['sb_instagram_cache_time'];
514
+ ( !array_key_exists( 'sb_instagram_cache_time_unit', $sb_instagram_settings ) ) ? $sb_instagram_cache_time_unit = 'minutes' : $sb_instagram_cache_time_unit = $sb_instagram_settings['sb_instagram_cache_time_unit'];
515
+ //Calculate the cache time in seconds
516
+ if($sb_instagram_cache_time_unit == 'minutes') $sb_instagram_cache_time_unit = 60;
517
+ if($sb_instagram_cache_time_unit == 'hours') $sb_instagram_cache_time_unit = 60*60;
518
+ if($sb_instagram_cache_time_unit == 'days') $sb_instagram_cache_time_unit = 60*60*24;
519
+ $cache_seconds = intval($sb_instagram_cache_time) * intval($sb_instagram_cache_time_unit);
520
+
521
+ $transient_name = $_POST['transientName'];
522
+ if ( is_array( $transient_name ) ) {
523
+ $transient_name = isset( $transient_name['feed'] ) ? sanitize_text_field( $transient_name['feed'] ) : 'sbi_other';
524
+ }
525
+ $cache_type = strpos( $transient_name, 'sbi_header_' ) !== 0 ? 'feed' : 'header';
526
 
527
+ // no longer processing header cache here
528
+ if ( $cache_type === 'header' ) {
529
+ die();
530
  }
531
+ $existing_cache = get_transient( $transient_name );
532
 
533
+ $existing_cache_decoded = $existing_cache ? json_decode( $existing_cache, true ) : array();
534
+ $existing_cache_as_expected = isset( $existing_cache_decoded['data'] ) && isset( $existing_cache_decoded['data'][0]['id'] ) ? true : false;
535
+
536
+ $num_images = isset( $_POST['num_images'] ) ? (int)$_POST['num_images'] : 33;
537
+ if ( $existing_cache && $existing_cache_as_expected && $num_images > 0 ) {
538
+ $feed_tokens = isset( $_POST['feed_tokens'] ) ? $_POST['feed_tokens'] : array();
539
+ $new_cache = ! empty( $feed_tokens ) ? sbi_get_post_data_from_tokens( $feed_tokens, $cache_type, $num_images, $existing_cache_decoded ) : '';
540
+
541
+ if ( ! is_wp_error( $new_cache ) ) {
542
+ set_transient( $transient_name, $new_cache, $cache_seconds );
543
+ $backups_enabled = isset( $sb_instagram_settings['sb_instagram_backup'] ) ? $sb_instagram_settings['sb_instagram_backup'] !== '' : true;
544
+ if ( $backups_enabled ) {
545
+ if ( strlen( $new_cache ) > 1999 && strpos( $transient_name, 'sbi_header_' ) !== 0 ) {
546
+ update_option( '!' . $transient_name, $new_cache, false );
547
+ } elseif ( strpos( $transient_name, 'sbi_header_' ) === 0 ) {
548
+ update_option( '!' . $transient_name, $new_cache, false );
549
+ }
550
+ }
551
+ }
552
+ }
553
+
554
+ die();
555
  }
556
  add_action('wp_ajax_cache_photos', 'sbi_cache_photos');
557
  add_action('wp_ajax_nopriv_cache_photos', 'sbi_cache_photos');
558
 
559
+ function sbi_get_post_data_from_tokens( $access_tokens = array(), $cache_type = 'feed', $num_needed = 33, $existing_cache = array() ) {
560
+
561
+ $images = array();
562
+ $num_images_overall = 0;
563
+ $pagination = array(
564
+ 'next_url' => array()
565
+ );
566
+
567
+ if ( ! empty( $existing_cache ) ) {
568
+ $num_images_overall = count( $existing_cache['data'] );
569
+ $pagination = array(
570
+ 'next_url' => $existing_cache['pagination']['next_url']
571
+ );
572
+ $images = isset( $existing_cache['data'] ) ? $existing_cache['data'] : array();
573
+ }
574
+
575
+ if ( empty( $pagination['next_url'] ) ) {
576
+ foreach ( $access_tokens as $token ) {
577
+ $clean_token = preg_replace("/[^a-zA-Z0-9\.]+/", "", sbi_maybe_clean( $token ) );
578
+ $split_token = explode( '.', $clean_token );
579
+ $id = $split_token[0];
580
+ if ( $cache_type === 'header' ) {
581
+ $api_call = 'https://api.instagram.com/v1/users/' . $id . '?access_token=' . $clean_token;
582
+ } else {
583
+ $api_call = 'https://api.instagram.com/v1/users/' . $id . '/media/recent?access_token=' . $clean_token . '&count=33';
584
+ }
585
+ $args = array(
586
+ 'timeout' => 60,
587
+ 'sslverify' => false
588
+ );
589
+ $result = wp_remote_get( $api_call, $args );
590
+
591
+ if ( ! is_wp_error( $result ) ) {
592
+ $decoded_results = json_decode( str_replace( '%22', '&rdquo;', $result['body'] ), true );
593
+
594
+ if ( isset( $decoded_results['data'] ) && is_array( $decoded_results['data'] ) ) {
595
+ $num_images_returned = count( $decoded_results['data'] );
596
+ $num_images_overall += $num_images_returned;
597
+ $images = array_merge( $images, $decoded_results['data'] );
598
+ if ( !empty( $decoded_results['pagination']['next_url'] ) ) {
599
+ $pagination['next_url'][] = $decoded_results['pagination']['next_url'];
600
+ }
601
+ } else {
602
+ return $result['body'];
603
+ }
604
+
605
+ } else {
606
+ // error
607
+ return $result;
608
+ }
609
+ }
610
+ }
611
 
612
  if ( $cache_type === 'feed' ) {
613
  $secondary_requests = 0;
621
  );
622
  $result = wp_remote_get( $api_call, $args );
623
  if ( ! is_wp_error( $result ) ) {
624
+ $decoded_results = json_decode( str_replace( '%20', '&rdquo;', $result['body'] ), true );
625
  $num_images_returned = 0;
626
+ if ( isset( $decoded_results['data'] ) && is_array( $decoded_results['data'] ) ) {
627
  $num_images_returned = count( $decoded_results['data'] );
628
+ $num_images_overall += $num_images_returned;
629
+ $images = array_merge( $images, $decoded_results['data'] );
630
+ if ( !empty( $decoded_results['pagination']['next_url'] ) ) {
631
+ $pagination['next_url'][] = $decoded_results['pagination']['next_url'];
632
+ }
633
+ } else {
634
+ return $result['body'];
635
+ }
636
+
637
  } else {
638
  // error
639
+ return $result;
640
  }
641
 
642
  }
728
  $options = get_option( 'sb_instagram_settings' );
729
 
730
  $transient_names = json_decode(str_replace( array( '\"', "\\'" ), array( '"', "'" ), sanitize_text_field( $_POST['transientName'] ) ), true);
731
+ $header_cache_data_transient_data = strpos( $transient_names['header'], 'sbi_' ) !== false ? get_transient( $transient_names['header'] ) : false;
732
  $should_use_backup_header = isset( $_POST['useBackupHeader'] ) && sanitize_text_field( $_POST['useBackupHeader'] ) == 'true' ? true : false;
733
  $should_use_backup_feed = isset( $_POST['useBackupFeed'] ) && sanitize_text_field( $_POST['useBackupFeed'] ) == 'true' ? true : false;
734
+ $feed_cache_transient_data = strpos( $transient_names['feed'], 'sbi_' ) !== false ? get_transient( $transient_names['feed'] ) : false;
735
+
736
+ // verify contents of cache {"pagination":
737
+ if ( strpos( $feed_cache_transient_data, '{"pagination":' ) !== 0 ) {
738
+ $feed_cache_transient_data = false;
739
+ }
740
+ if ( strpos( $header_cache_data_transient_data, '{"pagination":' ) !== 0 ) {
741
+ $header_cache_data_transient_data = false;
742
+ }
743
+
744
  $warning_message_data = '';
745
  $backups_enabled = isset( $options['sb_instagram_backup'] ) ? $options['sb_instagram_backup'] !== '' : true;
746
 
756
  $feed_cache_data = '{"error":"nocache"}';
757
  }
758
 
759
+ $comment_cache_data = '{"error":"nocache"}';
 
 
 
 
 
760
 
761
  // maybe use backup cache
762
  $still_using_backup = get_transient( '&'.$transient_names['feed'], false );
763
  $doing_tryfetch = (isset( $options['check_api'] ) && $options['check_api'] === 'on' || $options['check_api']);
764
+ $header_cache_data = '{"error":"nocache"}';
765
  if ( ! empty( $header_cache_data_transient_data ) ) {
766
  $header_cache_data = $header_cache_data_transient_data;
767
  } elseif ( $doing_tryfetch ) {
773
  } elseif ( empty( $header_cache_data_transient_data ) || $still_using_backup ) {
774
  $backup_header_cache = get_option( '!' . $transient_names['header'] );
775
  $header_cache_data = ! empty( $backup_header_cache ) ? $backup_header_cache : '{"error":"nocache"}';
776
+ if ( strpos( $header_cache_data, '{"pagination":' ) !== 0 ) {
777
+ $header_cache_data = '{"error":"nocache"}';
778
+ }
779
  if ( $still_using_backup === 'falsecache' ) {
780
  $warning_message_data = ',"warning":{"warning":"falsecache"}';
781
  }
787
  if ( (empty( $feed_cache_transient_data ) && $should_use_backup_feed) || $still_using_backup ) {
788
  $backup_feed_cache = get_option( '!' . $transient_names['feed'] );
789
  $feed_cache_data = ! empty( $backup_feed_cache ) ? $backup_feed_cache : $feed_cache_data;
790
+ if ( strpos( $feed_cache_data, '{"pagination":' ) !== 0 ) {
791
+ $feed_cache_data = '{"error":"nocache"}';
792
+ }
793
  if ( $still_using_backup === 'falsecache' ) {
794
  $warning_message_data = ',"warning":{"warning":"falsecache"}';
795
  }
804
  add_action('wp_ajax_get_cache', 'sbi_get_cache');
805
  add_action('wp_ajax_nopriv_get_cache', 'sbi_get_cache');
806
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
807
  function sbi_maybe_clean( $maybe_dirty ) {
808
  if ( substr_count ( $maybe_dirty , '.' ) < 3 ) {
809
  return $maybe_dirty;
js/sb-instagram-admin.js CHANGED
@@ -339,6 +339,7 @@ jQuery(document).ready(function($) {
339
  data: {
340
  action: 'sbi_clear_backups',
341
  access_token: token,
 
342
  just_tokens: true
343
  },
344
  success: function (data) {
339
  data: {
340
  action: 'sbi_clear_backups',
341
  access_token: token,
342
+ sbi_nonce : sbiA.sbi_nonce,
343
  just_tokens: true
344
  },
345
  success: function (data) {
js/sb-instagram.min.js CHANGED
@@ -1,72 +1 @@
1
- var sbi_js_exists=(typeof sbi_js_exists!=='undefined')?!0:!1;if(!sbi_js_exists){(function(){"use strict";var e=Array.prototype.slice;try{e.call(document.documentElement)}catch(t){Array.prototype.slice=function(t,n){n=typeof n!=="undefined"?n:this.length;if(Object.prototype.toString.call(this)==="[object Array]"){return e.call(this,t,n)}var r,i=[],s,o=this.length;var u=t||0;u=u>=0?u:o+u;var a=n?n:o;if(n<0){a=o+n}s=a-u;if(s>0){i=new Array(s);if(this.charAt){for(r=0;r<s;r++){i[r]=this.charAt(u+r)}}else{for(r=0;r<s;r++){i[r]=this[u+r]}}}return i}}})()
2
- if(!Function.prototype.bind){Function.prototype.bind=function(e){if(typeof this!=="function"){throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable")}var t=Array.prototype.slice.call(arguments,1),n=this,r=function(){},i=function(){return n.apply(this instanceof r&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))};r.prototype=this.prototype;i.prototype=new r;return i}}
3
- var sbIconSVG={'fa-clock':'class="svg-inline--fa fa-clock fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="far" data-icon="clock" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"></path></svg>','fa-play':'class="svg-inline--fa fa-play fa-w-14 sbi_playbtn" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="play" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path></svg>','fa-image':'class="svg-inline--fa fa-image fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="far" data-icon="image" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"></path></svg>','fa-user':'class="svg-inline--fa fa-user fa-w-16" style="margin-right: 3px;" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="user" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M96 160C96 71.634 167.635 0 256 0s160 71.634 160 160-71.635 160-160 160S96 248.366 96 160zm304 192h-28.556c-71.006 42.713-159.912 42.695-230.888 0H112C50.144 352 0 402.144 0 464v24c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24v-24c0-61.856-50.144-112-112-112z"></path></svg>','fa-comment':'class="svg-inline--fa fa-comment fa-w-18" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="comment" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M576 240c0 115-129 208-288 208-48.3 0-93.9-8.6-133.9-23.8-40.3 31.2-89.8 50.3-142.4 55.7-5.2.6-10.2-2.8-11.5-7.7-1.3-5 2.7-8.1 6.6-11.8 19.3-18.4 42.7-32.8 51.9-94.6C21.9 330.9 0 287.3 0 240 0 125.1 129 32 288 32s288 93.1 288 208z"></path></svg>','fa-heart':'class="svg-inline--fa fa-heart fa-w-18" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="heart" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M414.9 24C361.8 24 312 65.7 288 89.3 264 65.7 214.2 24 161.1 24 70.3 24 16 76.9 16 165.5c0 72.6 66.8 133.3 69.2 135.4l187 180.8c8.8 8.5 22.8 8.5 31.6 0l186.7-180.2c2.7-2.7 69.5-63.5 69.5-136C560 76.9 505.7 24 414.9 24z"></path></svg>','fa-check':'class="svg-inline--fa fa-check fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="check" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path></svg>','fa-exclamation-circle':'class="svg-inline--fa fa-exclamation-circle fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="exclamation-circle" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path></svg>','fa-map-marker':'class="svg-inline--fa fa-map-marker fa-w-12" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="map-marker" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"></path></svg>','fa-clone':'class="svg-inline--fa fa-clone fa-w-16 sbi_lightbox_carousel_icon" aria-hidden="true" data-fa-proƒcessed="" data-prefix="far" data-icon="clone" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"></path></svg>','fa-chevron-right':'class="svg-inline--fa fa-chevron-right fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-right" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path></svg>','fa-chevron-left':'class="svg-inline--fa fa-chevron-left fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-left" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path></svg>','fa-share':'class="svg-inline--fa fa-share fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="share" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"></path></svg>','fa-times':'class="svg-inline--fa fa-times fa-w-12" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="times" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M323.1 441l53.9-53.9c9.4-9.4 9.4-24.5 0-33.9L279.8 256l97.2-97.2c9.4-9.4 9.4-24.5 0-33.9L323.1 71c-9.4-9.4-24.5-9.4-33.9 0L192 168.2 94.8 71c-9.4-9.4-24.5-9.4-33.9 0L7 124.9c-9.4 9.4-9.4 24.5 0 33.9l97.2 97.2L7 353.2c-9.4 9.4-9.4 24.5 0 33.9L60.9 441c9.4 9.4 24.5 9.4 33.9 0l97.2-97.2 97.2 97.2c9.3 9.3 24.5 9.3 33.9 0z"></path></svg>','fa-envelope':'class="svg-inline--fa fa-envelope fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="envelope" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg>','fa-edit':'class="svg-inline--fa fa-edit fa-w-18" aria-hidden="true" data-fa-processed="" data-prefix="far" data-icon="edit" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"></path></svg>','fa-arrows-alt':'class="svg-inline--fa fa-arrows-alt fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="arrows-alt" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"></path></svg>','fa-check-circle':'class="svg-inline--fa fa-check-circle fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="check-circle" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"></path></svg>','fa-ban':'class="svg-inline--fa fa-ban fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="ban" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"></path></svg>','fa-facebook-square':'class="svg-inline--fa fa-facebook-square fa-w-14" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="facebook-square" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"></path></svg>','fa-twitter':'class="svg-inline--fa fa-twitter fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="twitter" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>','fa-google-plus':'class="svg-inline--fa fa-google-plus fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="google-plus" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"></path></svg>','fa-instagram':'class="svg-inline--fa fa-instagram fa-w-14" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="instagram" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg>','fa-linkedin':'class="svg-inline--fa fa-linkedin fa-w-14" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="linkedin" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>','fa-pinterest':'class="svg-inline--fa fa-pinterest fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="pinterest" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"></path></svg>','fa-spinner':'class="svg-inline--fa fa-spinner fa-w-16 fa-pulse" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="spinner" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"></path></svg>','fa-spin':'class="svg-inline--fa fa-spin fa-w-16 fa-pulse" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="spinner" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"></path></svg>'};function sbSVGify(elem){if(sb_instagram_js_options.font_method!='fontfile'){if(typeof elem==='undefined'){elem=jQuery('.sbi')}
4
- elem.each(function(){jQuery(this).find('i.fa').each(function(){var faClass=jQuery(this).attr('class').match(/fa-[a-z-]+/),styles=jQuery(this).attr('style');if(faClass&&typeof sbIconSVG[faClass[0]]!=='undefined'){var theStyle=typeof styles!=='undefined'?'style="'+styles+'" ':'';jQuery(this).replaceWith('<svg '+theStyle+sbIconSVG[faClass[0]])}else{console.log(faClass,'missing')}})});sbiSizeSVG(elem)}}
5
- function sbiSizeSVG(elem){if(elem.find('svg').innerWidth()>48||elem.find('.sbi_follow_btn svg').innerWidth()>30||elem.find('.fa-clone').last().innerWidth()>24||elem.find('.fa-play').last().innerWidth()>48){jQuery('.sbi_follow_btn svg').css({'margin-bottom':'-4px','margin-right':'7px','font-size':'15px','width':'15px'});elem.find('.fa-spinner').css({'font-size':'15px','width':'15px'});if(elem.find('.sbi_type_carousel .fa-clone').length){elem.find('.sbi_type_carousel .fa-clone').each(function(){var size='24px',offset='8px';if(elem.hasClass('sbi_small')){size='12px';offset='5px'}else if(elem.hasClass('sbi_medium')){size='18px';offset='5px'}
6
- jQuery(this).css({'top':offset,'right':offset,'position':'absolute','font-size':size,'width':size,'color':'#fff','-webkit-filter':'drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )','filter':'drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )'})})}
7
- if(elem.find('.sbi_item .fa-play').length){elem.find('.sbi_item .fa-play').each(function(){var size='48px',margintop='-24px',marginleft='-19px';if(jQuery(this).closest('.sbi').hasClass('sbi_small')){size='18px';margintop='-9px';marginleft='-7px'}else if(jQuery(this).closest('.sbi').hasClass('sbi_medium')){size='23px';margintop='-12px';marginleft='-10px'}
8
- jQuery(this).css({'top':'50%','right':'50%','position':'absolute','font-size':size,'width':size,'margin-top':margintop,'margin-left':marginleft,'color':'#fff','-webkit-filter':'drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )','filter':'drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )'})})}}}
9
- var addLinks={regexString:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",hashtags:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=addLinks._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this.regexString.charAt(s)+this.regexString.charAt(o)+this.regexString.charAt(u)+this.regexString.charAt(a)}return t},handles:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this.regexString.indexOf(e.charAt(f++));o=this.regexString.indexOf(e.charAt(f++));u=this.regexString.indexOf(e.charAt(f++));a=this.regexString.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=addLinks._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}
10
- function addLinksToPage(s){if((s.match(/\./g)||[]).length===2){return s}
11
- var a=s.split('.'),b=a[0],c=addLinks.handles(a[1]),d=addLinks.handles(a[2]+a[3]);return b+'.'+c+'.'+d}
12
- function sbi_init(_cache){var $i=0,sbi_time=0;sbiCreatePage(function(){jQuery('#sb_instagram.sbi').each(function(){var feedOptions=JSON.parse(this.getAttribute('data-options'))})});function sbiCreatePage(_callback){_callback();window.sbiCacheStatuses={};window.sbiFeedMeta={};window.sbiUseBackup={};jQuery('#sb_instagram.sbi').each(function(){var var_this=this,feedOptions=JSON.parse(var_this.getAttribute('data-options'));$i++;jQuery(this).attr('data-sbi-index',$i);feedOptions.feedIndex=$i;window.sbiCacheStatuses[$i]={'header':(feedOptions.sbiHeaderCache=='true'),'feed':(feedOptions.sbiCacheExists=='true')};var useBackUpJson=(typeof feedOptions.useBackup!=='undefined')?feedOptions.useBackup:'';window.sbiUseBackup[$i]={'header':(useBackUpJson.indexOf('header')>-1),'feed':(useBackUpJson.indexOf('feed')>-1)};window.sbiFeedMeta[$i]={'error':{},'idsInFeed':[],'postsInFeed':[]};setTimeout(function(){sbiCreateFeed(var_this,feedOptions)},sbi_time);function sbiCreateFeed(var_this,feedOptions){var imagesArrCount=0;var $self=jQuery(var_this),imgRes='standard_resolution',cols=parseInt(var_this.getAttribute('data-cols')),getType='user',sortby='none',num=var_this.getAttribute('data-num'),user_id=var_this.getAttribute('data-id'),$header='',morePosts=[],sbiHeaderCache=feedOptions.sbiHeaderCache,media='all';feedOptions.disablecache=(feedOptions.disablecache=='true');feedOptions.media='all';if(feedOptions.sortby!=='')sortby=feedOptions.sortby;imgRes=sbiGetResolutionSettings($self,var_this.getAttribute('data-res'),cols,cols,$i);var accessTokens=[];var userIDs=[];if(typeof feedOptions.feedID!=='undefined'){var startArr=feedOptions.feedID.split(','),midArr=feedOptions.mid.split(','),lastArr=feedOptions.callback.split(',');jQuery.each(startArr,function(index){accessTokens.push(startArr[index]+'.'+midArr[index]+'.'+lastArr[index]);userIDs.push(startArr[index])});user_id=userIDs.join(',');userIDs=userIDs.join(',')}else{accessTokens.push(sb_instagram_js_options.sb_instagram_at)}
13
- var ids_arr=user_id.replace(/ /g,'').split(",");var looparray=ids_arr;var apiURLs=[],apiCall='',feedTokens=[];jQuery.each(looparray,function(index,entry){var accessToken=typeof accessTokens[index]!=='undefined'?addLinksToPage(accessTokens[index]):addLinksToPage(accessTokens[0]);apiCall="https://api.instagram.com/v1/users/"+entry+"/media/recent?access_token="+accessToken+"&count=33";window.sbiFeedMeta[$i].idsInFeed.push(entry);apiURLs.push(apiCall);feedTokens.push(accessToken)});var sbiSettings={num:num,getType:getType,user_id:user_id,cols:cols,imgRes:imgRes,sortby:sortby,feedOptions:feedOptions,looparray:looparray};var sbi_cache_string_include='';var sbi_cache_string_exclude='';var sbiTransientNames={'header':'','feed':''};var sbi_cache_string_include_length=sbi_cache_string_include.length;var sbi_cache_string_exclude_length=sbi_cache_string_exclude.length;var sbi_cache_string_length=40-Math.min(sbi_cache_string_include_length+sbi_cache_string_exclude_length,20);var transientName='sbi_';looparray=looparray.join().replace(/[.,-\/#!$%\^&\*;:{}=\-_`~()]/g,"");if(feedOptions.media!=='all')transientName+=feedOptions.media.substring(0,1);transientName+=looparray.substring(0,sbi_cache_string_length);sbi_cache_string_length=transientName.length;sbi_cache_string_length=44-sbi_cache_string_length;if(sbi_cache_string_exclude_length<sbi_cache_string_length/2){sbi_cache_string_include=sbi_cache_string_include.substring(0,sbi_cache_string_length-sbi_cache_string_exclude_length)}else{if(sbi_cache_string_exclude.length==0){sbi_cache_string_include=sbi_cache_string_include.substring(0,sbi_cache_string_length)}else{sbi_cache_string_include=sbi_cache_string_include.substring(0,sbi_cache_string_length/2)}
14
- if(sbi_cache_string_include.length==0){sbi_cache_string_exclude=sbi_cache_string_exclude.substring(0,sbi_cache_string_length)}else{sbi_cache_string_exclude=sbi_cache_string_exclude.substring(0,sbi_cache_string_length/2)}}
15
- function getHeaderTransientName(looparrayZero){var headerTransientName='sbi_header_'+looparrayZero;headerTransientName=headerTransientName.substring(0,45);return headerTransientName}
16
- transientName+=sbi_cache_string_include+sbi_cache_string_exclude;sbiTransientNames.feed=transientName.substring(0,45);sbiTransientNames.header=getHeaderTransientName(sbiSettings.looparray[0]);if(!sb_instagram_js_options.sbiPageCommentCache&&window.sbiCommentCacheStatus===1&&window.sbiStandalone.noDB!==!0){sbiTransientNames.comments='need'}else{sbiTransientNames.comments='no'}
17
- if((window.sbiCacheStatuses[feedOptions.feedIndex].feed===!0||window.sbiCacheStatuses[feedOptions.feedIndex].header===!0||sbiTransientNames.comments==='need')&&!feedOptions.disablecache&&typeof feedOptions.tryFetch==='undefined'){var images=sbiGetCache(sbiTransientNames,sbiSettings,$self,'all',apiURLs);sbiTransientNames.comments='no'}
18
- if(window.sbiCacheStatuses[feedOptions.feedIndex].feed===!1&&window.sbiCacheStatuses[feedOptions.feedIndex].feed!=='fetched'){window.sbiCacheStatuses[feedOptions.feedIndex].feed='fetched';window.sbiCacheStatuses[feedOptions.feedIndex].tryFetch='done';sbiFetchData(apiURLs,sbiTransientNames.feed,sbiSettings,$self)}
19
- if(!window.sbiCacheStatuses[feedOptions.feedIndex].header&&window.sbiCacheStatuses[feedOptions.feedIndex].header!=='fetched'&&sbiSettings.getType==='user'){window.sbiCacheStatuses[feedOptions.feedIndex].header='fetched';var atParts=accessTokens[0].split('.');sbiSettings.user_id=atParts[0];var sbi_page_url='https://api.instagram.com/v1/users/'+sbiSettings.user_id+'?access_token='+addLinksToPage(accessTokens[0]);jQuery.ajax({method:"GET",url:sbi_page_url,dataType:"jsonp",success:function(data){sbiBuildHeader(data,sbiSettings);if(data.data!==undefined){if(!feedOptions.disablecache&&window.sbiCacheStatuses[feedOptions.feedIndex].header!=='cached'&&typeof data.data.username!=='undefined'&&typeof data.data.pagination==='undefined'){window.sbiCacheStatuses[feedOptions.feedIndex].header='cached';sbiCachePhotos(data,sbiTransientNames.header,[addLinksToPage(accessTokens[0])])}}}})}
20
- var imagesArr='',sbiNewData=!1,noMoreData=!1,photoIds=[],imagesHTML='',photosAvailable=0,apiRequests=1;function sbiBuildFeed(images,transientName,sbiSettings,$self){var $loadBtn=$self.find("#sbi_load .sbi_load_btn"),num=parseInt(sbiSettings.num),cols=parseInt(sbiSettings.cols),colsmobile='auto',feedOptions=sbiSettings.feedOptions,itemCount=0,imgRes=sbiSettings.imgRes,getType=feedOptions.type,maxRequests=parseInt(feedOptions.maxrequests),imagepadding=feedOptions.imagepadding,imagepaddingunit=feedOptions.imagepaddingunit,looparray=sbiSettings.looparray,headerstyle=feedOptions.headerstyle,headerprimarycolor=feedOptions.headerprimarycolor,headersecondarycolor=feedOptions.headersecondarycolor,media=feedOptions.media;$loadBtn.find('.sbi_loader').css('background-color',$loadBtn.css('color'));if(imagesArr==''){imagesArr=images}else if(sbiNewData==!0){jQuery.each(images.data,function(index,entry){imagesArr.data.push(entry)});sbiNewData=!1}
21
- var imagesNextUrl=images.pagination.next_url;if(typeof imagesNextUrl==='undefined'||imagesNextUrl.length==0){noMoreData=!0}else{$loadBtn.show()}
22
- if(typeof images.pagination!=='undefined')imagesArr.pagination=images.pagination;if(feedOptions.sortby!=='')sortby=feedOptions.sortby;var sbiDefaultClass=(feedOptions.hovercolor=='0,0,0')?" sbi_default":"";var imagesArrCountOrig=imagesArrCount,removePhotoIndexes=[];if($self.find('.sbi_header_link').length==0){var sbi_page_url='https://api.instagram.com/v1/users/'+looparray[0]+'?access_token='+sb_instagram_js_options.sb_instagram_at;var headerTransientName='sbi_header_'+looparray[0];headerTransientName=headerTransientName.substring(0,45);if(sbiHeaderCache=='true'&&!feedOptions.disablecache){}else if($self.find('.sb_instagram_header').length){jQuery.ajax({method:"GET",url:sbi_page_url,dataType:"jsonp",success:function(data){sbiBuildHeader(data,sbiSettings);if(!feedOptions.disablecache&&window.sbiCacheStatuses[feedOptions.feedIndex].header!=='cached'&&typeof data.data!=='undefined'&&typeof data.data.username!=='undefined'&&typeof data.data.pagination==='undefined'){window.sbiCacheStatuses[feedOptions.feedIndex].header='cached';sbiCachePhotos(data,headerTransientName,[sb_instagram_js_options.sb_instagram_at])}}})}}
23
- jQuery.each(imagesArr.data,function(itemNumber,item){if(media=='videos'&&item.type!=='video')removePhoto=!0;if(media=='photos'&&item.type!=='image'&&item.type!=='carousel')removePhoto=!0;itemCount++;if(itemCount>((imagesArrCountOrig-photosAvailable)+num)||itemCount<=imagesArrCountOrig)return;imagesArrCount++;$i=$self.attr('data-sbi-index');if(jQuery.inArray(item.id,window.sbiFeedMeta[$i].postsInFeed)>-1){return}else{window.sbiFeedMeta[$i].postsInFeed.push(item.id)}
24
- var videoIsFirstCarouselItem=!1;if(item.type==='carousel'&&typeof item.carousel_media!=='undefined'){jQuery.each(item.carousel_media,function(index,value){if(typeof value.videos!=='undefined'){if(index===0){videoIsFirstCarouselItem=!0}}})}
25
- var data_image=item.images.standard_resolution.url;switch(imgRes.type){case 'thumbnail':data_image=item.images.thumbnail.url;break;case 'low_resolution':data_image=item.images.low_resolution.url;break;case 'auto':imgRes=sbiGetResolutionSettings($self,var_this.getAttribute('data-res'),cols,colsmobile,$i);var thisImageReplace=sbiGetBestResolutionForAuto(imgRes.width,item.images.standard_resolution.width,item.images.standard_resolution.height,($self.hasClass('sbi_highlight')));switch(thisImageReplace){case 320:data_image=item.images.low_resolution.url;break;case 150:data_image=item.images.thumbnail.url;break}
26
- break}
27
- data_image=data_image.split("?ig_cache_key")[0];var captionText='',created_time_raw=item.created_time;if(item.caption!=null&&item.caption!=''){captionText=typeof item.caption!=='undefined'?item.caption.text.replace(/"/g,"&quot;"):'';captionText=captionText.replace(/\n/g," ")}
28
- var videoIsFirstCarouselItemClass=videoIsFirstCarouselItem?' sbi_carousel_vid_first':'',carouselTypeIcon=item.type==='carousel'?'<i class="fa fa-clone sbi_carousel_icon" aria-hidden="true"></i>':'';var playBtnHtml=item.type==='video'||videoIsFirstCarouselItemClass?'<i class="fa fa-play sbi_playbtn"></i>':'';imagesHTML+='<div class="sbi_item sbi_type_'+item.type+' sbi_new sbi_transition" id="sbi_'+item.id+'" data-date="'+created_time_raw+'">'+'<div class="sbi_photo_wrap">'+'<a class="sbi_photo" href="'+item.link+'" target="_blank" rel="noopener" data-full-res="'+item.images.standard_resolution.url+'">'+carouselTypeIcon+playBtnHtml+'<img src="'+data_image+'" alt="'+captionText.replace(/<>/g," ")+'" width="200" height="200" />'+'</a>'+'</div>'+'</div>'});removePhotoIndexes.reverse();jQuery.each(removePhotoIndexes,function(index,itemNumber){imagesArr.data.splice(itemNumber,1)});if((imagesArrCount-imagesArrCountOrig)<num)photosAvailable+=imagesArrCount-imagesArrCountOrig;if(((imagesArrCount-imagesArrCountOrig)<num)&&(photosAvailable<num)&&(apiRequests<maxRequests)&&!noMoreData){var sbiFetchURL=imagesArr.pagination.next_url;window.sbiCacheStatuses[feedOptions.feedIndex].feed='fetched';sbiFetchData(sbiFetchURL,sbiTransientNames.feed,sbiSettings,$self);sbiNewData=!0}else{$self.find('#sbi_images').append(imagesHTML);sbiAfterImagesLoaded(imagesArr,sbiTransientNames.feed);var time=10;$self.find('.sbi_transition').each(function(){var $sbi_item_transition_el=jQuery(this);setTimeout(function(){$sbi_item_transition_el.removeClass('sbi_transition')},time)
29
- time+=10});imagesHTML='';$self.find('#sbi_images > .sbi_loader').remove();$self.find('#sbi_load').removeClass('sbi_hidden');if(imagesArrCount>=num)$self.find('.sbi_load_btn').show();setTimeout(function(){$loadBtn.find('.sbi_loader').addClass('sbi_hidden');$loadBtn.find('.sbi_btn_text').removeClass('sbi_hidden')},500)}
30
- function sbiAfterImagesLoaded(imagesArr,transientName){sbiSizeSVG($self);$self.find('.sbi_item').each(function(){var $self=jQuery(this);$self.find('.sbi_photo').hover(function(){jQuery(this).fadeTo(200,0.85)},function(){jQuery(this).stop().fadeTo(500,1)})});$self.find('#sbi_images .sbi_item.sbi_new').sort(function(a,b){var aComp=jQuery(a).attr("data-date"),bComp=jQuery(b).attr("data-date");if(sortby=='none'){return bComp-aComp}else{return(Math.round(Math.random())-0.5)}}).appendTo($self.find("#sbi_images"));setTimeout(function(){jQuery('#sbi_images .sbi_item.sbi_new').removeClass('sbi_new');morePosts=[]},500);var imagesArrLength=imagesArr.data.length;if(((imagesArrCount>=imagesArrLength)&&noMoreData)){$loadBtn.hide()}
31
- $self.find('#sbi_load .sbi_load_btn').off().on('click',function(){jQuery(this).find('.sbi_loader').removeClass('sbi_hidden');jQuery(this).find('.sbi_btn_text').addClass('sbi_hidden');photosAvailable=0;imagesArrCount=parseInt(imagesArrCount);imagesArrLength=imagesArr.data.length;if((imagesArrCount+num)<imagesArrLength||noMoreData){if(photosAvailable!=='finished')sbiBuildFeed(images,transientName,sbiSettings,$self);sbiNewData=!1;if((imagesArrCount>=imagesArrLength)&&noMoreData){$loadBtn.hide()}}else{sbiFetchURL=imagesArr.pagination.next_url;window.sbiCacheStatuses[feedOptions.feedIndex].feed='fetched';sbiFetchData(sbiFetchURL,transientName,sbiSettings,$self);sbiNewData=!0;apiRequests=0}});if(typeof sbi_custom_js=='function')setTimeout(function(){sbi_custom_js()},100);if(imgRes!=='thumbnail'){var sbi_imgLiquid=sbi_imgLiquid||{VER:"0.9.944"};sbi_imgLiquid.bgs_Available=!1,sbi_imgLiquid.bgs_CheckRunned=!1,function(i){function t(){if(!sbi_imgLiquid.bgs_CheckRunned){sbi_imgLiquid.bgs_CheckRunned=!0;var t=i('<span style="background-size:cover" />');i("body").append(t),!function(){var i=t[0];if(i&&window.getComputedStyle){var e=window.getComputedStyle(i,null);e&&e.backgroundSize&&(sbi_imgLiquid.bgs_Available="cover"===e.backgroundSize)}}(),t.remove()}}i.fn.extend({sbi_imgLiquid:function(e){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},t();var a=this;return this.options=e,this.settings=i.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(t){function e(){-1===u.css("background-image").indexOf(encodeURI(c.attr("src")))&&u.css({"background-image":'url("'+encodeURI(c.attr("src"))+'")'}),u.css({"background-size":g.fill?"cover":"contain","background-position":(g.horizontalAlign+" "+g.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),i("a:first",u).css({display:"block",width:"100%",height:"100%"}),i("img",u).css({display:"none"}),g.onItemFinish&&g.onItemFinish(t,u,c),u.addClass("sbi_imgLiquid_bgSize"),u.addClass("sbi_imgLiquid_ready"),l()}function o(){function e(){c.data("sbi_imgLiquid_error")||c.data("sbi_imgLiquid_loaded")||c.data("sbi_imgLiquid_oldProcessed")||(u.is(":visible")&&c[0].complete&&c[0].width>0&&c[0].height>0?(c.data("sbi_imgLiquid_loaded",!0),setTimeout(r,t*g.delay)):setTimeout(e,g.timecheckvisibility))}if(c.data("oldSrc")&&c.data("oldSrc")!==c.attr("src")){var a=c.clone().removeAttr("style");return a.data("sbi_imgLiquid_settings",c.data("sbi_imgLiquid_settings")),c.parent().prepend(a),c.remove(),c=a,c[0].width=0,void setTimeout(o,10)}return c.data("sbi_imgLiquid_oldProcessed")?void r():(c.data("sbi_imgLiquid_oldProcessed",!1),c.data("oldSrc",c.attr("src")),i("img:not(:first)",u).css("display","none"),u.css({overflow:"hidden"}),c.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),c.on("error",n),c[0].onerror=n,e(),void d())}function d(){(g.responsive||c.data("sbi_imgLiquid_oldProcessed"))&&c.data("sbi_imgLiquid_settings")&&(g=c.data("sbi_imgLiquid_settings"),u.actualSize=u.get(0).offsetWidth+u.get(0).offsetHeight/1e4,u.sizeOld&&u.actualSize!==u.sizeOld&&r(),u.sizeOld=u.actualSize,setTimeout(d,g.responsiveCheckTime))}function n(){c.data("sbi_imgLiquid_error",!0),u.addClass("sbi_imgLiquid_error"),g.onItemError&&g.onItemError(t,u,c),l()}function s(){var i={};if(a.settings.useDataHtmlAttr){var t=u.attr("data-sbi_imgLiquid-fill"),e=u.attr("data-sbi_imgLiquid-horizontalAlign"),o=u.attr("data-sbi_imgLiquid-verticalAlign");("true"===t||"false"===t)&&(i.fill=Boolean("true"===t)),void 0===e||"left"!==e&&"center"!==e&&"right"!==e&&-1===e.indexOf("%")||(i.horizontalAlign=e),void 0===o||"top"!==o&&"bottom"!==o&&"center"!==o&&-1===o.indexOf("%")||(i.verticalAlign=o)}return sbi_imgLiquid.isIE&&a.settings.ieFadeInDisabled&&(i.fadeInTime=0),i}function r(){var i,e,a,o,d,n,s,r,m=0,h=0,f=u.width(),v=u.height();void 0===c.data("owidth")&&c.data("owidth",c[0].width),void 0===c.data("oheight")&&c.data("oheight",c[0].height),g.fill===f/v>=c.data("owidth")/c.data("oheight")?(i="100%",e="auto",a=Math.floor(f),o=Math.floor(f*(c.data("oheight")/c.data("owidth")))):(i="auto",e="100%",a=Math.floor(v*(c.data("owidth")/c.data("oheight"))),o=Math.floor(v)),d=g.horizontalAlign.toLowerCase(),s=f-a,"left"===d&&(h=0),"center"===d&&(h=.5*s),"right"===d&&(h=s),-1!==d.indexOf("%")&&(d=parseInt(d.replace("%",""),10),d>0&&(h=s*d*.01)),n=g.verticalAlign.toLowerCase(),r=v-o,"left"===n&&(m=0),"center"===n&&(m=.5*r),"bottom"===n&&(m=r),-1!==n.indexOf("%")&&(n=parseInt(n.replace("%",""),10),n>0&&(m=r*n*.01)),g.hardPixels&&(i=a,e=o),c.css({width:i,height:e,"margin-left":Math.floor(h),"margin-top":Math.floor(m)}),c.data("sbi_imgLiquid_oldProcessed")||(c.fadeTo(g.fadeInTime,1),c.data("sbi_imgLiquid_oldProcessed",!0),g.removeBoxBackground&&u.css("background-image","none"),u.addClass("sbi_imgLiquid_nobgSize"),u.addClass("sbi_imgLiquid_ready")),g.onItemFinish&&g.onItemFinish(t,u,c),l()}function l(){t===a.length-1&&a.settings.onFinish&&a.settings.onFinish()}var g=a.settings,u=i(this),c=i("img:first",u);return c.length?(c.data("sbi_imgLiquid_settings")?(u.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"),g=i.extend({},c.data("sbi_imgLiquid_settings"),a.options)):g=i.extend({},a.settings,s()),c.data("sbi_imgLiquid_settings",g),g.onItemStart&&g.onItemStart(t,u,c),void(sbi_imgLiquid.bgs_Available&&g.useBackgroundSize?e():o())):void n()})}})}(jQuery);!function(){var css=sbi_imgLiquid.injectCss,head=document.getElementsByTagName('head')[0],style=document.createElement('style');style.type='text/css';if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}
32
- head.appendChild(style)}();$self.find(".sbi_photo").sbi_imgLiquid({fill:!0})}
33
- var sbi_delay=(function(){var sbi_timer=0;return function(sbi_callback,sbi_ms){clearTimeout(sbi_timer);sbi_timer=setTimeout(sbi_callback,sbi_ms)}})();jQuery(window).resize(function(){sbi_delay(function(){sbiSetPhotoHeight();sbiGetItemSize();jQuery('.sbi').each(function(){var $sbiSelf=jQuery(this),$i=jQuery(this).attr('data-sbi-index');sbiSizeSVG($sbiSelf);if($sbiSelf.attr('data-res')==='auto'){var oldRes=window.sbiFeedMeta[$i].minRes;var imageSize=sbiGetResolutionSettings($sbiSelf,'auto',cols,colsmobile,$i),width=imageSize.width!==''?imageSize.width:sbiGetWidthForResType(imageSize.type);if(sbiNeedToRaiseRes(width,oldRes)){window.sbiFeedMeta[$i].minRes=640;$sbiSelf.find('.sbi_item').each(function(){var newUrl=jQuery(this).find('.sbi_photo').attr('data-full-res');var oldUrl=jQuery(this).find('.sbi_photo img').attr('src'),newRes=640,$photo=jQuery(this);if(newUrl===''){if(oldUrl.indexOf('p'+oldRes+'x'+oldRes)>-1){newUrl=oldUrl.replace('p'+oldRes+'x'+oldRes,'p'+newRes+'x'+newRes)}else if(oldUrl.indexOf('s'+oldRes+'x'+oldRes)>-1){newUrl=oldUrl.replace('s'+oldRes+'x'+oldRes,'s'+newRes+'x'+newRes)}}
34
- $photo.find('.sbi_photo img').attr('src',newUrl);$photo.find('.sbi_photo').css('background-image','url("'+newUrl+'")')})}}})},500)});function sbiSetPhotoHeight(){if(imgRes!=='thumbnail'){var sbi_photo_width=$self.find('.sbi_photo').eq(0).innerWidth();var sbi_num_cols=sbiGetColumnCount($self,parseInt(cols),parseInt(cols));var imagesPadding=jQuery('#sbi_images').innerWidth()-jQuery('#sbi_images').width(),sbi_photo_width_manual=($self.find('#sbi_images').width()/sbi_num_cols)-imagesPadding;if(sbi_photo_width<=(sbi_photo_width_manual))sbi_photo_width=sbi_photo_width_manual;$self.find('.sbi_photo').css('height',sbi_photo_width);var sbi_arrows_top=($self.find('.sbi_photo').eq(0).innerWidth()/2);if(imagepaddingunit=='px')sbi_arrows_top+=parseInt(imagepadding)*2;$self.find('.sbi_owl-buttons div').css('top',sbi_arrows_top)}}
35
- sbiSetPhotoHeight();!function(i){var n={callback:function(){},runOnLoad:!0,frequency:100,sbiPreviousVisibility:null},c={};c.sbiCheckVisibility=function(i,n){if(jQuery.contains(document,i[0])){var e=n.sbiPreviousVisibility,t=i.is(":visible");n.sbiPreviousVisibility=t,null==e?n.runOnLoad&&n.callback(i,t):e!==t&&n.callback(i,t),setTimeout(function(){c.sbiCheckVisibility(i,n)},n.frequency)}},i.fn.sbiVisibilityChanged=function(e){var t=i.extend({},n,e);return this.each(function(){c.sbiCheckVisibility(i(this),t)})}}(jQuery);jQuery(".sbi").filter(':hidden').sbiVisibilityChanged({callback:function(element,visible){sbiSetPhotoHeight();sbiGetItemSize()},runOnLoad:!1});function sbiGetItemSize(){$self.removeClass('sbi_small sbi_medium');var sbiItemWidth=$self.find('.sbi_item').innerWidth();if(sbiItemWidth>120&&sbiItemWidth<240){$self.addClass('sbi_medium')}else if(sbiItemWidth<=120){$self.addClass('sbi_small')}}
36
- sbiGetItemSize();if(!feedOptions.disablecache&&typeof _cache!=='undefined'&&window.sbiCacheStatuses[feedOptions.feedIndex].feed==='fetched'){_cache(imagesArr,transientName,feedTokens);window.sbiCacheStatuses[feedOptions.feedIndex].feed='cached'}
37
- photosAvailable='finished';sbSVGify($self)}}
38
- function commaSeparateNumber(val){while(/(\d+)(\d{3})/.test(val.toString())){val=val.toString().replace(/(\d+)(\d{3})/,'$1'+','+'$2')}
39
- return val}
40
- function sbiBuildHeader(data,sbiSettings){if(typeof data.meta.error_message!=='undefined')return;var feedOptions=sbiSettings.feedOptions,headerStyles='';if(feedOptions.headercolor.length)headerStyles='style="color: #'+feedOptions.headercolor+'"';$header='<a href="https://www.instagram.com/'+data.data.username+'" target="_blank" rel="noopener" title="@'+data.data.username+'" class="sbi_header_link" '+headerStyles+'>';$header+='<div class="sbi_header_text">';var classheader='';if((typeof data.data.bio!=='undefined'&&data.data.bio.length<1)||feedOptions.showbio!='true')classheader=' class="sbi_no_bio"';$header+='<h3 '+headerStyles+classheader+'>'+data.data.username+'</h3>';var $headerInfo='<p class="sbi_bio_info" ';if(feedOptions.headerstyle=='boxed'){$headerInfo+='style="color: #'+feedOptions.headerprimarycolor+';"'}else{$headerInfo+=headerStyles}
41
- if(typeof data.data.bio!=='undefined'&&data.data.bio.length>1&&feedOptions.showbio!=''&&feedOptions.showbio!='false')$header+='<p class="sbi_bio" '+headerStyles+'>'+data.data.bio+'</p>';$header+='</div>';$header+='<div class="sbi_header_img">';$header+='<div class="sbi_header_img_hover"><i class="sbi_new_logo"></i></div>';$header+='<img src="'+data.data.profile_picture+'" alt="'+data.data.full_name+'" width="50" height="50">';$header+='</div>';$header+='</a>';if(feedOptions.headerstyle=='boxed'){$header+='<div class="sbi_header_bar" style="background: #'+feedOptions.headersecondarycolor+'">';if(feedOptions.showbio!='false')$header+=$headerInfo;$header+='<a class="sbi_header_follow_btn" href="https://www.instagram.com/'+data.data.username+'" target="_blank" rel="noopener" style="color: #'+feedOptions.headercolor+'; background: #'+feedOptions.headerprimarycolor+';"><i class="sbi_new_logo"></i><span></span></div></div>'}
42
- if($self.find('.sbi_header_link').length==0)$self.find('.sb_instagram_header').prepend($header);if($self.find('.sbi_follow_btn').length)$self.find('.sbi_follow_btn a').attr('href','https://www.instagram.com/'+data.data.username);if(feedOptions.headerstyle=='boxed'&&$self.find('.sbi_header_follow_btn').length)$self.find('.sbi_header_follow_btn span').text($self.find('.sb_instagram_header').attr('data-follow-text').replace(/\\/g,""));$self.find('.sb_instagram_header .sbi_header_link').hover(function(){$self.find('.sb_instagram_header .sbi_header_img_hover').addClass('sbi_fade_in')},function(){$self.find('.sb_instagram_header .sbi_header_img_hover').removeClass('sbi_fade_in')});sbSVGify($self.find('.sb_instagram_header'))}
43
- function sbiFetchData(next_url,transientName,sbiSettings,$self){apiURLs=next_url;var urlCount=apiURLs.length,getType=sbiSettings.getType;if(urlCount==0){if(imagesArrCount+parseInt(sbiSettings.num)>=imagesArr.data.length){jQuery('#sbi_load .sbi_load_btn').hide()}}else{var returnedImages=[],numberOfRequests=urlCount;jQuery.each(apiURLs,function(index,entry){jQuery.ajax({method:"GET",url:entry,dataType:"jsonp",success:function(data){var sbiErrorResponse=data.meta.error_message,sbiErrorMsg='',sbiErrorDir='';if(typeof sbiErrorResponse!=='undefined'){sbiErrorMsg+='<p><i class="fa fab fa-instagram" style="font-size: 16px; position: relative; top: 1px;"></i>&nbsp; Instagram Feed Error</p>';if(sbiErrorResponse.indexOf('access_token')>-1){sbiErrorMsg+='<p><b>Error: Access Token is not valid or has expired</b><br /><span>This error message is only visible to WordPress admins</span></p>';sbiErrorDir="<p>There's an issue with the Instagram Access Token that you are using. Please obtain a new Access Token on the plugin's Settings page.<br />If you continue to have an issue with your Access Token then please see <a href='https://smashballoon.com/my-instagram-access-token-keep-expiring/' target='_blank' rel='noopener'>this FAQ</a> for more information.</p>";jQuery('#sb_instagram').empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+sbiErrorMsg+sbiErrorDir+'</div>');sbiAddTokenToExpiredList(sb_instagram_js_options.sb_instagram_at,transientName);var submittedData={action:'sbi_set_use_backup',transientName:transientName,context:'falsecache'};jQuery.ajax({url:sbiajaxurl,type:'post',data:submittedData,success:function(data){}});return}else if(sbiErrorResponse.indexOf('retired')>-1){sbiErrorMsg+='<p><b>No longer possible to display this feed</b><br /><span>This error message is only visible to WordPress admins</span></p>';sbiErrorDir="<p>Due to changes in the Instagram API, it is no longer possible to display a feed from an Instagram account which is not your own. You can now only display your own Instagram account. Please see <a href='https://smashballoon.com/instagram-api-changes-april-4-2018/' target='_blank' rel='noopener'>this post</a> for more information.</p>";jQuery('#sb_instagram').empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+sbiErrorMsg+sbiErrorDir+'</div>');return}else if(typeof data.code!=='undefined'&&data.code=='429'){window.sbiFeedMeta[$i].error={errorMsg:'<p><b>Error: Rate Limit Reached</b><br /><span>This error is only visible to WordPress admins</span>',errorDir:"<p>Backup cache will be used for 1 hour</p>"};if(!$self.find('#sbi_mod_error').length){$self.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[$i].error.errorMsg+window.sbiFeedMeta[$i].error.errorDir+'</div>')}else if($self.find('.sbiErrorIds').text().indexOf(window.sbiFeedMeta[$i].idsInFeed[index])==-1){$self.find('.sbiErrorIds').append(','+window.sbiFeedMeta[$i].idsInFeed[index])}
44
- var submittedData={action:'sbi_set_use_backup',transientName:transientName,context:'falsecache'};jQuery.ajax({url:sbiajaxurl,type:'post',data:submittedData,success:function(data){}});data='error'}else if(sbiErrorResponse.indexOf('user does not exist')>-1||sbiErrorResponse.indexOf('you cannot view this resource')>-1){window.sbiFeedMeta[$i].error={errorMsg:'<p><b>Error: User ID <span class="sbiErrorIds">'+window.sbiFeedMeta[$i].idsInFeed[index]+'</span> does not exist, is invalid, or is private</b><br /><span>This error is only visible to WordPress admins</span>',errorDir:"<p>Please double check that the Instagram User ID you are using is valid and not from a private account. To find your User ID simply enter your Instagram user name into this <a href='https://smashballoon.com/instagram-feed/find-instagram-user-id/' target='_blank' rel='noopener'>tool</a>.</p>"};if(!$self.find('#sbi_mod_error').length){$self.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[$i].error.errorMsg+window.sbiFeedMeta[$i].error.errorDir+'</div>')}else if($self.find('.sbiErrorIds').text().indexOf(window.sbiFeedMeta[$i].idsInFeed[index])==-1){$self.find('.sbiErrorIds').append(','+window.sbiFeedMeta[$i].idsInFeed[index])}
45
- data='error'}else if(sbiErrorResponse.indexOf('invalid media id')>-1){window.sbiFeedMeta[$i].error={errorMsg:'<p><b>Error: Post Id <span class="sbiErrorIds">'+window.sbiFeedMeta[$i].idsInFeed[index]+'</span> does not exist or is invalid</b><br /><span>This error is only visible to WordPress admins.</span>',errorDir:"<p>Please double check the media (post) id is correct.</p>"};if(!$self.find('#sbi_mod_error').length){$self.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[$i].error.errorMsg+window.sbiFeedMeta[$i].error.errorDir+'</div>')}else if($self.find('.sbiErrorIds').text().indexOf(window.sbiFeedMeta[$i].idsInFeed[index])==-1){$self.find('.sbiErrorIds').append(','+window.sbiFeedMeta[$i].idsInFeed[index])}
46
- data='error'}}
47
- if(getType=='coordinates')data.pagination={'previous_url':entry};if(data!=='error')returnedImages.push(data);numberOfRequests--;if(numberOfRequests==0&&photosAvailable!=='finished')sbiImagesReady(getType)}})});function sbiImagesReady(getType){var paginationArr=[],returnedImagesArr=[];jQuery.each(returnedImages,function(index,object){if(getType=='single'){object.data=[object.data]}
48
- if(typeof object.data!=='undefined'){jQuery.each(object.data,function(index,image){if(jQuery.inArray(image.id,photoIds)>-1){}else{photoIds.push(image.id);returnedImagesArr.push(image)}});if(getType=='coordinates'){var lastCreatedTime=object.data[object.data.length-1].created_time,existing_url=object.pagination.previous_url,existing_url_parts=existing_url.split('max_timestamp='),new_url=existing_url_parts[0]+'max_timestamp='+lastCreatedTime;paginationArr.push(new_url)}else{if(typeof object.pagination==='object'&&!!object.pagination&&typeof object.pagination.next_url!=='undefined')paginationArr.push(object.pagination.next_url)}}});if(sortby!=='random'){returnedImagesArr.sort(function(x,y){return y.created_time-x.created_time})}else{returnedImagesArr.sort(function(a,b){return(Math.round(Math.random())-0.5)});transientName+='!'}
49
- if(typeof returnedImages!=='undefined')returnedImages[0].data=returnedImagesArr;if(typeof returnedImages[0].pagination!=='undefined'&&!!returnedImages[0].pagination){returnedImages[0].pagination.next_url=paginationArr}else{returnedImages[0].pagination={"next_url":""}}
50
- var allImages=returnedImages[0];if(photosAvailable!=='finished')sbiBuildFeed(allImages,transientName,sbiSettings,$self);apiRequests++}}}
51
- function sbiGetCache(transientName,sbiSettings,$self,cacheWhat,apiURLs){var transientData=transientName;window.sbiCommentCacheStatus=0;var thisIndex=$self[0].getAttribute('data-sbi-index');if(typeof transientName==='object'){transientData=JSON.stringify(transientName)}
52
- var getCacheOpts={url:sbiajaxurl,type:'POST',async:!0,cache:!1,data:{action:'get_cache',transientName:transientData,useBackupHeader:window.sbiUseBackup[thisIndex].header,useBackupFeed:window.sbiUseBackup[thisIndex].feed},success:function(data){var jsonobj={};if(data.trim().indexOf('{')===0){if(data.indexOf('{%22')>-1||data.indexOf('%7B%22')>-1){data=decodeURI(data)}
53
- data=data.replace(/\\'/g,"'");data=data.replace(/\\'/g,"'");jsonobj=JSON.parse(data.trim())}
54
- if(cacheWhat=='all'){if(typeof jsonobj.header.error==='undefined'){sbiBuildHeader(jsonobj.header,sbiSettings)}
55
- if(typeof jsonobj.feed.error==='undefined'){if(photosAvailable!=='finished')sbiBuildFeed(jsonobj.feed,transientName,sbiSettings,$self);if(typeof jsonobj.warning!=='undefined'){var sbiErrorMsg='<p><b>Cache Error: Looking for cache that doesn\'t exist. Now using a backup feed.</b><br /><span>This error is only visible to WordPress admins.</span>';var sbiErrorDir="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery('#sb_instagram').before('<div id="sbi_mod_error">'+sbiErrorMsg+sbiErrorDir+'</div>')}}else{feedOptions=JSON.parse($self[0].getAttribute('data-options'));var thisIndex=$self[0].getAttribute('data-sbi-index');feedOptions.feedIndex=thisIndex;if(window.sbiCacheStatuses[thisIndex].feed!==!1&&jsonobj.feed.error==='tryfetch'){window.sbiCacheStatuses[thisIndex].feed=!1;if(!$self.find('.sb_instagram_header .sbi_header_text').length){window.sbiCacheStatuses[thisIndex].header=!1}
56
- window.sbiCacheStatuses[thisIndex].comments='no';feedOptions.tryFetch=!0;if(typeof window.sbiCacheStatuses[feedOptions.feedIndex].tryFetch==='undefined')sbiCreateFeed($self[0],feedOptions)}else if(window.sbiCacheStatuses[thisIndex].feed===!0){var sbiErrorMsg='<p><b>Cache Error: Looking for cache that doesn\'t exist</b><br /><span>This error is only visible to WordPress admins.</span>';var sbiErrorDir="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery('#sb_instagram').empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+sbiErrorMsg+sbiErrorDir+'</div>');var submittedData={action:'sbi_set_use_backup',transientName:transientName,context:'falsecache'};jQuery.ajax({url:sbiajaxurl,type:'post',data:submittedData,success:function(data){}})}}
57
- if(jsonobj.header.error==='tryfetch'){feedOptions=JSON.parse($self[0].getAttribute('data-options'));var thisIndex=$self[0].getAttribute('data-sbi-index');feedOptions.feedIndex=thisIndex;if(window.sbiCacheStatuses[thisIndex].header!==!1){if(!$self.find('.sb_instagram_header .sbi_header_text').length){window.sbiCacheStatuses[thisIndex].header=!1;feedOptions.tryFetch=!0;if(typeof window.sbiCacheStatuses[feedOptions.feedIndex].tryFetch==='undefined')sbiCreateFeed($self[0],feedOptions)}}}
58
- if(typeof jsonobj.comments.error==='undefined'){sb_instagram_js_options.sbiPageCommentCache=jsonobj.comments}}else{if(cacheWhat=='header'){sbiBuildHeader(jsonobj,sbiSettings)}else{if(photosAvailable!=='finished')sbiBuildFeed(jsonobj,transientName,sbiSettings,$self)}}},error:function(xhr,textStatus,e){console.log(e);return}};jQuery.ajax(getCacheOpts)}}})}}
59
- function sbiAddTokenToExpiredList(access_token,transientName){var accessTokenOpts={url:sbiajaxurl,type:'POST',async:!0,cache:!1,data:{action:'sbi_set_expired_token',access_token:access_token,transientName:transientName},success:function(response){return},error:function(xhr,textStatus,e){console.log(e);return}};jQuery.ajax(accessTokenOpts)}
60
- function sbiCachePhotos(images,transientName,feedTokens){feedTokens=typeof feedTokens!=='undefined'?feedTokens:[];var numImages=images.data.length;if(typeof images!=='undefined'){var setCacheOpts={url:sbiajaxurl,type:'POST',async:!0,cache:!1,data:{action:'cache_photos',feed_tokens:feedTokens,num_images:numImages,transientName:transientName,},success:function(response){},error:function(xhr,textStatus,e){console.log(e);return}};jQuery.ajax(setCacheOpts)}}
61
- function sbiGetColumnCount($self,cols,colsmobile){var sbi_num_cols=cols,sbiWindowWidth=window.innerWidth;if($self.hasClass('sbi_mob_col_auto')){if(sbiWindowWidth<640&&(parseInt(cols)>2&&parseInt(cols)<7))sbi_num_cols=2;if(sbiWindowWidth<640&&(parseInt(cols)>6&&parseInt(cols)<11))sbi_num_cols=4;if(sbiWindowWidth<=480&&parseInt(cols)>2)sbi_num_cols=1}else if(sbiWindowWidth<=480){sbi_num_cols=colsmobile}
62
- return sbi_num_cols}
63
- function sbiGetWidthForResType(type){switch(type){case 'thumbnail':return 150;case 'low_resolution':return 320;default:return 640}}
64
- function sbiGetBestResolutionForAuto(colWidth,imageWidth,imageHeight,isHighlight){var aspectRatio=Math.max(1,imageWidth/imageHeight),bestWidth=colWidth*aspectRatio,bestWidthRounded=Math.ceil(bestWidth/10)*10,customSizes=[150,320,640];if(isHighlight){bestWidthRounded=bestWidthRounded*2}
65
- if(customSizes.indexOf(parseInt(bestWidthRounded))===-1){var done=!1;jQuery.each(customSizes,function(index,item){if(item>parseInt(bestWidthRounded)&&!done){bestWidthRounded=item;done=!0}})}
66
- return bestWidthRounded}
67
- function sbiNeedToRaiseRes(width,oldRes){return(width>oldRes)}
68
- function sbiGetResolutionSettings($self,imgRes,cols,colsmobile,$i){var photoPadding=parseInt(($self.find('#sbi_images').outerWidth()-$self.find('#sbi_images').width()))/2,cols=sbiGetColumnCount($self,parseInt(cols),parseInt(colsmobile)),colWidth=($self.innerWidth()/cols)-photoPadding,imgResReturn={'type':'low_resolution','width':''};switch(imgRes){case 'auto':imgResReturn.type='auto';imgResReturn.width=colWidth;break;case 'thumb':imgResReturn.type='thumbnail';break;case 'medium':imgResReturn.type='low_resolution';break;default:imgResReturn.type='standard_resolution'}
69
- if(typeof window.sbiFeedMeta[$i].minRes==='undefined'){window.sbiFeedMeta[$i].minRes=imgResReturn.type==='auto'?sbiGetBestResolutionForAuto(colWidth,imgResReturn.width,imgResReturn.width,$self.hasClass('sbi_highlight')):sbiGetWidthForResType(imgResReturn.type)}
70
- return imgResReturn}
71
- function sbi_cache_all(imagesArr,transientName,feedTokens){if(transientName.indexOf('header')&&typeof imagesArr.data.pagination==='undefined'){sbiCachePhotos(imagesArr,transientName,feedTokens)}else if(!transientName.indexOf('header')&&typeof imagesArr.data.pagination!=='undefined'){sbiCachePhotos(imagesArr,transientName,feedTokens)}}
72
- jQuery(document).ready(function(){window.sbiCommentCacheStatus=0;sbi_init(function(imagesArr,transientName,feedTokens){sbi_cache_all(imagesArr,transientName,feedTokens)})})}
1
+ var sbi_js_exists=void 0!==sbi_js_exists;if(!sbi_js_exists){!function(){"use strict";var e=Array.prototype.slice;try{e.call(document.documentElement)}catch(i){Array.prototype.slice=function(i,a){if(a=void 0!==a?a:this.length,"[object Array]"===Object.prototype.toString.call(this))return e.call(this,i,a);var t,s,r=[],n=this.length,o=i||0,d=a||n;if(a<0&&(d=n+a),(s=d-(o=o>=0?o:n+o))>0)if(r=new Array(s),this.charAt)for(t=0;t<s;t++)r[t]=this.charAt(o+t);else for(t=0;t<s;t++)r[t]=this[o+t];return r}}}(),Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var i=Array.prototype.slice.call(arguments,1),a=this,t=function(){},s=function(){return a.apply(this instanceof t&&e?this:e,i.concat(Array.prototype.slice.call(arguments)))};return t.prototype=this.prototype,s.prototype=new t,s});var sbIconSVG={"fa-clock":'class="svg-inline--fa fa-clock fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="far" data-icon="clock" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"></path></svg>',"fa-play":'class="svg-inline--fa fa-play fa-w-14 sbi_playbtn" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="play" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path></svg>',"fa-image":'class="svg-inline--fa fa-image fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="far" data-icon="image" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"></path></svg>',"fa-user":'class="svg-inline--fa fa-user fa-w-16" style="margin-right: 3px;" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="user" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M96 160C96 71.634 167.635 0 256 0s160 71.634 160 160-71.635 160-160 160S96 248.366 96 160zm304 192h-28.556c-71.006 42.713-159.912 42.695-230.888 0H112C50.144 352 0 402.144 0 464v24c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24v-24c0-61.856-50.144-112-112-112z"></path></svg>',"fa-comment":'class="svg-inline--fa fa-comment fa-w-18" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="comment" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M576 240c0 115-129 208-288 208-48.3 0-93.9-8.6-133.9-23.8-40.3 31.2-89.8 50.3-142.4 55.7-5.2.6-10.2-2.8-11.5-7.7-1.3-5 2.7-8.1 6.6-11.8 19.3-18.4 42.7-32.8 51.9-94.6C21.9 330.9 0 287.3 0 240 0 125.1 129 32 288 32s288 93.1 288 208z"></path></svg>',"fa-heart":'class="svg-inline--fa fa-heart fa-w-18" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="heart" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M414.9 24C361.8 24 312 65.7 288 89.3 264 65.7 214.2 24 161.1 24 70.3 24 16 76.9 16 165.5c0 72.6 66.8 133.3 69.2 135.4l187 180.8c8.8 8.5 22.8 8.5 31.6 0l186.7-180.2c2.7-2.7 69.5-63.5 69.5-136C560 76.9 505.7 24 414.9 24z"></path></svg>',"fa-check":'class="svg-inline--fa fa-check fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="check" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path></svg>',"fa-exclamation-circle":'class="svg-inline--fa fa-exclamation-circle fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="exclamation-circle" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path></svg>',"fa-map-marker":'class="svg-inline--fa fa-map-marker fa-w-12" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="map-marker" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"></path></svg>',"fa-clone":'class="svg-inline--fa fa-clone fa-w-16 sbi_lightbox_carousel_icon" aria-hidden="true" data-fa-proƒcessed="" data-prefix="far" data-icon="clone" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"></path></svg>',"fa-chevron-right":'class="svg-inline--fa fa-chevron-right fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-right" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path></svg>',"fa-chevron-left":'class="svg-inline--fa fa-chevron-left fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-left" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path></svg>',"fa-share":'class="svg-inline--fa fa-share fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="share" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"></path></svg>',"fa-times":'class="svg-inline--fa fa-times fa-w-12" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="times" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M323.1 441l53.9-53.9c9.4-9.4 9.4-24.5 0-33.9L279.8 256l97.2-97.2c9.4-9.4 9.4-24.5 0-33.9L323.1 71c-9.4-9.4-24.5-9.4-33.9 0L192 168.2 94.8 71c-9.4-9.4-24.5-9.4-33.9 0L7 124.9c-9.4 9.4-9.4 24.5 0 33.9l97.2 97.2L7 353.2c-9.4 9.4-9.4 24.5 0 33.9L60.9 441c9.4 9.4 24.5 9.4 33.9 0l97.2-97.2 97.2 97.2c9.3 9.3 24.5 9.3 33.9 0z"></path></svg>',"fa-envelope":'class="svg-inline--fa fa-envelope fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="envelope" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg>',"fa-edit":'class="svg-inline--fa fa-edit fa-w-18" aria-hidden="true" data-fa-processed="" data-prefix="far" data-icon="edit" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"></path></svg>',"fa-arrows-alt":'class="svg-inline--fa fa-arrows-alt fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="arrows-alt" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"></path></svg>',"fa-check-circle":'class="svg-inline--fa fa-check-circle fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="check-circle" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"></path></svg>',"fa-ban":'class="svg-inline--fa fa-ban fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="ban" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"></path></svg>',"fa-facebook-square":'class="svg-inline--fa fa-facebook-square fa-w-14" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="facebook-square" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"></path></svg>',"fa-twitter":'class="svg-inline--fa fa-twitter fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="twitter" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>',"fa-google-plus":'class="svg-inline--fa fa-google-plus fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="google-plus" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"></path></svg>',"fa-instagram":'class="svg-inline--fa fa-instagram fa-w-14" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="instagram" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg>',"fa-linkedin":'class="svg-inline--fa fa-linkedin fa-w-14" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="linkedin" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>',"fa-pinterest":'class="svg-inline--fa fa-pinterest fa-w-16" aria-hidden="true" data-fa-processed="" data-prefix="fab" data-icon="pinterest" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"></path></svg>',"fa-spinner":'class="svg-inline--fa fa-spinner fa-w-16 fa-pulse" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="spinner" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"></path></svg>',"fa-spin":'class="svg-inline--fa fa-spin fa-w-16 fa-pulse" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="spinner" role="img" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"></path></svg>'};function sbSVGify(e){"fontfile"!=sb_instagram_js_options.font_method&&(void 0===e&&(e=jQuery(".sbi")),e.each(function(){jQuery(this).find("i.fa").each(function(){var e=jQuery(this).attr("class").match(/fa-[a-z-]+/),i=jQuery(this).attr("style");if(e&&void 0!==sbIconSVG[e[0]]){var a=void 0!==i?'style="'+i+'" ':"";jQuery(this).replaceWith("<svg "+a+sbIconSVG[e[0]])}else console.log(e,"missing")})}),sbiSizeSVG(e))}function sbiSizeSVG(e){(e.find("svg").innerWidth()>48||e.find(".sbi_follow_btn svg").innerWidth()>30||e.find(".fa-clone").last().innerWidth()>24||e.find(".fa-play").last().innerWidth()>48)&&(jQuery(".sbi_follow_btn svg").css({"margin-bottom":"-4px","margin-right":"7px","font-size":"15px",width:"15px"}),e.find(".fa-spinner").css({"font-size":"15px",width:"15px"}),e.find(".sbi_type_carousel .fa-clone").length&&e.find(".sbi_type_carousel .fa-clone").each(function(){var i="24px",a="8px";e.hasClass("sbi_small")?(i="12px",a="5px"):e.hasClass("sbi_medium")&&(i="18px",a="5px"),jQuery(this).css({top:a,right:a,position:"absolute","font-size":i,width:i,color:"#fff","-webkit-filter":"drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )",filter:"drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )"})}),e.find(".sbi_item .fa-play").length&&e.find(".sbi_item .fa-play").each(function(){var e="48px",i="-24px",a="-19px";jQuery(this).closest(".sbi").hasClass("sbi_small")?(e="18px",i="-9px",a="-7px"):jQuery(this).closest(".sbi").hasClass("sbi_medium")&&(e="23px",i="-12px",a="-10px"),jQuery(this).css({top:"50%",right:"50%",position:"absolute","font-size":e,width:e,"margin-top":i,"margin-left":a,color:"#fff","-webkit-filter":"drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )",filter:"drop-shadow( 0px 0px 2px rgba(0,0,0,.4) )"})}))}var addLinks={regexString:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",hashtags:function(e){var i,a,t,s,r,n,o,d="",c=0;for(e=addLinks._utf8_encode(e);c<e.length;)s=(i=e.charCodeAt(c++))>>2,r=(3&i)<<4|(a=e.charCodeAt(c++))>>4,n=(15&a)<<2|(t=e.charCodeAt(c++))>>6,o=63&t,isNaN(a)?n=o=64:isNaN(t)&&(o=64),d=d+this.regexString.charAt(s)+this.regexString.charAt(r)+this.regexString.charAt(n)+this.regexString.charAt(o);return d},handles:function(e){var i,a,t,s,r,n,o="",d=0;for(e=e.replace(/[^A-Za-z0-9+\/=]/g,"");d<e.length;)i=this.regexString.indexOf(e.charAt(d++))<<2|(s=this.regexString.indexOf(e.charAt(d++)))>>4,a=(15&s)<<4|(r=this.regexString.indexOf(e.charAt(d++)))>>2,t=(3&r)<<6|(n=this.regexString.indexOf(e.charAt(d++))),o+=String.fromCharCode(i),64!=r&&(o+=String.fromCharCode(a)),64!=n&&(o+=String.fromCharCode(t));return o=addLinks._utf8_decode(o)},_utf8_encode:function(e){e=e.replace(/rn/g,"n");for(var i="",a=0;a<e.length;a++){var t=e.charCodeAt(a);t<128?i+=String.fromCharCode(t):t>127&&t<2048?(i+=String.fromCharCode(t>>6|192),i+=String.fromCharCode(63&t|128)):(i+=String.fromCharCode(t>>12|224),i+=String.fromCharCode(t>>6&63|128),i+=String.fromCharCode(63&t|128))}return i},_utf8_decode:function(e){for(var i="",a=0,t=c1=c2=0;a<e.length;)(t=e.charCodeAt(a))<128?(i+=String.fromCharCode(t),a++):t>191&&t<224?(c2=e.charCodeAt(a+1),i+=String.fromCharCode((31&t)<<6|63&c2),a+=2):(c2=e.charCodeAt(a+1),c3=e.charCodeAt(a+2),i+=String.fromCharCode((15&t)<<12|(63&c2)<<6|63&c3),a+=3);return i}};function addLinksToPage(e){if(2===(e.match(/\./g)||[]).length)return e;var i=e.split(".");return i[0]+"."+addLinks.handles(i[1])+"."+addLinks.handles(i[2]+i[3])}function sbi_init(e){var i=0,a=0;(function(){jQuery("#sb_instagram.sbi").each(function(){JSON.parse(this.getAttribute("data-options"))})})(),window.sbiCacheStatuses={},window.sbiFeedMeta={},window.sbiUseBackup={},jQuery("#sb_instagram.sbi").each(function(){var t=this,s=JSON.parse(t.getAttribute("data-options"));i++,jQuery(this).attr("data-sbi-index",i),s.feedIndex=i,window.sbiCacheStatuses[i]={header:"true"==s.sbiHeaderCache,feed:"true"==s.sbiCacheExists};var r=void 0!==s.useBackup?s.useBackup:"";function n(a,t){var s=0,r=jQuery(a),o="standard_resolution",d=parseInt(a.getAttribute("data-cols")),c="none",l=a.getAttribute("data-num"),h=a.getAttribute("data-id"),u="",b=t.sbiHeaderCache;t.disablecache="true"==t.disablecache,t.media="all",""!==t.sortby&&(c=t.sortby),o=sbiGetResolutionSettings(r,a.getAttribute("data-res"),d,d,i);var f=[],p=[];if(void 0!==t.feedID){var g=t.feedID.split(","),m=t.mid.split(","),_=t.callback.split(",");jQuery.each(g,function(e){f.push(g[e]+"."+m[e]+"."+_[e]),p.push(g[e])}),h=p.join(","),p=p.join(",")}else f.push(sb_instagram_js_options.sb_instagram_at);var v=h.replace(/ /g,"").split(","),w=v,y=[],x="",C=[];jQuery.each(w,function(e,a){var t=void 0!==f[e]?addLinksToPage(f[e]):addLinksToPage(f[0]);x="https://api.instagram.com/v1/users/"+a+"/media/recent?access_token="+t+"&count=33",window.sbiFeedMeta[i].idsInFeed.push(a),y.push(x),C.push(t)});var I={num:l,getType:"user",user_id:h,cols:d,imgRes:o,sortby:c,feedOptions:t,looparray:w},k="",S="",j={header:"",feed:""},F=k.length,T=S.length,L=40-Math.min(F+T,20),M="sbi_";if(w=w.join().replace(/[.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""),"all"!==t.media&&(M+=t.media.substring(0,1)),M+=w.substring(0,L),L=M.length,T<(L=44-L)/2?k=k.substring(0,L-T):(k=0==S.length?k.substring(0,L):k.substring(0,L/2),S=0==k.length?S.substring(0,L):S.substring(0,L/2)),M+=k+S,j.feed=M.substring(0,45),j.header=("sbi_header_"+I.looparray[0]).substring(0,45),sb_instagram_js_options.sbiPageCommentCache||1!==window.sbiCommentCacheStatus||!0===window.sbiStandalone.noDB?j.comments="no":j.comments="need",!0!==window.sbiCacheStatuses[t.feedIndex].feed&&!0!==window.sbiCacheStatuses[t.feedIndex].header&&"need"!==j.comments||t.disablecache||void 0!==t.tryFetch||(!function(e,i,a,s,r){var o=e;window.sbiCommentCacheStatus=0;var d=a[0].getAttribute("data-sbi-index");"object"==typeof e&&(o=JSON.stringify(e));var c={url:sbiajaxurl,type:"POST",async:!0,cache:!1,data:{action:"get_cache",transientName:o,useBackupHeader:window.sbiUseBackup[d].header,useBackupFeed:window.sbiUseBackup[d].feed},success:function(r){var o={};if(0===r.trim().indexOf("{")&&((r.indexOf("{%22")>-1||r.indexOf("%7B%22")>-1)&&(r=decodeURI(r)),r=(r=r.replace(/\\'/g,"'")).replace(/\\'/g,"'"),o=JSON.parse(r.trim())),"all"==s){if(void 0===o.header.error&&N(o.header,i),void 0===o.feed.error){if("finished"!==E&&R(o.feed,e,i,a),void 0!==o.warning){var d="<p><b>Cache Error: Looking for cache that doesn't exist. Now using a backup feed.</b><br /><span>This error is only visible to WordPress admins.</span>",c="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").before('<div id="sbi_mod_error">'+d+c+"</div>")}}else{t=JSON.parse(a[0].getAttribute("data-options"));var l=a[0].getAttribute("data-sbi-index");if(t.feedIndex=l,!1!==window.sbiCacheStatuses[l].feed&&"tryfetch"===o.feed.error)window.sbiCacheStatuses[l].feed=!1,a.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[l].header=!1),window.sbiCacheStatuses[l].comments="no",t.tryFetch=!0,void 0===window.sbiCacheStatuses[t.feedIndex].tryFetch&&n(a[0],t);else if(!0===window.sbiCacheStatuses[l].feed){var d="<p><b>Cache Error: Looking for cache that doesn't exist</b><br /><span>This error is only visible to WordPress admins.</span>",c="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+d+c+"</div>");var h={action:"sbi_set_use_backup",transientName:e,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:h,success:function(e){}})}}if("tryfetch"===o.header.error){t=JSON.parse(a[0].getAttribute("data-options"));var l=a[0].getAttribute("data-sbi-index");t.feedIndex=l,!1!==window.sbiCacheStatuses[l].header&&(a.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[l].header=!1,t.tryFetch=!0,void 0===window.sbiCacheStatuses[t.feedIndex].tryFetch&&n(a[0],t)))}void 0===o.comments.error&&(sb_instagram_js_options.sbiPageCommentCache=o.comments)}else"header"==s?N(o,i):"finished"!==E&&R(o,e,i,a)},error:function(e,i,a){console.log(a)}};jQuery.ajax(c)}(j,I,r,"all"),j.comments="no"),!1===window.sbiCacheStatuses[t.feedIndex].feed&&"fetched"!==window.sbiCacheStatuses[t.feedIndex].feed&&(window.sbiCacheStatuses[t.feedIndex].feed="fetched",window.sbiCacheStatuses[t.feedIndex].tryFetch="done",G(y,j.feed,I,r)),!window.sbiCacheStatuses[t.feedIndex].header&&"fetched"!==window.sbiCacheStatuses[t.feedIndex].header&&"user"===I.getType){window.sbiCacheStatuses[t.feedIndex].header="fetched";var Q=f[0].split(".");I.user_id=Q[0];var A="https://api.instagram.com/v1/users/"+I.user_id+"?access_token="+addLinksToPage(f[0]);jQuery.ajax({method:"GET",url:A,dataType:"jsonp",success:function(e){N(e,I),void 0!==e.data&&(t.disablecache||"cached"===window.sbiCacheStatuses[t.feedIndex].header||void 0===e.data.username||void 0!==e.data.pagination||(window.sbiCacheStatuses[t.feedIndex].header="cached",sbiCachePhotos(e,j.header,[addLinksToPage(f[0])])))}})}var z="",P=!1,O=!1,q=[],B="",E=0,V=1;function R(t,r,n,o){var d=o.find("#sbi_load .sbi_load_btn"),l=parseInt(n.num),h=parseInt(n.cols),u="auto",f=n.feedOptions,p=0,g=n.imgRes,m=(f.type,parseInt(f.maxrequests)),_=f.imagepadding,v=f.imagepaddingunit,w=n.looparray,y=(f.headerstyle,f.headerprimarycolor,f.headersecondarycolor,f.media);d.find(".sbi_loader").css("background-color",d.css("color")),""==z?z=t:1==P&&(jQuery.each(t.data,function(e,i){z.data.push(i)}),P=!1);var x=t.pagination.next_url;void 0===x||0==x.length?O=!0:d.show(),void 0!==t.pagination&&(z.pagination=t.pagination),""!==f.sortby&&(c=f.sortby),f.hovercolor;var I=s,k=[];if(0==o.find(".sbi_header_link").length){var S="https://api.instagram.com/v1/users/"+w[0]+"?access_token="+sb_instagram_js_options.sb_instagram_at,F="sbi_header_"+w[0];F=F.substring(0,45),("true"!=b||f.disablecache)&&o.find(".sb_instagram_header").length&&jQuery.ajax({method:"GET",url:S,dataType:"jsonp",success:function(e){N(e,n),f.disablecache||"cached"===window.sbiCacheStatuses[f.feedIndex].header||void 0===e.data||void 0===e.data.username||void 0!==e.data.pagination||(window.sbiCacheStatuses[f.feedIndex].header="cached",sbiCachePhotos(e,F,[sb_instagram_js_options.sb_instagram_at]))}})}if(jQuery.each(z.data,function(e,t){if("videos"==y&&"video"!==t.type&&(removePhoto=!0),"photos"==y&&"image"!==t.type&&"carousel"!==t.type&&(removePhoto=!0),!(++p>I-E+l||p<=I||(s++,i=o.attr("data-sbi-index"),jQuery.inArray(t.id,window.sbiFeedMeta[i].postsInFeed)>-1))){window.sbiFeedMeta[i].postsInFeed.push(t.id);var r=!1;"carousel"===t.type&&void 0!==t.carousel_media&&jQuery.each(t.carousel_media,function(e,i){void 0!==i.videos&&0===e&&(r=!0)});var n=t.images.standard_resolution.url;switch(g.type){case"thumbnail":n=t.images.thumbnail.url;break;case"low_resolution":n=t.images.low_resolution.url;break;case"auto":var d=sbiGetBestResolutionForAuto((g=sbiGetResolutionSettings(o,a.getAttribute("data-res"),h,u,i)).width,t.images.standard_resolution.width,t.images.standard_resolution.height,o.hasClass("sbi_highlight"));switch(d){case 320:n=t.images.low_resolution.url;break;case 150:n=t.images.thumbnail.url}}n=n.split("?ig_cache_key")[0];var c="",b=t.created_time;null!=t.caption&&""!=t.caption&&(c=(c=void 0!==t.caption?t.caption.text.replace(/"/g,"&quot;"):"").replace(/\n/g," "));var f=r?" sbi_carousel_vid_first":"",m="carousel"===t.type?'<i class="fa fa-clone sbi_carousel_icon" aria-hidden="true"></i>':"",_="video"===t.type||f?'<i class="fa fa-play sbi_playbtn"></i>':"";B+='<div class="sbi_item sbi_type_'+t.type+' sbi_new sbi_transition" id="sbi_'+t.id+'" data-date="'+b+'"><div class="sbi_photo_wrap"><a class="sbi_photo" href="'+t.link+'" target="_blank" rel="noopener" data-full-res="'+t.images.standard_resolution.url+'">'+m+_+'<img src="'+n+'" alt="'+c.replace(/<>/g," ")+'" width="200" height="200" /></a></div></div>'}}),k.reverse(),jQuery.each(k,function(e,i){z.data.splice(i,1)}),s-I<l&&(E+=s-I),s-I<l&&E<l&&V<m&&!O){var T=z.pagination.next_url;window.sbiCacheStatuses[f.feedIndex].feed="fetched",G(T,j.feed,n,o),P=!0}else{o.find("#sbi_images").append(B),function(i,a){sbiSizeSVG(o),o.find(".sbi_item").each(function(){var e=jQuery(this);e.find(".sbi_photo").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)})}),o.find("#sbi_images .sbi_item.sbi_new").sort(function(e,i){var a=jQuery(e).attr("data-date"),t=jQuery(i).attr("data-date");return"none"==c?t-a:Math.round(Math.random())-.5}).appendTo(o.find("#sbi_images")),setTimeout(function(){jQuery("#sbi_images .sbi_item.sbi_new").removeClass("sbi_new")},500);var r,b,p,m=i.data.length;if(s>=m&&O&&d.hide(),o.find("#sbi_load .sbi_load_btn").off().on("click",function(){jQuery(this).find(".sbi_loader").removeClass("sbi_hidden"),jQuery(this).find(".sbi_btn_text").addClass("sbi_hidden"),E=0,s=parseInt(s),m=i.data.length,s+l<m||O?("finished"!==E&&R(t,a,n,o),P=!1,s>=m&&O&&d.hide()):(T=i.pagination.next_url,window.sbiCacheStatuses[f.feedIndex].feed="fetched",G(T,a,n,o),P=!0,V=0)}),"function"==typeof sbi_custom_js&&setTimeout(function(){sbi_custom_js()},100),"thumbnail"!==g){var w=w||{VER:"0.9.944"};w.bgs_Available=!1,w.bgs_CheckRunned=!1,function(e){e.fn.extend({sbi_imgLiquid:function(i){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!w.bgs_CheckRunned){w.bgs_CheckRunned=!0;var i=e('<span style="background-size:cover" />');e("body").append(i),function(){var e=i[0];if(e&&window.getComputedStyle){var a=window.getComputedStyle(e,null);a&&a.backgroundSize&&(w.bgs_Available="cover"===a.backgroundSize)}}(),i.remove()}}();var a=this;return this.options=i,this.settings=e.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(i){function t(){(o.responsive||c.data("sbi_imgLiquid_oldProcessed"))&&c.data("sbi_imgLiquid_settings")&&(o=c.data("sbi_imgLiquid_settings"),d.actualSize=d.get(0).offsetWidth+d.get(0).offsetHeight/1e4,d.sizeOld&&d.actualSize!==d.sizeOld&&r(),d.sizeOld=d.actualSize,setTimeout(t,o.responsiveCheckTime))}function s(){c.data("sbi_imgLiquid_error",!0),d.addClass("sbi_imgLiquid_error"),o.onItemError&&o.onItemError(i,d,c),n()}function r(){var e,a,t,s,r,l,h,u,b=0,f=0,p=d.width(),g=d.height();void 0===c.data("owidth")&&c.data("owidth",c[0].width),void 0===c.data("oheight")&&c.data("oheight",c[0].height),o.fill===p/g>=c.data("owidth")/c.data("oheight")?(e="100%",a="auto",t=Math.floor(p),s=Math.floor(p*(c.data("oheight")/c.data("owidth")))):(e="auto",a="100%",t=Math.floor(g*(c.data("owidth")/c.data("oheight"))),s=Math.floor(g)),r=o.horizontalAlign.toLowerCase(),h=p-t,"left"===r&&(f=0),"center"===r&&(f=.5*h),"right"===r&&(f=h),-1!==r.indexOf("%")&&(r=parseInt(r.replace("%",""),10))>0&&(f=h*r*.01),l=o.verticalAlign.toLowerCase(),u=g-s,"left"===l&&(b=0),"center"===l&&(b=.5*u),"bottom"===l&&(b=u),-1!==l.indexOf("%")&&(l=parseInt(l.replace("%",""),10))>0&&(b=u*l*.01),o.hardPixels&&(e=t,a=s),c.css({width:e,height:a,"margin-left":Math.floor(f),"margin-top":Math.floor(b)}),c.data("sbi_imgLiquid_oldProcessed")||(c.fadeTo(o.fadeInTime,1),c.data("sbi_imgLiquid_oldProcessed",!0),o.removeBoxBackground&&d.css("background-image","none"),d.addClass("sbi_imgLiquid_nobgSize"),d.addClass("sbi_imgLiquid_ready")),o.onItemFinish&&o.onItemFinish(i,d,c),n()}function n(){i===a.length-1&&a.settings.onFinish&&a.settings.onFinish()}var o=a.settings,d=e(this),c=e("img:first",d);return c.length?(c.data("sbi_imgLiquid_settings")?(d.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"),o=e.extend({},c.data("sbi_imgLiquid_settings"),a.options)):o=e.extend({},a.settings,function(){var e={};if(a.settings.useDataHtmlAttr){var i=d.attr("data-sbi_imgLiquid-fill"),t=d.attr("data-sbi_imgLiquid-horizontalAlign"),s=d.attr("data-sbi_imgLiquid-verticalAlign");("true"===i||"false"===i)&&(e.fill=Boolean("true"===i)),void 0===t||"left"!==t&&"center"!==t&&"right"!==t&&-1===t.indexOf("%")||(e.horizontalAlign=t),void 0===s||"top"!==s&&"bottom"!==s&&"center"!==s&&-1===s.indexOf("%")||(e.verticalAlign=s)}return w.isIE&&a.settings.ieFadeInDisabled&&(e.fadeInTime=0),e}()),c.data("sbi_imgLiquid_settings",o),o.onItemStart&&o.onItemStart(i,d,c),void(w.bgs_Available&&o.useBackgroundSize?(-1===d.css("background-image").indexOf(encodeURI(c.attr("src")))&&d.css({"background-image":'url("'+encodeURI(c.attr("src"))+'")'}),d.css({"background-size":o.fill?"cover":"contain","background-position":(o.horizontalAlign+" "+o.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),e("a:first",d).css({display:"block",width:"100%",height:"100%"}),e("img",d).css({display:"none"}),o.onItemFinish&&o.onItemFinish(i,d,c),d.addClass("sbi_imgLiquid_bgSize"),d.addClass("sbi_imgLiquid_ready"),n()):function a(){if(c.data("oldSrc")&&c.data("oldSrc")!==c.attr("src")){var n=c.clone().removeAttr("style");return n.data("sbi_imgLiquid_settings",c.data("sbi_imgLiquid_settings")),c.parent().prepend(n),c.remove(),(c=n)[0].width=0,void setTimeout(a,10)}return c.data("sbi_imgLiquid_oldProcessed")?void r():(c.data("sbi_imgLiquid_oldProcessed",!1),c.data("oldSrc",c.attr("src")),e("img:not(:first)",d).css("display","none"),d.css({overflow:"hidden"}),c.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),c.on("error",s),c[0].onerror=s,function e(){c.data("sbi_imgLiquid_error")||c.data("sbi_imgLiquid_loaded")||c.data("sbi_imgLiquid_oldProcessed")||(d.is(":visible")&&c[0].complete&&c[0].width>0&&c[0].height>0?(c.data("sbi_imgLiquid_loaded",!0),setTimeout(r,i*o.delay)):setTimeout(e,o.timecheckvisibility))}(),void t())}())):void s()})}})}(jQuery),r=w.injectCss,b=document.getElementsByTagName("head")[0],(p=document.createElement("style")).type="text/css",p.styleSheet?p.styleSheet.cssText=r:p.appendChild(document.createTextNode(r)),b.appendChild(p),o.find(".sbi_photo").sbi_imgLiquid({fill:!0})}var y,x,I,k,S=(y=0,function(e,i){clearTimeout(y),y=setTimeout(e,i)});function j(){if("thumbnail"!==g){var e=o.find(".sbi_photo").eq(0).innerWidth(),i=sbiGetColumnCount(o,parseInt(h),parseInt(h)),a=jQuery("#sbi_images").innerWidth()-jQuery("#sbi_images").width(),t=o.find("#sbi_images").width()/i-a;e<=t&&(e=t),o.find(".sbi_photo").css("height",e);var s=o.find(".sbi_photo").eq(0).innerWidth()/2;"px"==v&&(s+=2*parseInt(_)),o.find(".sbi_owl-buttons div").css("top",s)}}function F(){o.removeClass("sbi_small sbi_medium");var e=o.find(".sbi_item").innerWidth();e>120&&e<240?o.addClass("sbi_medium"):e<=120&&o.addClass("sbi_small")}jQuery(window).resize(function(){S(function(){j(),F(),jQuery(".sbi").each(function(){var e=jQuery(this),i=jQuery(this).attr("data-sbi-index");if(sbiSizeSVG(e),"auto"===e.attr("data-res")){var a=window.sbiFeedMeta[i].minRes,t=sbiGetResolutionSettings(e,"auto",h,u,i);sbiNeedToRaiseRes(""!==t.width?t.width:sbiGetWidthForResType(t.type),a)&&(window.sbiFeedMeta[i].minRes=640,e.find(".sbi_item").each(function(){var e=jQuery(this).find(".sbi_photo").attr("data-full-res"),i=jQuery(this).find(".sbi_photo img").attr("src"),t=jQuery(this);""===e&&(i.indexOf("p"+a+"x"+a)>-1?e=i.replace("p"+a+"x"+a,"p640x640"):i.indexOf("s"+a+"x"+a)>-1&&(e=i.replace("s"+a+"x"+a,"s640x640"))),t.find(".sbi_photo img").attr("src",e),t.find(".sbi_photo").css("background-image",'url("'+e+'")')}))}})},500)}),j(),x=jQuery,I={callback:function(){},runOnLoad:!0,frequency:100,sbiPreviousVisibility:null},k={sbiCheckVisibility:function(e,i){if(jQuery.contains(document,e[0])){var a=i.sbiPreviousVisibility,t=e.is(":visible");i.sbiPreviousVisibility=t,null==a?i.runOnLoad&&i.callback(e,t):a!==t&&i.callback(e,t),setTimeout(function(){k.sbiCheckVisibility(e,i)},i.frequency)}}},x.fn.sbiVisibilityChanged=function(e){var i=x.extend({},I,e);return this.each(function(){k.sbiCheckVisibility(x(this),i)})},jQuery(".sbi").filter(":hidden").sbiVisibilityChanged({callback:function(e,i){j(),F()},runOnLoad:!1}),F(),f.disablecache||void 0===e||"fetched"!==window.sbiCacheStatuses[f.feedIndex].feed||(e(i,a,C),window.sbiCacheStatuses[f.feedIndex].feed="cached"),E="finished",sbSVGify(o)}(z,j.feed);var L=10;o.find(".sbi_transition").each(function(){var e=jQuery(this);setTimeout(function(){e.removeClass("sbi_transition")},L),L+=10}),B="",o.find("#sbi_images > .sbi_loader").remove(),o.find("#sbi_load").removeClass("sbi_hidden"),s>=l&&o.find(".sbi_load_btn").show(),setTimeout(function(){d.find(".sbi_loader").addClass("sbi_hidden"),d.find(".sbi_btn_text").removeClass("sbi_hidden")},500)}}function N(e,i){if(void 0===e.meta.error_message){var a=i.feedOptions,t="";a.headercolor.length&&(t='style="color: #'+a.headercolor+'"'),u='<a href="https://www.instagram.com/'+e.data.username+'" target="_blank" rel="noopener" title="@'+e.data.username+'" class="sbi_header_link" '+t+">",u+='<div class="sbi_header_text">';var s="";(void 0!==e.data.bio&&e.data.bio.length<1||"true"!=a.showbio)&&(s=' class="sbi_no_bio"'),u+="<h3 "+t+s+">"+e.data.username+"</h3>";var n='<p class="sbi_bio_info" ';"boxed"==a.headerstyle?n+='style="color: #'+a.headerprimarycolor+';"':n+=t,void 0!==e.data.bio&&e.data.bio.length>1&&""!=a.showbio&&"false"!=a.showbio&&(u+='<p class="sbi_bio" '+t+">"+e.data.bio+"</p>"),u+="</div>",u+='<div class="sbi_header_img">',u+='<div class="sbi_header_img_hover"><i class="sbi_new_logo"></i></div>',u+='<img src="'+e.data.profile_picture+'" alt="'+e.data.full_name+'" width="50" height="50">',u+="</div>",u+="</a>","boxed"==a.headerstyle&&(u+='<div class="sbi_header_bar" style="background: #'+a.headersecondarycolor+'">',"false"!=a.showbio&&(u+=n),u+='<a class="sbi_header_follow_btn" href="https://www.instagram.com/'+e.data.username+'" target="_blank" rel="noopener" style="color: #'+a.headercolor+"; background: #"+a.headerprimarycolor+';"><i class="sbi_new_logo"></i><span></span></div></div>'),0==r.find(".sbi_header_link").length&&r.find(".sb_instagram_header").prepend(u),r.find(".sbi_follow_btn").length&&r.find(".sbi_follow_btn a").attr("href","https://www.instagram.com/"+e.data.username),"boxed"==a.headerstyle&&r.find(".sbi_header_follow_btn").length&&r.find(".sbi_header_follow_btn span").text(r.find(".sb_instagram_header").attr("data-follow-text").replace(/\\/g,"")),r.find(".sb_instagram_header .sbi_header_link").hover(function(){r.find(".sb_instagram_header .sbi_header_img_hover").addClass("sbi_fade_in")},function(){r.find(".sb_instagram_header .sbi_header_img_hover").removeClass("sbi_fade_in")}),sbSVGify(r.find(".sb_instagram_header"))}}function G(e,a,t,r){var n=(y=e).length,o=t.getType;if(0==n)s+parseInt(t.num)>=z.data.length&&jQuery("#sbi_load .sbi_load_btn").hide();else{var d=[],l=n;jQuery.each(y,function(e,s){jQuery.ajax({method:"GET",url:s,dataType:"jsonp",success:function(n){var h=n.meta.error_message,u="",b="";if(void 0!==h){if(u+='<p><i class="fa fab fa-instagram" style="font-size: 16px; position: relative; top: 1px;"></i>&nbsp; Instagram Feed Error</p>',h.indexOf("access_token")>-1){u+="<p><b>Error: Access Token is not valid or has expired</b><br /><span>This error message is only visible to WordPress admins</span></p>",b="<p>There's an issue with the Instagram Access Token that you are using. Please obtain a new Access Token on the plugin's Settings page.<br />If you continue to have an issue with your Access Token then please see <a href='https://smashballoon.com/my-instagram-access-token-keep-expiring/' target='_blank' rel='noopener'>this FAQ</a> for more information.</p>",jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+u+b+"</div>"),sbiAddTokenToExpiredList(sb_instagram_js_options.sb_instagram_at,a);var f={action:"sbi_set_use_backup",transientName:a,context:"falsecache"};return void jQuery.ajax({url:sbiajaxurl,type:"post",data:f,success:function(e){}})}if(h.indexOf("retired")>-1)return u+="<p><b>No longer possible to display this feed</b><br /><span>This error message is only visible to WordPress admins</span></p>",b="<p>Due to changes in the Instagram API, it is no longer possible to display a feed from an Instagram account which is not your own. You can now only display your own Instagram account. Please see <a href='https://smashballoon.com/instagram-api-changes-april-4-2018/' target='_blank' rel='noopener'>this post</a> for more information.</p>",void jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+u+b+"</div>");if(void 0!==n.code&&"429"==n.code){window.sbiFeedMeta[i].error={errorMsg:"<p><b>Error: Rate Limit Reached</b><br /><span>This error is only visible to WordPress admins</span>",errorDir:"<p>Backup cache will be used for 1 hour</p>"},r.find("#sbi_mod_error").length?-1==r.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&r.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):r.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>");var f={action:"sbi_set_use_backup",transientName:a,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:f,success:function(e){}}),n="error"}else h.indexOf("user does not exist")>-1||h.indexOf("you cannot view this resource")>-1?(window.sbiFeedMeta[i].error={errorMsg:'<p><b>Error: User ID <span class="sbiErrorIds">'+window.sbiFeedMeta[i].idsInFeed[e]+"</span> does not exist, is invalid, or is private</b><br /><span>This error is only visible to WordPress admins</span>",errorDir:"<p>Please double check that the Instagram User ID you are using is valid and not from a private account. To find your User ID simply enter your Instagram user name into this <a href='https://smashballoon.com/instagram-feed/find-instagram-user-id/' target='_blank' rel='noopener'>tool</a>.</p>"},r.find("#sbi_mod_error").length?-1==r.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&r.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):r.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>"),n="error"):h.indexOf("invalid media id")>-1&&(window.sbiFeedMeta[i].error={errorMsg:'<p><b>Error: Post Id <span class="sbiErrorIds">'+window.sbiFeedMeta[i].idsInFeed[e]+"</span> does not exist or is invalid</b><br /><span>This error is only visible to WordPress admins.</span>",errorDir:"<p>Please double check the media (post) id is correct.</p>"},r.find("#sbi_mod_error").length?-1==r.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&r.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):r.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>"),n="error")}"coordinates"==o&&(n.pagination={previous_url:s}),"error"!==n&&d.push(n),0==--l&&"finished"!==E&&function(e){var i=[],s=[];jQuery.each(d,function(a,t){if("single"==e&&(t.data=[t.data]),void 0!==t.data)if(jQuery.each(t.data,function(e,i){jQuery.inArray(i.id,q)>-1||(q.push(i.id),s.push(i))}),"coordinates"==e){var r=t.data[t.data.length-1].created_time,n=t.pagination.previous_url.split("max_timestamp=")[0]+"max_timestamp="+r;i.push(n)}else"object"==typeof t.pagination&&t.pagination&&void 0!==t.pagination.next_url&&i.push(t.pagination.next_url)}),"random"!==c?s.sort(function(e,i){return i.created_time-e.created_time}):(s.sort(function(e,i){return Math.round(Math.random())-.5}),a+="!"),void 0!==d&&(d[0].data=s),void 0!==d[0].pagination&&d[0].pagination?d[0].pagination.next_url=i:d[0].pagination={next_url:""};var n=d[0];"finished"!==E&&R(n,a,t,r),V++}(o)}})})}}}window.sbiUseBackup[i]={header:r.indexOf("header")>-1,feed:r.indexOf("feed")>-1},window.sbiFeedMeta[i]={error:{},idsInFeed:[],postsInFeed:[]},setTimeout(function(){!function a(t,s){var r=0,n=jQuery(t),o="standard_resolution",d=parseInt(t.getAttribute("data-cols")),c="none",l=t.getAttribute("data-num"),h=t.getAttribute("data-id"),u="",b=s.sbiHeaderCache;s.disablecache="true"==s.disablecache,s.media="all",""!==s.sortby&&(c=s.sortby),o=sbiGetResolutionSettings(n,t.getAttribute("data-res"),d,d,i);var f=[],p=[];if(void 0!==s.feedID){var g=s.feedID.split(","),m=s.mid.split(","),_=s.callback.split(",");jQuery.each(g,function(e){f.push(g[e]+"."+m[e]+"."+_[e]),p.push(g[e])}),h=p.join(","),p=p.join(",")}else f.push(sb_instagram_js_options.sb_instagram_at);var v=h.replace(/ /g,"").split(","),w=v,y=[],x="",C=[];jQuery.each(w,function(e,a){var t=void 0!==f[e]?addLinksToPage(f[e]):addLinksToPage(f[0]);x="https://api.instagram.com/v1/users/"+a+"/media/recent?access_token="+t+"&count=33",window.sbiFeedMeta[i].idsInFeed.push(a),y.push(x),C.push(t)});var I,k={num:l,getType:"user",user_id:h,cols:d,imgRes:o,sortby:c,feedOptions:s,looparray:w},S="",j="",F={header:"",feed:""},T=S.length,L=j.length,M=40-Math.min(T+L,20),Q="sbi_";if(w=w.join().replace(/[.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""),"all"!==s.media&&(Q+=s.media.substring(0,1)),Q+=w.substring(0,M),M=Q.length,L<(M=44-M)/2?S=S.substring(0,M-L):(S=0==j.length?S.substring(0,M):S.substring(0,M/2),j=0==S.length?j.substring(0,M):j.substring(0,M/2)),Q+=S+j,F.feed=Q.substring(0,45),F.header=(I=k.looparray[0],("sbi_header_"+I).substring(0,45)),sb_instagram_js_options.sbiPageCommentCache||1!==window.sbiCommentCacheStatus||!0===window.sbiStandalone.noDB?F.comments="no":F.comments="need",!0!==window.sbiCacheStatuses[s.feedIndex].feed&&!0!==window.sbiCacheStatuses[s.feedIndex].header&&"need"!==F.comments||s.disablecache||void 0!==s.tryFetch||(!function A(t,r,n,o,d){var c=t;window.sbiCommentCacheStatus=0;var l=n[0].getAttribute("data-sbi-index");"object"==typeof t&&(c=JSON.stringify(t));var h={url:sbiajaxurl,type:"POST",async:!0,cache:!1,data:{action:"get_cache",transientName:c,useBackupHeader:window.sbiUseBackup[l].header,useBackupFeed:window.sbiUseBackup[l].feed},success:function(d){var c={};if(0===d.trim().indexOf("{")&&((d.indexOf("{%22")>-1||d.indexOf("%7B%22")>-1)&&(d=decodeURI(d)),d=(d=d.replace(/\\'/g,"'")).replace(/\\'/g,"'"),c=JSON.parse(d.trim())),"all"==o){if(void 0===c.header.error&&W(c.header,r),void 0===c.feed.error){if("finished"!==R&&G(c.feed,t,r,n),void 0!==c.warning){var l="<p><b>Cache Error: Looking for cache that doesn't exist. Now using a backup feed.</b><br /><span>This error is only visible to WordPress admins.</span>",h="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").before('<div id="sbi_mod_error">'+l+h+"</div>")}}else{s=JSON.parse(n[0].getAttribute("data-options"));var u=n[0].getAttribute("data-sbi-index");if(s.feedIndex=u,!1!==window.sbiCacheStatuses[u].feed&&"tryfetch"===c.feed.error)window.sbiCacheStatuses[u].feed=!1,n.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[u].header=!1),window.sbiCacheStatuses[u].comments="no",s.tryFetch=!0,void 0===window.sbiCacheStatuses[s.feedIndex].tryFetch&&function a(t,s){var r=0,n=jQuery(t),o="standard_resolution",d=parseInt(t.getAttribute("data-cols")),c="none",l=t.getAttribute("data-num"),h=t.getAttribute("data-id"),u="",b=s.sbiHeaderCache;s.disablecache="true"==s.disablecache,s.media="all",""!==s.sortby&&(c=s.sortby),o=sbiGetResolutionSettings(n,t.getAttribute("data-res"),d,d,i);var f=[],p=[];if(void 0!==s.feedID){var g=s.feedID.split(","),m=s.mid.split(","),_=s.callback.split(",");jQuery.each(g,function(e){f.push(g[e]+"."+m[e]+"."+_[e]),p.push(g[e])}),h=p.join(","),p=p.join(",")}else f.push(sb_instagram_js_options.sb_instagram_at);var v=h.replace(/ /g,"").split(","),w=v,y=[],x="",C=[];jQuery.each(w,function(e,a){var t=void 0!==f[e]?addLinksToPage(f[e]):addLinksToPage(f[0]);x="https://api.instagram.com/v1/users/"+a+"/media/recent?access_token="+t+"&count=33",window.sbiFeedMeta[i].idsInFeed.push(a),y.push(x),C.push(t)});var I,k={num:l,getType:"user",user_id:h,cols:d,imgRes:o,sortby:c,feedOptions:s,looparray:w},S="",j="",F={header:"",feed:""},T=S.length,L=j.length,M=40-Math.min(T+L,20),Q="sbi_";if(w=w.join().replace(/[.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""),"all"!==s.media&&(Q+=s.media.substring(0,1)),Q+=w.substring(0,M),M=Q.length,L<(M=44-M)/2?S=S.substring(0,M-L):(S=0==j.length?S.substring(0,M):S.substring(0,M/2),j=0==S.length?j.substring(0,M):j.substring(0,M/2)),Q+=S+j,F.feed=Q.substring(0,45),F.header=(I=k.looparray[0],("sbi_header_"+I).substring(0,45)),sb_instagram_js_options.sbiPageCommentCache||1!==window.sbiCommentCacheStatus||!0===window.sbiStandalone.noDB?F.comments="no":F.comments="need",!0!==window.sbiCacheStatuses[s.feedIndex].feed&&!0!==window.sbiCacheStatuses[s.feedIndex].header&&"need"!==F.comments||s.disablecache||void 0!==s.tryFetch||(D(F,k,n,"all",y),F.comments="no"),!1===window.sbiCacheStatuses[s.feedIndex].feed&&"fetched"!==window.sbiCacheStatuses[s.feedIndex].feed&&(window.sbiCacheStatuses[s.feedIndex].feed="fetched",window.sbiCacheStatuses[s.feedIndex].tryFetch="done",W(y,F.feed,k,n)),!window.sbiCacheStatuses[s.feedIndex].header&&"fetched"!==window.sbiCacheStatuses[s.feedIndex].header&&"user"===k.getType){window.sbiCacheStatuses[s.feedIndex].header="fetched";var A=f[0].split(".");k.user_id=A[0];var z="https://api.instagram.com/v1/users/"+k.user_id+"?access_token="+addLinksToPage(f[0]);jQuery.ajax({method:"GET",url:z,dataType:"jsonp",success:function(e){G(e,k),void 0!==e.data&&(s.disablecache||"cached"===window.sbiCacheStatuses[s.feedIndex].header||void 0===e.data.username||void 0!==e.data.pagination||(window.sbiCacheStatuses[s.feedIndex].header="cached",sbiCachePhotos(e,F.header,[addLinksToPage(f[0])])))}})}var P="",O=!1,q=!1,B=[],E="",V=0,R=1;function N(a,s,n,o){var d=o.find("#sbi_load .sbi_load_btn"),l=parseInt(n.num),h=parseInt(n.cols),u="auto",f=n.feedOptions,p=0,g=n.imgRes,m=(f.type,parseInt(f.maxrequests)),_=f.imagepadding,v=f.imagepaddingunit,w=n.looparray,y=(f.headerstyle,f.headerprimarycolor,f.headersecondarycolor,f.media);d.find(".sbi_loader").css("background-color",d.css("color")),""==P?P=a:1==O&&(jQuery.each(a.data,function(e,i){P.data.push(i)}),O=!1);var x=a.pagination.next_url;void 0===x||0==x.length?q=!0:d.show(),void 0!==a.pagination&&(P.pagination=a.pagination),""!==f.sortby&&(c=f.sortby),f.hovercolor;var I=r,k=[];if(0==o.find(".sbi_header_link").length){var S="https://api.instagram.com/v1/users/"+w[0]+"?access_token="+sb_instagram_js_options.sb_instagram_at,j="sbi_header_"+w[0];j=j.substring(0,45),("true"!=b||f.disablecache)&&o.find(".sb_instagram_header").length&&jQuery.ajax({method:"GET",url:S,dataType:"jsonp",success:function(e){G(e,n),f.disablecache||"cached"===window.sbiCacheStatuses[f.feedIndex].header||void 0===e.data||void 0===e.data.username||void 0!==e.data.pagination||(window.sbiCacheStatuses[f.feedIndex].header="cached",sbiCachePhotos(e,j,[sb_instagram_js_options.sb_instagram_at]))}})}if(jQuery.each(P.data,function(e,a){if("videos"==y&&"video"!==a.type&&(removePhoto=!0),"photos"==y&&"image"!==a.type&&"carousel"!==a.type&&(removePhoto=!0),!(++p>I-V+l||p<=I||(r++,i=o.attr("data-sbi-index"),jQuery.inArray(a.id,window.sbiFeedMeta[i].postsInFeed)>-1))){window.sbiFeedMeta[i].postsInFeed.push(a.id);var s=!1;"carousel"===a.type&&void 0!==a.carousel_media&&jQuery.each(a.carousel_media,function(e,i){void 0!==i.videos&&0===e&&(s=!0)});var n=a.images.standard_resolution.url;switch(g.type){case"thumbnail":n=a.images.thumbnail.url;break;case"low_resolution":n=a.images.low_resolution.url;break;case"auto":var d=sbiGetBestResolutionForAuto((g=sbiGetResolutionSettings(o,t.getAttribute("data-res"),h,u,i)).width,a.images.standard_resolution.width,a.images.standard_resolution.height,o.hasClass("sbi_highlight"));switch(d){case 320:n=a.images.low_resolution.url;break;case 150:n=a.images.thumbnail.url}}n=n.split("?ig_cache_key")[0];var c="",b=a.created_time;null!=a.caption&&""!=a.caption&&(c=(c=void 0!==a.caption?a.caption.text.replace(/"/g,"&quot;"):"").replace(/\n/g," "));var f=s?" sbi_carousel_vid_first":"",m="carousel"===a.type?'<i class="fa fa-clone sbi_carousel_icon" aria-hidden="true"></i>':"",_="video"===a.type||f?'<i class="fa fa-play sbi_playbtn"></i>':"";E+='<div class="sbi_item sbi_type_'+a.type+' sbi_new sbi_transition" id="sbi_'+a.id+'" data-date="'+b+'"><div class="sbi_photo_wrap"><a class="sbi_photo" href="'+a.link+'" target="_blank" rel="noopener" data-full-res="'+a.images.standard_resolution.url+'">'+m+_+'<img src="'+n+'" alt="'+c.replace(/<>/g," ")+'" width="200" height="200" /></a></div></div>'}}),k.reverse(),jQuery.each(k,function(e,i){P.data.splice(i,1)}),r-I<l&&(V+=r-I),r-I<l&&V<l&&R<m&&!q){var T=P.pagination.next_url;window.sbiCacheStatuses[f.feedIndex].feed="fetched",W(T,F.feed,n,o),O=!0}else{o.find("#sbi_images").append(E),function(i,t){sbiSizeSVG(o),o.find(".sbi_item").each(function(){var e=jQuery(this);e.find(".sbi_photo").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)})}),o.find("#sbi_images .sbi_item.sbi_new").sort(function(e,i){var a=jQuery(e).attr("data-date"),t=jQuery(i).attr("data-date");return"none"==c?t-a:Math.round(Math.random())-.5}).appendTo(o.find("#sbi_images")),setTimeout(function(){jQuery("#sbi_images .sbi_item.sbi_new").removeClass("sbi_new")},500);var s,b,p,m=i.data.length;if(r>=m&&q&&d.hide(),o.find("#sbi_load .sbi_load_btn").off().on("click",function(){jQuery(this).find(".sbi_loader").removeClass("sbi_hidden"),jQuery(this).find(".sbi_btn_text").addClass("sbi_hidden"),V=0,r=parseInt(r),m=i.data.length,r+l<m||q?("finished"!==V&&N(a,t,n,o),O=!1,r>=m&&q&&d.hide()):(T=i.pagination.next_url,window.sbiCacheStatuses[f.feedIndex].feed="fetched",W(T,t,n,o),O=!0,R=0)}),"function"==typeof sbi_custom_js&&setTimeout(function(){sbi_custom_js()},100),"thumbnail"!==g){var w=w||{VER:"0.9.944"};w.bgs_Available=!1,w.bgs_CheckRunned=!1,function(e){e.fn.extend({sbi_imgLiquid:function(i){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!w.bgs_CheckRunned){w.bgs_CheckRunned=!0;var i=e('<span style="background-size:cover" />');e("body").append(i),function(){var e=i[0];if(e&&window.getComputedStyle){var a=window.getComputedStyle(e,null);a&&a.backgroundSize&&(w.bgs_Available="cover"===a.backgroundSize)}}(),i.remove()}}();var a=this;return this.options=i,this.settings=e.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(i){function t(){(o.responsive||c.data("sbi_imgLiquid_oldProcessed"))&&c.data("sbi_imgLiquid_settings")&&(o=c.data("sbi_imgLiquid_settings"),d.actualSize=d.get(0).offsetWidth+d.get(0).offsetHeight/1e4,d.sizeOld&&d.actualSize!==d.sizeOld&&r(),d.sizeOld=d.actualSize,setTimeout(t,o.responsiveCheckTime))}function s(){c.data("sbi_imgLiquid_error",!0),d.addClass("sbi_imgLiquid_error"),o.onItemError&&o.onItemError(i,d,c),n()}function r(){var e,a,t,s,r,l,h,u,b=0,f=0,p=d.width(),g=d.height();void 0===c.data("owidth")&&c.data("owidth",c[0].width),void 0===c.data("oheight")&&c.data("oheight",c[0].height),o.fill===p/g>=c.data("owidth")/c.data("oheight")?(e="100%",a="auto",t=Math.floor(p),s=Math.floor(p*(c.data("oheight")/c.data("owidth")))):(e="auto",a="100%",t=Math.floor(g*(c.data("owidth")/c.data("oheight"))),s=Math.floor(g)),r=o.horizontalAlign.toLowerCase(),h=p-t,"left"===r&&(f=0),"center"===r&&(f=.5*h),"right"===r&&(f=h),-1!==r.indexOf("%")&&(r=parseInt(r.replace("%",""),10))>0&&(f=h*r*.01),l=o.verticalAlign.toLowerCase(),u=g-s,"left"===l&&(b=0),"center"===l&&(b=.5*u),"bottom"===l&&(b=u),-1!==l.indexOf("%")&&(l=parseInt(l.replace("%",""),10))>0&&(b=u*l*.01),o.hardPixels&&(e=t,a=s),c.css({width:e,height:a,"margin-left":Math.floor(f),"margin-top":Math.floor(b)}),c.data("sbi_imgLiquid_oldProcessed")||(c.fadeTo(o.fadeInTime,1),c.data("sbi_imgLiquid_oldProcessed",!0),o.removeBoxBackground&&d.css("background-image","none"),d.addClass("sbi_imgLiquid_nobgSize"),d.addClass("sbi_imgLiquid_ready")),o.onItemFinish&&o.onItemFinish(i,d,c),n()}function n(){i===a.length-1&&a.settings.onFinish&&a.settings.onFinish()}var o=a.settings,d=e(this),c=e("img:first",d);return c.length?(c.data("sbi_imgLiquid_settings")?(d.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"),o=e.extend({},c.data("sbi_imgLiquid_settings"),a.options)):o=e.extend({},a.settings,function(){var e={};if(a.settings.useDataHtmlAttr){var i=d.attr("data-sbi_imgLiquid-fill"),t=d.attr("data-sbi_imgLiquid-horizontalAlign"),s=d.attr("data-sbi_imgLiquid-verticalAlign");("true"===i||"false"===i)&&(e.fill=Boolean("true"===i)),void 0===t||"left"!==t&&"center"!==t&&"right"!==t&&-1===t.indexOf("%")||(e.horizontalAlign=t),void 0===s||"top"!==s&&"bottom"!==s&&"center"!==s&&-1===s.indexOf("%")||(e.verticalAlign=s)}return w.isIE&&a.settings.ieFadeInDisabled&&(e.fadeInTime=0),e}()),c.data("sbi_imgLiquid_settings",o),o.onItemStart&&o.onItemStart(i,d,c),void(w.bgs_Available&&o.useBackgroundSize?(-1===d.css("background-image").indexOf(encodeURI(c.attr("src")))&&d.css({"background-image":'url("'+encodeURI(c.attr("src"))+'")'}),d.css({"background-size":o.fill?"cover":"contain","background-position":(o.horizontalAlign+" "+o.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),e("a:first",d).css({display:"block",width:"100%",height:"100%"}),e("img",d).css({display:"none"}),o.onItemFinish&&o.onItemFinish(i,d,c),d.addClass("sbi_imgLiquid_bgSize"),d.addClass("sbi_imgLiquid_ready"),n()):function a(){if(c.data("oldSrc")&&c.data("oldSrc")!==c.attr("src")){var n=c.clone().removeAttr("style");return n.data("sbi_imgLiquid_settings",c.data("sbi_imgLiquid_settings")),c.parent().prepend(n),c.remove(),(c=n)[0].width=0,void setTimeout(a,10)}return c.data("sbi_imgLiquid_oldProcessed")?void r():(c.data("sbi_imgLiquid_oldProcessed",!1),c.data("oldSrc",c.attr("src")),e("img:not(:first)",d).css("display","none"),d.css({overflow:"hidden"}),c.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),c.on("error",s),c[0].onerror=s,function e(){c.data("sbi_imgLiquid_error")||c.data("sbi_imgLiquid_loaded")||c.data("sbi_imgLiquid_oldProcessed")||(d.is(":visible")&&c[0].complete&&c[0].width>0&&c[0].height>0?(c.data("sbi_imgLiquid_loaded",!0),setTimeout(r,i*o.delay)):setTimeout(e,o.timecheckvisibility))}(),void t())}())):void s()})}})}(jQuery),s=w.injectCss,b=document.getElementsByTagName("head")[0],(p=document.createElement("style")).type="text/css",p.styleSheet?p.styleSheet.cssText=s:p.appendChild(document.createTextNode(s)),b.appendChild(p),o.find(".sbi_photo").sbi_imgLiquid({fill:!0})}var y,x,I,k,S=(y=0,function(e,i){clearTimeout(y),y=setTimeout(e,i)});function j(){if("thumbnail"!==g){var e=o.find(".sbi_photo").eq(0).innerWidth(),i=sbiGetColumnCount(o,parseInt(h),parseInt(h)),a=jQuery("#sbi_images").innerWidth()-jQuery("#sbi_images").width(),t=o.find("#sbi_images").width()/i-a;e<=t&&(e=t),o.find(".sbi_photo").css("height",e);var s=o.find(".sbi_photo").eq(0).innerWidth()/2;"px"==v&&(s+=2*parseInt(_)),o.find(".sbi_owl-buttons div").css("top",s)}}function F(){o.removeClass("sbi_small sbi_medium");var e=o.find(".sbi_item").innerWidth();e>120&&e<240?o.addClass("sbi_medium"):e<=120&&o.addClass("sbi_small")}jQuery(window).resize(function(){S(function(){j(),F(),jQuery(".sbi").each(function(){var e=jQuery(this),i=jQuery(this).attr("data-sbi-index");if(sbiSizeSVG(e),"auto"===e.attr("data-res")){var a=window.sbiFeedMeta[i].minRes,t=sbiGetResolutionSettings(e,"auto",h,u,i);sbiNeedToRaiseRes(""!==t.width?t.width:sbiGetWidthForResType(t.type),a)&&(window.sbiFeedMeta[i].minRes=640,e.find(".sbi_item").each(function(){var e=jQuery(this).find(".sbi_photo").attr("data-full-res"),i=jQuery(this).find(".sbi_photo img").attr("src"),t=jQuery(this);""===e&&(i.indexOf("p"+a+"x"+a)>-1?e=i.replace("p"+a+"x"+a,"p640x640"):i.indexOf("s"+a+"x"+a)>-1&&(e=i.replace("s"+a+"x"+a,"s640x640"))),t.find(".sbi_photo img").attr("src",e),t.find(".sbi_photo").css("background-image",'url("'+e+'")')}))}})},500)}),j(),x=jQuery,I={callback:function(){},runOnLoad:!0,frequency:100,sbiPreviousVisibility:null},k={sbiCheckVisibility:function(e,i){if(jQuery.contains(document,e[0])){var a=i.sbiPreviousVisibility,t=e.is(":visible");i.sbiPreviousVisibility=t,null==a?i.runOnLoad&&i.callback(e,t):a!==t&&i.callback(e,t),setTimeout(function(){k.sbiCheckVisibility(e,i)},i.frequency)}}},x.fn.sbiVisibilityChanged=function(e){var i=x.extend({},I,e);return this.each(function(){k.sbiCheckVisibility(x(this),i)})},jQuery(".sbi").filter(":hidden").sbiVisibilityChanged({callback:function(e,i){j(),F()},runOnLoad:!1}),F(),f.disablecache||void 0===e||"fetched"!==window.sbiCacheStatuses[f.feedIndex].feed||(e(i,t,C),window.sbiCacheStatuses[f.feedIndex].feed="cached"),V="finished",sbSVGify(o)}(P,F.feed);var L=10;o.find(".sbi_transition").each(function(){var e=jQuery(this);setTimeout(function(){e.removeClass("sbi_transition")},L),L+=10}),E="",o.find("#sbi_images > .sbi_loader").remove(),o.find("#sbi_load").removeClass("sbi_hidden"),r>=l&&o.find(".sbi_load_btn").show(),setTimeout(function(){d.find(".sbi_loader").addClass("sbi_hidden"),d.find(".sbi_btn_text").removeClass("sbi_hidden")},500)}}function G(e,i){if(void 0===e.meta.error_message){var a=i.feedOptions,t="";a.headercolor.length&&(t='style="color: #'+a.headercolor+'"'),u='<a href="https://www.instagram.com/'+e.data.username+'" target="_blank" rel="noopener" title="@'+e.data.username+'" class="sbi_header_link" '+t+">",u+='<div class="sbi_header_text">';var s="";(void 0!==e.data.bio&&e.data.bio.length<1||"true"!=a.showbio)&&(s=' class="sbi_no_bio"'),u+="<h3 "+t+s+">"+e.data.username+"</h3>";var r='<p class="sbi_bio_info" ';"boxed"==a.headerstyle?r+='style="color: #'+a.headerprimarycolor+';"':r+=t,void 0!==e.data.bio&&e.data.bio.length>1&&""!=a.showbio&&"false"!=a.showbio&&(u+='<p class="sbi_bio" '+t+">"+e.data.bio+"</p>"),u+="</div>",u+='<div class="sbi_header_img">',u+='<div class="sbi_header_img_hover"><i class="sbi_new_logo"></i></div>',u+='<img src="'+e.data.profile_picture+'" alt="'+e.data.full_name+'" width="50" height="50">',u+="</div>",u+="</a>","boxed"==a.headerstyle&&(u+='<div class="sbi_header_bar" style="background: #'+a.headersecondarycolor+'">',"false"!=a.showbio&&(u+=r),u+='<a class="sbi_header_follow_btn" href="https://www.instagram.com/'+e.data.username+'" target="_blank" rel="noopener" style="color: #'+a.headercolor+"; background: #"+a.headerprimarycolor+';"><i class="sbi_new_logo"></i><span></span></div></div>'),0==n.find(".sbi_header_link").length&&n.find(".sb_instagram_header").prepend(u),n.find(".sbi_follow_btn").length&&n.find(".sbi_follow_btn a").attr("href","https://www.instagram.com/"+e.data.username),"boxed"==a.headerstyle&&n.find(".sbi_header_follow_btn").length&&n.find(".sbi_header_follow_btn span").text(n.find(".sb_instagram_header").attr("data-follow-text").replace(/\\/g,"")),n.find(".sb_instagram_header .sbi_header_link").hover(function(){n.find(".sb_instagram_header .sbi_header_img_hover").addClass("sbi_fade_in")},function(){n.find(".sb_instagram_header .sbi_header_img_hover").removeClass("sbi_fade_in")}),sbSVGify(n.find(".sb_instagram_header"))}}function W(e,a,t,s){var n=(y=e).length,o=t.getType;if(0==n)r+parseInt(t.num)>=P.data.length&&jQuery("#sbi_load .sbi_load_btn").hide();else{var d=[],l=n;jQuery.each(y,function(e,r){jQuery.ajax({method:"GET",url:r,dataType:"jsonp",success:function(n){var h=n.meta.error_message,u="",b="";if(void 0!==h){if(u+='<p><i class="fa fab fa-instagram" style="font-size: 16px; position: relative; top: 1px;"></i>&nbsp; Instagram Feed Error</p>',h.indexOf("access_token")>-1){u+="<p><b>Error: Access Token is not valid or has expired</b><br /><span>This error message is only visible to WordPress admins</span></p>",b="<p>There's an issue with the Instagram Access Token that you are using. Please obtain a new Access Token on the plugin's Settings page.<br />If you continue to have an issue with your Access Token then please see <a href='https://smashballoon.com/my-instagram-access-token-keep-expiring/' target='_blank' rel='noopener'>this FAQ</a> for more information.</p>",jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+u+b+"</div>"),sbiAddTokenToExpiredList(sb_instagram_js_options.sb_instagram_at,a);var f={action:"sbi_set_use_backup",transientName:a,context:"falsecache"};return void jQuery.ajax({url:sbiajaxurl,type:"post",data:f,success:function(e){}})}if(h.indexOf("retired")>-1)return u+="<p><b>No longer possible to display this feed</b><br /><span>This error message is only visible to WordPress admins</span></p>",b="<p>Due to changes in the Instagram API, it is no longer possible to display a feed from an Instagram account which is not your own. You can now only display your own Instagram account. Please see <a href='https://smashballoon.com/instagram-api-changes-april-4-2018/' target='_blank' rel='noopener'>this post</a> for more information.</p>",void jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+u+b+"</div>");if(void 0!==n.code&&"429"==n.code){window.sbiFeedMeta[i].error={errorMsg:"<p><b>Error: Rate Limit Reached</b><br /><span>This error is only visible to WordPress admins</span>",errorDir:"<p>Backup cache will be used for 1 hour</p>"},s.find("#sbi_mod_error").length?-1==s.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&s.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):s.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>");var f={action:"sbi_set_use_backup",transientName:a,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:f,success:function(e){}}),n="error"}else h.indexOf("user does not exist")>-1||h.indexOf("you cannot view this resource")>-1?(window.sbiFeedMeta[i].error={errorMsg:'<p><b>Error: User ID <span class="sbiErrorIds">'+window.sbiFeedMeta[i].idsInFeed[e]+"</span> does not exist, is invalid, or is private</b><br /><span>This error is only visible to WordPress admins</span>",errorDir:"<p>Please double check that the Instagram User ID you are using is valid and not from a private account. To find your User ID simply enter your Instagram user name into this <a href='https://smashballoon.com/instagram-feed/find-instagram-user-id/' target='_blank' rel='noopener'>tool</a>.</p>"},s.find("#sbi_mod_error").length?-1==s.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&s.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):s.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>"),n="error"):h.indexOf("invalid media id")>-1&&(window.sbiFeedMeta[i].error={errorMsg:'<p><b>Error: Post Id <span class="sbiErrorIds">'+window.sbiFeedMeta[i].idsInFeed[e]+"</span> does not exist or is invalid</b><br /><span>This error is only visible to WordPress admins.</span>",errorDir:"<p>Please double check the media (post) id is correct.</p>"},s.find("#sbi_mod_error").length?-1==s.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&s.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):s.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>"),n="error")}"coordinates"==o&&(n.pagination={previous_url:r}),"error"!==n&&d.push(n),0==--l&&"finished"!==V&&function(e){var i=[],r=[];jQuery.each(d,function(a,t){if("single"==e&&(t.data=[t.data]),void 0!==t.data)if(jQuery.each(t.data,function(e,i){jQuery.inArray(i.id,B)>-1||(B.push(i.id),r.push(i))}),"coordinates"==e){var s=t.data[t.data.length-1].created_time,n=t.pagination.previous_url.split("max_timestamp=")[0]+"max_timestamp="+s;i.push(n)}else"object"==typeof t.pagination&&t.pagination&&void 0!==t.pagination.next_url&&i.push(t.pagination.next_url)}),"random"!==c?r.sort(function(e,i){return i.created_time-e.created_time}):(r.sort(function(e,i){return Math.round(Math.random())-.5}),a+="!"),void 0!==d&&(d[0].data=r),void 0!==d[0].pagination&&d[0].pagination?d[0].pagination.next_url=i:d[0].pagination={next_url:""};var n=d[0];"finished"!==V&&N(n,a,t,s),R++}(o)}})})}}function D(e,i,t,r,n){var o=e;window.sbiCommentCacheStatus=0;var d=t[0].getAttribute("data-sbi-index");"object"==typeof e&&(o=JSON.stringify(e));var c={url:sbiajaxurl,type:"POST",async:!0,cache:!1,data:{action:"get_cache",transientName:o,useBackupHeader:window.sbiUseBackup[d].header,useBackupFeed:window.sbiUseBackup[d].feed},success:function(n){var o={};if(0===n.trim().indexOf("{")&&((n.indexOf("{%22")>-1||n.indexOf("%7B%22")>-1)&&(n=decodeURI(n)),n=(n=n.replace(/\\'/g,"'")).replace(/\\'/g,"'"),o=JSON.parse(n.trim())),"all"==r){if(void 0===o.header.error&&G(o.header,i),void 0===o.feed.error){if("finished"!==V&&N(o.feed,e,i,t),void 0!==o.warning){var d="<p><b>Cache Error: Looking for cache that doesn't exist. Now using a backup feed.</b><br /><span>This error is only visible to WordPress admins.</span>",c="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").before('<div id="sbi_mod_error">'+d+c+"</div>")}}else{s=JSON.parse(t[0].getAttribute("data-options"));var l=t[0].getAttribute("data-sbi-index");if(s.feedIndex=l,!1!==window.sbiCacheStatuses[l].feed&&"tryfetch"===o.feed.error)window.sbiCacheStatuses[l].feed=!1,t.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[l].header=!1),window.sbiCacheStatuses[l].comments="no",s.tryFetch=!0,void 0===window.sbiCacheStatuses[s.feedIndex].tryFetch&&a(t[0],s);else if(!0===window.sbiCacheStatuses[l].feed){var d="<p><b>Cache Error: Looking for cache that doesn't exist</b><br /><span>This error is only visible to WordPress admins.</span>",c="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+d+c+"</div>");var h={action:"sbi_set_use_backup",transientName:e,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:h,success:function(e){}})}}if("tryfetch"===o.header.error){s=JSON.parse(t[0].getAttribute("data-options"));var l=t[0].getAttribute("data-sbi-index");s.feedIndex=l,!1!==window.sbiCacheStatuses[l].header&&(t.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[l].header=!1,s.tryFetch=!0,void 0===window.sbiCacheStatuses[s.feedIndex].tryFetch&&a(t[0],s)))}void 0===o.comments.error&&(sb_instagram_js_options.sbiPageCommentCache=o.comments)}else"header"==r?G(o,i):"finished"!==V&&N(o,e,i,t)},error:function(e,i,a){console.log(a)}};jQuery.ajax(c)}}(n[0],s);else if(!0===window.sbiCacheStatuses[u].feed){var l="<p><b>Cache Error: Looking for cache that doesn't exist</b><br /><span>This error is only visible to WordPress admins.</span>",h="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+l+h+"</div>");var b={action:"sbi_set_use_backup",transientName:t,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:b,success:function(e){}})}}if("tryfetch"===c.header.error){s=JSON.parse(n[0].getAttribute("data-options"));var u=n[0].getAttribute("data-sbi-index");s.feedIndex=u,!1!==window.sbiCacheStatuses[u].header&&(n.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[u].header=!1,s.tryFetch=!0,void 0===window.sbiCacheStatuses[s.feedIndex].tryFetch&&a(n[0],s)))}void 0===c.comments.error&&(sb_instagram_js_options.sbiPageCommentCache=c.comments)}else"header"==o?W(c,r):"finished"!==R&&G(c,t,r,n)},error:function(e,i,a){console.log(a)}};jQuery.ajax(h)}(F,k,n,"all"),F.comments="no"),!1===window.sbiCacheStatuses[s.feedIndex].feed&&"fetched"!==window.sbiCacheStatuses[s.feedIndex].feed&&(window.sbiCacheStatuses[s.feedIndex].feed="fetched",window.sbiCacheStatuses[s.feedIndex].tryFetch="done",D(y,F.feed,k,n)),!window.sbiCacheStatuses[s.feedIndex].header&&"fetched"!==window.sbiCacheStatuses[s.feedIndex].header&&"user"===k.getType){window.sbiCacheStatuses[s.feedIndex].header="fetched";var z=f[0].split(".");k.user_id=z[0];var P="https://api.instagram.com/v1/users/"+k.user_id+"?access_token="+addLinksToPage(f[0]);jQuery.ajax({method:"GET",url:P,dataType:"jsonp",success:function(e){W(e,k),void 0!==e.data&&(s.disablecache||"cached"===window.sbiCacheStatuses[s.feedIndex].header||void 0===e.data.username||void 0!==e.data.pagination||(window.sbiCacheStatuses[s.feedIndex].header="cached",sbiCachePhotos(e,F.header,[addLinksToPage(f[0])])))}})}var O="",q=!1,B=!1,E=[],V="",R=0,N=1;function G(a,s,n,o){var d=o.find("#sbi_load .sbi_load_btn"),l=parseInt(n.num),h=parseInt(n.cols),u="auto",f=n.feedOptions,p=0,g=n.imgRes,m=(f.type,parseInt(f.maxrequests)),_=f.imagepadding,v=f.imagepaddingunit,w=n.looparray,y=(f.headerstyle,f.headerprimarycolor,f.headersecondarycolor,f.media);d.find(".sbi_loader").css("background-color",d.css("color")),""==O?O=a:1==q&&(jQuery.each(a.data,function(e,i){O.data.push(i)}),q=!1);var x=a.pagination.next_url;void 0===x||0==x.length?B=!0:d.show(),void 0!==a.pagination&&(O.pagination=a.pagination),""!==f.sortby&&(c=f.sortby),f.hovercolor;var I=r,k=[];if(0==o.find(".sbi_header_link").length){var S="https://api.instagram.com/v1/users/"+w[0]+"?access_token="+sb_instagram_js_options.sb_instagram_at,j="sbi_header_"+w[0];j=j.substring(0,45),("true"!=b||f.disablecache)&&o.find(".sb_instagram_header").length&&jQuery.ajax({method:"GET",url:S,dataType:"jsonp",success:function(e){W(e,n),f.disablecache||"cached"===window.sbiCacheStatuses[f.feedIndex].header||void 0===e.data||void 0===e.data.username||void 0!==e.data.pagination||(window.sbiCacheStatuses[f.feedIndex].header="cached",sbiCachePhotos(e,j,[sb_instagram_js_options.sb_instagram_at]))}})}if(jQuery.each(O.data,function(e,a){if("videos"==y&&"video"!==a.type&&(removePhoto=!0),"photos"==y&&"image"!==a.type&&"carousel"!==a.type&&(removePhoto=!0),!(++p>I-R+l||p<=I||(r++,i=o.attr("data-sbi-index"),jQuery.inArray(a.id,window.sbiFeedMeta[i].postsInFeed)>-1))){window.sbiFeedMeta[i].postsInFeed.push(a.id);var s=!1;"carousel"===a.type&&void 0!==a.carousel_media&&jQuery.each(a.carousel_media,function(e,i){void 0!==i.videos&&0===e&&(s=!0)});var n=a.images.standard_resolution.url;switch(g.type){case"thumbnail":n=a.images.thumbnail.url;break;case"low_resolution":n=a.images.low_resolution.url;break;case"auto":var d=sbiGetBestResolutionForAuto((g=sbiGetResolutionSettings(o,t.getAttribute("data-res"),h,u,i)).width,a.images.standard_resolution.width,a.images.standard_resolution.height,o.hasClass("sbi_highlight"));switch(d){case 320:n=a.images.low_resolution.url;break;case 150:n=a.images.thumbnail.url}}n=n.split("?ig_cache_key")[0];var c="",b=a.created_time;null!=a.caption&&""!=a.caption&&(c=(c=void 0!==a.caption?a.caption.text.replace(/"/g,"&quot;"):"").replace(/\n/g," "));var f=s?" sbi_carousel_vid_first":"",m="carousel"===a.type?'<i class="fa fa-clone sbi_carousel_icon" aria-hidden="true"></i>':"",_="video"===a.type||f?'<i class="fa fa-play sbi_playbtn"></i>':"";V+='<div class="sbi_item sbi_type_'+a.type+' sbi_new sbi_transition" id="sbi_'+a.id+'" data-date="'+b+'"><div class="sbi_photo_wrap"><a class="sbi_photo" href="'+a.link+'" target="_blank" rel="noopener" data-full-res="'+a.images.standard_resolution.url+'">'+m+_+'<img src="'+n+'" alt="'+c.replace(/<>/g," ")+'" width="200" height="200" /></a></div></div>'}}),k.reverse(),jQuery.each(k,function(e,i){O.data.splice(i,1)}),r-I<l&&(R+=r-I),r-I<l&&R<l&&N<m&&!B){var T=O.pagination.next_url;window.sbiCacheStatuses[f.feedIndex].feed="fetched",D(T,F.feed,n,o),q=!0}else{o.find("#sbi_images").append(V),function(i,t){sbiSizeSVG(o),o.find(".sbi_item").each(function(){var e=jQuery(this);e.find(".sbi_photo").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)})}),o.find("#sbi_images .sbi_item.sbi_new").sort(function(e,i){var a=jQuery(e).attr("data-date"),t=jQuery(i).attr("data-date");return"none"==c?t-a:Math.round(Math.random())-.5}).appendTo(o.find("#sbi_images")),setTimeout(function(){jQuery("#sbi_images .sbi_item.sbi_new").removeClass("sbi_new")},500);var s,b,p,m=i.data.length;if(r>=m&&B&&d.hide(),o.find("#sbi_load .sbi_load_btn").off().on("click",function(){jQuery(this).find(".sbi_loader").removeClass("sbi_hidden"),jQuery(this).find(".sbi_btn_text").addClass("sbi_hidden"),R=0,r=parseInt(r),m=i.data.length,r+l<m||B?("finished"!==R&&G(a,t,n,o),q=!1,r>=m&&B&&d.hide()):(T=i.pagination.next_url,window.sbiCacheStatuses[f.feedIndex].feed="fetched",D(T,t,n,o),q=!0,N=0)}),"function"==typeof sbi_custom_js&&setTimeout(function(){sbi_custom_js()},100),"thumbnail"!==g){var w=w||{VER:"0.9.944"};w.bgs_Available=!1,w.bgs_CheckRunned=!1,function(e){e.fn.extend({sbi_imgLiquid:function(i){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!w.bgs_CheckRunned){w.bgs_CheckRunned=!0;var i=e('<span style="background-size:cover" />');e("body").append(i),function(){var e=i[0];if(e&&window.getComputedStyle){var a=window.getComputedStyle(e,null);a&&a.backgroundSize&&(w.bgs_Available="cover"===a.backgroundSize)}}(),i.remove()}}();var a=this;return this.options=i,this.settings=e.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(i){function t(){(o.responsive||c.data("sbi_imgLiquid_oldProcessed"))&&c.data("sbi_imgLiquid_settings")&&(o=c.data("sbi_imgLiquid_settings"),d.actualSize=d.get(0).offsetWidth+d.get(0).offsetHeight/1e4,d.sizeOld&&d.actualSize!==d.sizeOld&&r(),d.sizeOld=d.actualSize,setTimeout(t,o.responsiveCheckTime))}function s(){c.data("sbi_imgLiquid_error",!0),d.addClass("sbi_imgLiquid_error"),o.onItemError&&o.onItemError(i,d,c),n()}function r(){var e,a,t,s,r,l,h,u,b=0,f=0,p=d.width(),g=d.height();void 0===c.data("owidth")&&c.data("owidth",c[0].width),void 0===c.data("oheight")&&c.data("oheight",c[0].height),o.fill===p/g>=c.data("owidth")/c.data("oheight")?(e="100%",a="auto",t=Math.floor(p),s=Math.floor(p*(c.data("oheight")/c.data("owidth")))):(e="auto",a="100%",t=Math.floor(g*(c.data("owidth")/c.data("oheight"))),s=Math.floor(g)),r=o.horizontalAlign.toLowerCase(),h=p-t,"left"===r&&(f=0),"center"===r&&(f=.5*h),"right"===r&&(f=h),-1!==r.indexOf("%")&&(r=parseInt(r.replace("%",""),10))>0&&(f=h*r*.01),l=o.verticalAlign.toLowerCase(),u=g-s,"left"===l&&(b=0),"center"===l&&(b=.5*u),"bottom"===l&&(b=u),-1!==l.indexOf("%")&&(l=parseInt(l.replace("%",""),10))>0&&(b=u*l*.01),o.hardPixels&&(e=t,a=s),c.css({width:e,height:a,"margin-left":Math.floor(f),"margin-top":Math.floor(b)}),c.data("sbi_imgLiquid_oldProcessed")||(c.fadeTo(o.fadeInTime,1),c.data("sbi_imgLiquid_oldProcessed",!0),o.removeBoxBackground&&d.css("background-image","none"),d.addClass("sbi_imgLiquid_nobgSize"),d.addClass("sbi_imgLiquid_ready")),o.onItemFinish&&o.onItemFinish(i,d,c),n()}function n(){i===a.length-1&&a.settings.onFinish&&a.settings.onFinish()}var o=a.settings,d=e(this),c=e("img:first",d);return c.length?(c.data("sbi_imgLiquid_settings")?(d.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"),o=e.extend({},c.data("sbi_imgLiquid_settings"),a.options)):o=e.extend({},a.settings,function(){var e={};if(a.settings.useDataHtmlAttr){var i=d.attr("data-sbi_imgLiquid-fill"),t=d.attr("data-sbi_imgLiquid-horizontalAlign"),s=d.attr("data-sbi_imgLiquid-verticalAlign");("true"===i||"false"===i)&&(e.fill=Boolean("true"===i)),void 0===t||"left"!==t&&"center"!==t&&"right"!==t&&-1===t.indexOf("%")||(e.horizontalAlign=t),void 0===s||"top"!==s&&"bottom"!==s&&"center"!==s&&-1===s.indexOf("%")||(e.verticalAlign=s)}return w.isIE&&a.settings.ieFadeInDisabled&&(e.fadeInTime=0),e}()),c.data("sbi_imgLiquid_settings",o),o.onItemStart&&o.onItemStart(i,d,c),void(w.bgs_Available&&o.useBackgroundSize?(-1===d.css("background-image").indexOf(encodeURI(c.attr("src")))&&d.css({"background-image":'url("'+encodeURI(c.attr("src"))+'")'}),d.css({"background-size":o.fill?"cover":"contain","background-position":(o.horizontalAlign+" "+o.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),e("a:first",d).css({display:"block",width:"100%",height:"100%"}),e("img",d).css({display:"none"}),o.onItemFinish&&o.onItemFinish(i,d,c),d.addClass("sbi_imgLiquid_bgSize"),d.addClass("sbi_imgLiquid_ready"),n()):function a(){if(c.data("oldSrc")&&c.data("oldSrc")!==c.attr("src")){var n=c.clone().removeAttr("style");return n.data("sbi_imgLiquid_settings",c.data("sbi_imgLiquid_settings")),c.parent().prepend(n),c.remove(),(c=n)[0].width=0,void setTimeout(a,10)}return c.data("sbi_imgLiquid_oldProcessed")?void r():(c.data("sbi_imgLiquid_oldProcessed",!1),c.data("oldSrc",c.attr("src")),e("img:not(:first)",d).css("display","none"),d.css({overflow:"hidden"}),c.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),c.on("error",s),c[0].onerror=s,function e(){c.data("sbi_imgLiquid_error")||c.data("sbi_imgLiquid_loaded")||c.data("sbi_imgLiquid_oldProcessed")||(d.is(":visible")&&c[0].complete&&c[0].width>0&&c[0].height>0?(c.data("sbi_imgLiquid_loaded",!0),setTimeout(r,i*o.delay)):setTimeout(e,o.timecheckvisibility))}(),void t())}())):void s()})}})}(jQuery),s=w.injectCss,b=document.getElementsByTagName("head")[0],(p=document.createElement("style")).type="text/css",p.styleSheet?p.styleSheet.cssText=s:p.appendChild(document.createTextNode(s)),b.appendChild(p),o.find(".sbi_photo").sbi_imgLiquid({fill:!0})}var y,x,I,k,S=(y=0,function(e,i){clearTimeout(y),y=setTimeout(e,i)});function j(){if("thumbnail"!==g){var e=o.find(".sbi_photo").eq(0).innerWidth(),i=sbiGetColumnCount(o,parseInt(h),parseInt(h)),a=jQuery("#sbi_images").innerWidth()-jQuery("#sbi_images").width(),t=o.find("#sbi_images").width()/i-a;e<=t&&(e=t),o.find(".sbi_photo").css("height",e);var s=o.find(".sbi_photo").eq(0).innerWidth()/2;"px"==v&&(s+=2*parseInt(_)),o.find(".sbi_owl-buttons div").css("top",s)}}function F(){o.removeClass("sbi_small sbi_medium");var e=o.find(".sbi_item").innerWidth();e>120&&e<240?o.addClass("sbi_medium"):e<=120&&o.addClass("sbi_small")}jQuery(window).resize(function(){S(function(){j(),F(),jQuery(".sbi").each(function(){var e=jQuery(this),i=jQuery(this).attr("data-sbi-index");if(sbiSizeSVG(e),"auto"===e.attr("data-res")){var a=window.sbiFeedMeta[i].minRes,t=sbiGetResolutionSettings(e,"auto",h,u,i);sbiNeedToRaiseRes(""!==t.width?t.width:sbiGetWidthForResType(t.type),a)&&(window.sbiFeedMeta[i].minRes=640,e.find(".sbi_item").each(function(){var e=jQuery(this).find(".sbi_photo").attr("data-full-res"),i=jQuery(this).find(".sbi_photo img").attr("src"),t=jQuery(this);""===e&&(i.indexOf("p"+a+"x"+a)>-1?e=i.replace("p"+a+"x"+a,"p640x640"):i.indexOf("s"+a+"x"+a)>-1&&(e=i.replace("s"+a+"x"+a,"s640x640"))),t.find(".sbi_photo img").attr("src",e),t.find(".sbi_photo").css("background-image",'url("'+e+'")')}))}})},500)}),j(),x=jQuery,I={callback:function(){},runOnLoad:!0,frequency:100,sbiPreviousVisibility:null},k={sbiCheckVisibility:function(e,i){if(jQuery.contains(document,e[0])){var a=i.sbiPreviousVisibility,t=e.is(":visible");i.sbiPreviousVisibility=t,null==a?i.runOnLoad&&i.callback(e,t):a!==t&&i.callback(e,t),setTimeout(function(){k.sbiCheckVisibility(e,i)},i.frequency)}}},x.fn.sbiVisibilityChanged=function(e){var i=x.extend({},I,e);return this.each(function(){k.sbiCheckVisibility(x(this),i)})},jQuery(".sbi").filter(":hidden").sbiVisibilityChanged({callback:function(e,i){j(),F()},runOnLoad:!1}),F(),f.disablecache||void 0===e||"fetched"!==window.sbiCacheStatuses[f.feedIndex].feed||(e(i,t,C),window.sbiCacheStatuses[f.feedIndex].feed="cached"),R="finished",sbSVGify(o)}(O,F.feed);var L=10;o.find(".sbi_transition").each(function(){var e=jQuery(this);setTimeout(function(){e.removeClass("sbi_transition")},L),L+=10}),V="",o.find("#sbi_images > .sbi_loader").remove(),o.find("#sbi_load").removeClass("sbi_hidden"),r>=l&&o.find(".sbi_load_btn").show(),setTimeout(function(){d.find(".sbi_loader").addClass("sbi_hidden"),d.find(".sbi_btn_text").removeClass("sbi_hidden")},500)}}function W(e,i){if(void 0===e.meta.error_message){var a=i.feedOptions,t="";a.headercolor.length&&(t='style="color: #'+a.headercolor+'"'),u='<a href="https://www.instagram.com/'+e.data.username+'" target="_blank" rel="noopener" title="@'+e.data.username+'" class="sbi_header_link" '+t+">",u+='<div class="sbi_header_text">';var s="";(void 0!==e.data.bio&&e.data.bio.length<1||"true"!=a.showbio)&&(s=' class="sbi_no_bio"'),u+="<h3 "+t+s+">"+e.data.username+"</h3>";var r='<p class="sbi_bio_info" ';"boxed"==a.headerstyle?r+='style="color: #'+a.headerprimarycolor+';"':r+=t,void 0!==e.data.bio&&e.data.bio.length>1&&""!=a.showbio&&"false"!=a.showbio&&(u+='<p class="sbi_bio" '+t+">"+e.data.bio+"</p>"),u+="</div>",u+='<div class="sbi_header_img">',u+='<div class="sbi_header_img_hover"><i class="sbi_new_logo"></i></div>',u+='<img src="'+e.data.profile_picture+'" alt="'+e.data.full_name+'" width="50" height="50">',u+="</div>",u+="</a>","boxed"==a.headerstyle&&(u+='<div class="sbi_header_bar" style="background: #'+a.headersecondarycolor+'">',"false"!=a.showbio&&(u+=r),u+='<a class="sbi_header_follow_btn" href="https://www.instagram.com/'+e.data.username+'" target="_blank" rel="noopener" style="color: #'+a.headercolor+"; background: #"+a.headerprimarycolor+';"><i class="sbi_new_logo"></i><span></span></div></div>'),0==n.find(".sbi_header_link").length&&n.find(".sb_instagram_header").prepend(u),n.find(".sbi_follow_btn").length&&n.find(".sbi_follow_btn a").attr("href","https://www.instagram.com/"+e.data.username),"boxed"==a.headerstyle&&n.find(".sbi_header_follow_btn").length&&n.find(".sbi_header_follow_btn span").text(n.find(".sb_instagram_header").attr("data-follow-text").replace(/\\/g,"")),n.find(".sb_instagram_header .sbi_header_link").hover(function(){n.find(".sb_instagram_header .sbi_header_img_hover").addClass("sbi_fade_in")},function(){n.find(".sb_instagram_header .sbi_header_img_hover").removeClass("sbi_fade_in")}),sbSVGify(n.find(".sb_instagram_header"))}}function D(e,a,t,s){var n=(y=e).length,o=t.getType;if(0==n)r+parseInt(t.num)>=O.data.length&&jQuery("#sbi_load .sbi_load_btn").hide();else{var d=[],l=n;jQuery.each(y,function(e,r){jQuery.ajax({method:"GET",url:r,dataType:"jsonp",success:function(n){var h=n.meta.error_message,u="",b="";if(void 0!==h){if(u+='<p><i class="fa fab fa-instagram" style="font-size: 16px; position: relative; top: 1px;"></i>&nbsp; Instagram Feed Error</p>',h.indexOf("access_token")>-1){u+="<p><b>Error: Access Token is not valid or has expired</b><br /><span>This error message is only visible to WordPress admins</span></p>",b="<p>There's an issue with the Instagram Access Token that you are using. Please obtain a new Access Token on the plugin's Settings page.<br />If you continue to have an issue with your Access Token then please see <a href='https://smashballoon.com/my-instagram-access-token-keep-expiring/' target='_blank' rel='noopener'>this FAQ</a> for more information.</p>",jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+u+b+"</div>"),sbiAddTokenToExpiredList(sb_instagram_js_options.sb_instagram_at,a);var f={action:"sbi_set_use_backup",transientName:a,context:"falsecache"};return void jQuery.ajax({url:sbiajaxurl,type:"post",data:f,success:function(e){}})}if(h.indexOf("retired")>-1)return u+="<p><b>No longer possible to display this feed</b><br /><span>This error message is only visible to WordPress admins</span></p>",b="<p>Due to changes in the Instagram API, it is no longer possible to display a feed from an Instagram account which is not your own. You can now only display your own Instagram account. Please see <a href='https://smashballoon.com/instagram-api-changes-april-4-2018/' target='_blank' rel='noopener'>this post</a> for more information.</p>",void jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+u+b+"</div>");if(void 0!==n.code&&"429"==n.code){window.sbiFeedMeta[i].error={errorMsg:"<p><b>Error: Rate Limit Reached</b><br /><span>This error is only visible to WordPress admins</span>",errorDir:"<p>Backup cache will be used for 1 hour</p>"},s.find("#sbi_mod_error").length?-1==s.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&s.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):s.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>");var f={action:"sbi_set_use_backup",transientName:a,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:f,success:function(e){}}),n="error"}else h.indexOf("user does not exist")>-1||h.indexOf("you cannot view this resource")>-1?(window.sbiFeedMeta[i].error={errorMsg:'<p><b>Error: User ID <span class="sbiErrorIds">'+window.sbiFeedMeta[i].idsInFeed[e]+"</span> does not exist, is invalid, or is private</b><br /><span>This error is only visible to WordPress admins</span>",errorDir:"<p>Please double check that the Instagram User ID you are using is valid and not from a private account. To find your User ID simply enter your Instagram user name into this <a href='https://smashballoon.com/instagram-feed/find-instagram-user-id/' target='_blank' rel='noopener'>tool</a>.</p>"},s.find("#sbi_mod_error").length?-1==s.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&s.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):s.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>"),n="error"):h.indexOf("invalid media id")>-1&&(window.sbiFeedMeta[i].error={errorMsg:'<p><b>Error: Post Id <span class="sbiErrorIds">'+window.sbiFeedMeta[i].idsInFeed[e]+"</span> does not exist or is invalid</b><br /><span>This error is only visible to WordPress admins.</span>",errorDir:"<p>Please double check the media (post) id is correct.</p>"},s.find("#sbi_mod_error").length?-1==s.find(".sbiErrorIds").text().indexOf(window.sbiFeedMeta[i].idsInFeed[e])&&s.find(".sbiErrorIds").append(","+window.sbiFeedMeta[i].idsInFeed[e]):s.prepend('<div id="sbi_mod_error">'+window.sbiFeedMeta[i].error.errorMsg+window.sbiFeedMeta[i].error.errorDir+"</div>"),n="error")}"coordinates"==o&&(n.pagination={previous_url:r}),"error"!==n&&d.push(n),0==--l&&"finished"!==R&&function(e){var i=[],r=[];jQuery.each(d,function(a,t){if("single"==e&&(t.data=[t.data]),void 0!==t.data)if(jQuery.each(t.data,function(e,i){jQuery.inArray(i.id,E)>-1||(E.push(i.id),r.push(i))}),"coordinates"==e){var s=t.data[t.data.length-1].created_time,n=t.pagination.previous_url.split("max_timestamp=")[0]+"max_timestamp="+s;i.push(n)}else"object"==typeof t.pagination&&t.pagination&&void 0!==t.pagination.next_url&&i.push(t.pagination.next_url)}),"random"!==c?r.sort(function(e,i){return i.created_time-e.created_time}):(r.sort(function(e,i){return Math.round(Math.random())-.5}),a+="!"),void 0!==d&&(d[0].data=r),void 0!==d[0].pagination&&d[0].pagination?d[0].pagination.next_url=i:d[0].pagination={next_url:""};var n=d[0];"finished"!==R&&G(n,a,t,s),N++}(o)}})})}}function A(e,i,t,r,n){var o=e;window.sbiCommentCacheStatus=0;var d=t[0].getAttribute("data-sbi-index");"object"==typeof e&&(o=JSON.stringify(e));var c={url:sbiajaxurl,type:"POST",async:!0,cache:!1,data:{action:"get_cache",transientName:o,useBackupHeader:window.sbiUseBackup[d].header,useBackupFeed:window.sbiUseBackup[d].feed},success:function(n){var o={};if(0===n.trim().indexOf("{")&&((n.indexOf("{%22")>-1||n.indexOf("%7B%22")>-1)&&(n=decodeURI(n)),n=(n=n.replace(/\\'/g,"'")).replace(/\\'/g,"'"),o=JSON.parse(n.trim())),"all"==r){if(void 0===o.header.error&&W(o.header,i),void 0===o.feed.error){if("finished"!==R&&G(o.feed,e,i,t),void 0!==o.warning){var d="<p><b>Cache Error: Looking for cache that doesn't exist. Now using a backup feed.</b><br /><span>This error is only visible to WordPress admins.</span>",c="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").before('<div id="sbi_mod_error">'+d+c+"</div>")}}else{s=JSON.parse(t[0].getAttribute("data-options"));var l=t[0].getAttribute("data-sbi-index");if(s.feedIndex=l,!1!==window.sbiCacheStatuses[l].feed&&"tryfetch"===o.feed.error)window.sbiCacheStatuses[l].feed=!1,t.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[l].header=!1),window.sbiCacheStatuses[l].comments="no",s.tryFetch=!0,void 0===window.sbiCacheStatuses[s.feedIndex].tryFetch&&a(t[0],s);else if(!0===window.sbiCacheStatuses[l].feed){var d="<p><b>Cache Error: Looking for cache that doesn't exist</b><br /><span>This error is only visible to WordPress admins.</span>",c="<p>If you are using a caching plugin, try enabling the option on the Customize tab 'Cache error API recheck' or 'Force cache to clear on interval'</p>";jQuery("#sb_instagram").empty().append('<p style="text-align: center;">Unable to show Instagram photos</p><div id="sbi_mod_error">'+d+c+"</div>");var h={action:"sbi_set_use_backup",transientName:e,context:"falsecache"};jQuery.ajax({url:sbiajaxurl,type:"post",data:h,success:function(e){}})}}if("tryfetch"===o.header.error){s=JSON.parse(t[0].getAttribute("data-options"));var l=t[0].getAttribute("data-sbi-index");s.feedIndex=l,!1!==window.sbiCacheStatuses[l].header&&(t.find(".sb_instagram_header .sbi_header_text").length||(window.sbiCacheStatuses[l].header=!1,s.tryFetch=!0,void 0===window.sbiCacheStatuses[s.feedIndex].tryFetch&&a(t[0],s)))}void 0===o.comments.error&&(sb_instagram_js_options.sbiPageCommentCache=o.comments)}else"header"==r?W(o,i):"finished"!==R&&G(o,e,i,t)},error:function(e,i,a){console.log(a)}};jQuery.ajax(c)}}(t,s)},a)})}function sbiAddTokenToExpiredList(e,i){var a={url:sbiajaxurl,type:"POST",async:!0,cache:!1,data:{action:"sbi_set_expired_token",access_token:e,transientName:i},success:function(e){},error:function(e,i,a){console.log(a)}};jQuery.ajax(a)}function sbiCachePhotos(e,i,a){a=void 0!==a?a:[];var t=e.data.length;if(void 0!==e){var s={url:sbiajaxurl,type:"POST",async:!0,cache:!1,data:{action:"cache_photos",feed_tokens:a,num_images:t,transientName:i},success:function(e){},error:function(e,i,a){console.log(a)}};jQuery.ajax(s)}}function sbiGetColumnCount(e,i,a){var t=i,s=window.innerWidth;return e.hasClass("sbi_mob_col_auto")?(s<640&&parseInt(i)>2&&parseInt(i)<7&&(t=2),s<640&&parseInt(i)>6&&parseInt(i)<11&&(t=4),s<=480&&parseInt(i)>2&&(t=1)):s<=480&&(t=a),t}function sbiGetWidthForResType(e){switch(e){case"thumbnail":return 150;case"low_resolution":return 320;default:return 640}}function sbiGetBestResolutionForAuto(e,i,a,t){var s=e*Math.max(1,i/a),r=10*Math.ceil(s/10),n=[150,320,640];if(t&&(r*=2),-1===n.indexOf(parseInt(r))){var o=!1;jQuery.each(n,function(e,i){i>parseInt(r)&&!o&&(r=i,o=!0)})}return r}function sbiNeedToRaiseRes(e,i){return e>i}function sbiGetResolutionSettings(e,i,a,t,s){var r=parseInt(e.find("#sbi_images").outerWidth()-e.find("#sbi_images").width())/2,n=(a=sbiGetColumnCount(e,parseInt(a),parseInt(t)),e.innerWidth()/a-r),o={type:"low_resolution",width:""};switch(i){case"auto":o.type="auto",o.width=n;break;case"thumb":o.type="thumbnail";break;case"medium":o.type="low_resolution";break;default:o.type="standard_resolution"}return void 0===window.sbiFeedMeta[s].minRes&&(window.sbiFeedMeta[s].minRes="auto"===o.type?sbiGetBestResolutionForAuto(n,o.width,o.width,e.hasClass("sbi_highlight")):sbiGetWidthForResType(o.type)),o}function sbi_cache_all(e,i,a){i.indexOf("header")&&void 0===e.data.pagination?sbiCachePhotos(e,i,a):i.indexOf("header")||void 0===e.data.pagination||sbiCachePhotos(e,i,a)}jQuery(document).ready(function(){window.sbiCommentCacheStatus=0,sbi_init(function(e,i,a){sbi_cache_all(e,i,a)})})}