Feed Them Social – Facebook, Instagram, Twitter, YouTube, Pinterest - Version 2.9.8.1.0

Version Description

Download this release

Release Info

Developer slickremix
Plugin Icon 128x128 Feed Them Social – Facebook, Instagram, Twitter, YouTube, Pinterest
Version 2.9.8.1.0
Comparing to
See all releases

Code changes from version 2.9.8 to 2.9.8.1.0

admin/class-fts-instagram-options-page.php CHANGED
@@ -43,38 +43,40 @@ class FTS_Instagram_Options_Page {
43
  public function feed_them_instagram_options_page() {
44
  $fts_functions = new feed_them_social_functions();
45
 
46
- $fts_instagram_access_token = get_option( 'fts_instagram_custom_api_token' );
47
- $fts_instagram_custom_id = get_option( 'fts_instagram_custom_id' );
48
- $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
49
- $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
50
- $user_id_basic = isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ? sanitize_text_field( $_GET['user_id'] ) : $fts_instagram_custom_id;
51
- $access_token_basic = isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ? sanitize_text_field( $_GET['code'] ) : $fts_instagram_access_token;
52
- $access_token = isset( $_GET['code'], $_GET['feed_type'] ) && 'original_instagram' === $_GET['feed_type'] ? sanitize_text_field( $_GET['code'] ) : $access_token_basic;
53
-
54
-
55
-
56
- ?>
57
- <script>
58
- jQuery(document).ready(function ($) {
59
- <?php if ( isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ) {
60
- $code_token = sanitize_text_field( $_GET['code'] );
61
- ?>
62
- $('#fts_instagram_custom_api_token').val('');
63
- $('#fts_instagram_custom_api_token').val($('#fts_instagram_custom_api_token').val() + '<?php echo esc_js( $code_token ); ?>');
64
-
65
- <?php if ( 'original_instagram' === $_GET['feed_type'] ){ ?>
66
- $('#fts_instagram_custom_id').val('');
67
- var str = '<?php echo esc_js( $code_token ); ?>';
68
- $('#fts_instagram_custom_id').val($('#fts_instagram_custom_id').val() + str.split('.', 1));
69
- <?php }
70
- elseif ( 'instagram_basic' === $_GET['feed_type'] ){ ?>
71
-
72
- $('#fts_instagram_custom_id').val('');
73
- $('#fts_instagram_custom_id').val($('#fts_instagram_custom_id').val() + '<?php echo esc_js( $user_id_basic ); ?>');
74
- <?php } ?>
75
- <?php } ?>
76
- });
77
- </script>
 
 
78
 
79
  <div class="feed-them-social-admin-wrap">
80
  <h1>
@@ -99,7 +101,7 @@ class FTS_Instagram_Options_Page {
99
  if ( wp_verify_nonce( $fts_fb_options_nonce, 'fts-instagram-options-page-nonce' ) ) {
100
  ?>
101
 
102
- <div class="feed-them-social-admin-input-wrap" style="padding-top:0px; ">
103
  <div class="fts-title-description-settings-page">
104
  <?php
105
  // get our registered settings from the fts functions!
@@ -125,27 +127,36 @@ class FTS_Instagram_Options_Page {
125
  // echo '</pre>';
126
 
127
 
128
- echo sprintf(
129
- esc_html__( '%1$sClick the button below to get an access token. This gives us read-only access to get your Instagram posts.%2$s', 'feed-them-social' ),
130
- '<p>',
131
- '</p>'
132
- );
133
 
134
 
135
- echo sprintf(
136
- esc_html__( '%1$sLogin and get my Access Token%2$s', 'feed-them-social' ),
137
- '<a href="' . esc_url( 'https://api.instagram.com/oauth/authorize?app_id=206360940619297&redirect_uri=https://www.slickremix.com/instagram-basic-token/&response_type=code&scope=user_profile,user_media&state=' . admin_url( 'admin.php?page=fts-instagram-feed-styles-submenu-page' ) . '' ) . '" class="fts-instagram-get-access-token">',
138
- '</a>'
139
- );
140
 
141
 
142
- ?>
 
 
 
 
 
 
 
143
 
144
  <a href="<?php echo esc_url( 'mailto:support@slickremix.com' ); ?>" class="fts-admin-button-no-work" style="margin-top: 14px; display: inline-block"><?php esc_html_e( 'Button not working?', 'feed-them-social' ); ?></a>
145
  </div>
146
  <div class="fts-clear"></div>
147
 
148
- <div class="feed-them-social-admin-input-wrap" style="margin-bottom:0">
 
 
 
 
149
  <div class="feed-them-social-admin-input-label fts-instagram-border-bottom-color-label">
150
  <?php esc_html_e( 'Instagram ID', 'feed-them-social' ); ?>
151
  </div>
@@ -153,11 +164,12 @@ class FTS_Instagram_Options_Page {
153
  <div class="fts-clear"></div>
154
  </div>
155
 
156
- <div class="feed-them-social-admin-input-wrap">
157
  <div class="feed-them-social-admin-input-label fts-instagram-border-bottom-color-label">
158
  <?php
159
 
160
  $check_token = get_option( 'fts_instagram_custom_api_token' );
 
161
  $check_basic_token_value = false !== $this->data_protection->decrypt( $check_token ) ? $this->data_protection->decrypt( $check_token ) : $check_token;
162
  $check_basic_encrypted = false !== $this->data_protection->decrypt( $check_token ) ? 'encrypted' : '';
163
 
@@ -171,9 +183,85 @@ class FTS_Instagram_Options_Page {
171
  </div>
172
 
173
  <input type="text" name="fts_instagram_custom_api_token" class="feed-them-social-admin-input" id="fts_instagram_custom_api_token" data-token="<?php echo $check_basic_encrypted ?>" value="<?php echo $check_basic_token_value ?>"/>
 
174
  <div class="fts-clear"></div>
175
  </div>
176
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  <div class="feed-them-social-admin-input-wrap fts-instagram-last-row" style="margin-top: 0; padding-top: 0">
178
  <?php
179
  // Error Check
@@ -222,9 +310,8 @@ class FTS_Instagram_Options_Page {
222
  );
223
  }
224
  ?>
 
225
  </div>
226
- <div class="fts-clear"></div>
227
- </div>
228
 
229
 
230
 
@@ -264,7 +351,7 @@ class FTS_Instagram_Options_Page {
264
  </div>
265
  <a href="<?php echo esc_url( 'mailto:support@slickremix.com' ); ?>" target="_blank" class="fts-admin-button-no-work"><?php esc_html_e( 'Button not working?', 'feed-them-social' ); ?></a>
266
  <?php
267
-
268
  $test_app_token_id_biz = get_option( 'fts_facebook_instagram_custom_api_token' );
269
  $check_biz_token_value = false !== $this->data_protection->decrypt( $test_app_token_id_biz ) ? $this->data_protection->decrypt( $test_app_token_id_biz ) : $test_app_token_id_biz;
270
  $check_biz_encrypted = false !== $this->data_protection->decrypt( $test_app_token_id_biz ) ? 'encrypted' : '';
@@ -277,13 +364,15 @@ class FTS_Instagram_Options_Page {
277
  'app_token_id' => 'https://graph.facebook.com/debug_token?input_token=' . $test_app_token_id . '&access_token=' . $test_app_token_id,
278
  );
279
 
 
280
  // Test App ID
281
  $test_app_token_response = $fts_functions->fts_get_feed_json( $test_app_token_url );
282
  $test_app_token_response = json_decode( $test_app_token_response['app_token_id'] );
283
 
284
- // echo '<pre>';
285
- // print_r($test_app_token_response);
286
- // echo '</pre>';
 
287
  }
288
  ?>
289
  <div class="clear"></div>
43
  public function feed_them_instagram_options_page() {
44
  $fts_functions = new feed_them_social_functions();
45
 
46
+ $fts_instagram_access_token = get_option( 'fts_instagram_custom_api_token' );
47
+ $fts_instagram_access_token_expires_in = get_option( 'fts_instagram_custom_api_token_expires_in' );
48
+ $fts_instagram_custom_id = get_option( 'fts_instagram_custom_id' );
49
+ $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
50
+ $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
51
+ $user_id_basic = isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ? sanitize_text_field( $_GET['user_id'] ) : $fts_instagram_custom_id;
52
+ $access_token_basic = isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ? sanitize_text_field( $_GET['code'] ) : $fts_instagram_access_token;
53
+ $access_token = isset( $_GET['code'], $_GET['feed_type'] ) && 'original_instagram' === $_GET['feed_type'] ? sanitize_text_field( $_GET['code'] ) : $access_token_basic;
54
+ $access_token_expires_in = isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ? sanitize_text_field( $_GET['expires_in'] ) : $fts_instagram_access_token_expires_in;
55
+
56
+
57
+
58
+ ?>
59
+ <script>
60
+ jQuery(document).ready(function ($) {
61
+ <?php if ( isset( $_GET['code'], $_GET['feed_type'] ) && 'instagram_basic' === $_GET['feed_type'] ) {
62
+ $code_token = sanitize_text_field( $_GET['code'] );
63
+ ?>
64
+ $('#fts_instagram_custom_api_token').val('');
65
+ $('#fts_instagram_custom_api_token').val($('#fts_instagram_custom_api_token').val() + '<?php echo esc_js( $code_token ); ?>');
66
+
67
+ <?php if ( 'original_instagram' === $_GET['feed_type'] ){ ?>
68
+ $('#fts_instagram_custom_id').val('');
69
+ var str = '<?php echo esc_js( $code_token ); ?>';
70
+ $('#fts_instagram_custom_id').val($('#fts_instagram_custom_id').val() + str.split('.', 1));
71
+ <?php }
72
+ elseif ( 'instagram_basic' === $_GET['feed_type'] ){ ?>
73
+
74
+ $('#fts_instagram_custom_id').val('');
75
+ $('#fts_instagram_custom_id').val($('#fts_instagram_custom_id').val() + '<?php echo esc_js( $user_id_basic ); ?>');
76
+ <?php } ?>
77
+ <?php } ?>
78
+ });
79
+ </script>
80
 
81
  <div class="feed-them-social-admin-wrap">
82
  <h1>
101
  if ( wp_verify_nonce( $fts_fb_options_nonce, 'fts-instagram-options-page-nonce' ) ) {
102
  ?>
103
 
104
+ <div class="feed-them-social-admin-input-wrap" style="padding:0px; margin: 0px; ">
105
  <div class="fts-title-description-settings-page">
106
  <?php
107
  // get our registered settings from the fts functions!
127
  // echo '</pre>';
128
 
129
 
130
+ // echo '<pre>';
131
+ // print_r($test_app_token_response);
132
+ // echo '</pre>';
 
 
133
 
134
 
135
+ echo sprintf(
136
+ esc_html__( '%1$sClick the button below to get an access token. This gives us read-only access to get your Instagram posts.%2$s', 'feed-them-social' ),
137
+ '<p>',
138
+ '</p>'
139
+ );
140
 
141
 
142
+ echo sprintf(
143
+ esc_html__( '%1$sLogin and get my Access Token%2$s', 'feed-them-social' ),
144
+ '<a href="' . esc_url( 'https://api.instagram.com/oauth/authorize?app_id=206360940619297&redirect_uri=https://www.slickremix.com/instagram-basic-token/&response_type=code&scope=user_profile,user_media&state=' . admin_url( 'admin.php?page=fts-instagram-feed-styles-submenu-page' ) . '' ) . '" class="fts-instagram-get-access-token">',
145
+ '</a>'
146
+ );
147
+
148
+
149
+ ?>
150
 
151
  <a href="<?php echo esc_url( 'mailto:support@slickremix.com' ); ?>" class="fts-admin-button-no-work" style="margin-top: 14px; display: inline-block"><?php esc_html_e( 'Button not working?', 'feed-them-social' ); ?></a>
152
  </div>
153
  <div class="fts-clear"></div>
154
 
155
+ <div class="feed-them-social-admin-input-wrap" style="margin-bottom:0px;
156
+ <?php
157
+ if ( 'no' === $debug ) {
158
+ ?>
159
+ display:none<?php } ?>">
160
  <div class="feed-them-social-admin-input-label fts-instagram-border-bottom-color-label">
161
  <?php esc_html_e( 'Instagram ID', 'feed-them-social' ); ?>
162
  </div>
164
  <div class="fts-clear"></div>
165
  </div>
166
 
167
+ <div class="feed-them-social-admin-input-wrap fts-success-class">
168
  <div class="feed-them-social-admin-input-label fts-instagram-border-bottom-color-label">
169
  <?php
170
 
171
  $check_token = get_option( 'fts_instagram_custom_api_token' );
172
+
173
  $check_basic_token_value = false !== $this->data_protection->decrypt( $check_token ) ? $this->data_protection->decrypt( $check_token ) : $check_token;
174
  $check_basic_encrypted = false !== $this->data_protection->decrypt( $check_token ) ? 'encrypted' : '';
175
 
183
  </div>
184
 
185
  <input type="text" name="fts_instagram_custom_api_token" class="feed-them-social-admin-input" id="fts_instagram_custom_api_token" data-token="<?php echo $check_basic_encrypted ?>" value="<?php echo $check_basic_token_value ?>"/>
186
+
187
  <div class="fts-clear"></div>
188
  </div>
189
 
190
+
191
+ <?php
192
+ // Add yes to show the expiration time and js that runs it below!
193
+ $debug = 'no';
194
+ ?>
195
+ <div class="feed-them-social-admin-input-wrap fts-success-class fts-exp-time-wrapper" style="margin-top:10px;
196
+ <?php
197
+ if ( 'no' === $debug ) {
198
+ ?>
199
+ display:none<?php } ?>">
200
+ <div class="feed-them-social-admin-input-label">
201
+ <?php echo esc_html__( 'Expiration Time for Access Token', 'feed-them-social' ); ?>
202
+ </div>
203
+ <input type="text" name="fts_instagram_custom_api_token_expires_in" class="feed-them-social-admin-input" id="fts_instagram_custom_api_token_expires_in" value="<?php echo esc_attr( $access_token_expires_in ); ?>"/>
204
+ <div class="fts-clear"></div>
205
+ </div>
206
+ </div>
207
+
208
+ <?php
209
+
210
+
211
+ // Take the time() + $expiration_time will equal the current date and time in seconds, then we add the 60 days worth of seconds to the time.
212
+ // That gives us the time to compare, of 60 days to the current date and Time.
213
+ // For now we are going to get a new token every 7 days just to be on the safe side.
214
+ // That means we will negate 53 days from the seconds which is 4579200 <-- https://www.convertunits.com/from/60+days/to/seconds
215
+ // We get 60 days to refresh the token, if it's not refreshed before then it will expire.
216
+ $expiration_time = '' !== get_option( 'fts_instagram_custom_api_token_expires_in' ) ? get_option( 'fts_instagram_custom_api_token_expires_in' ) : '';
217
+
218
+
219
+ if ( time() < $expiration_time && 'yes' === $debug ) {
220
+ ?>
221
+ <script>
222
+
223
+ // Set the time * 1000 because js uses milliseconds not seconds and that is what youtube gives us is a 3600 seconds of time
224
+ var countDownDate = new Date( <?php echo esc_js( $expiration_time ); ?> * 1000 ); // <--phpStorm shows error but it's false.
225
+
226
+ // console.log(countDownDate);
227
+
228
+ // Update the count down every 1 second
229
+ var x = setInterval(function () {
230
+
231
+ // Get todays date and time
232
+ var now = new Date().getTime();
233
+
234
+ // console.log(now);
235
+
236
+ // Find the distance between now an the count down date
237
+ var distance = countDownDate - now;
238
+
239
+ // Time calculations for days, hours, minutes and seconds
240
+ var days = Math.floor(distance / (1000 * 60 * 60 * 24));
241
+ var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
242
+ var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
243
+ var seconds = Math.floor((distance % (1000 * 60)) / 1000);
244
+
245
+ jQuery('<span id="fts-timer"></span>').insertBefore('.fts-exp-time-wrapper .fts-clear');
246
+ document.getElementById("fts-timer").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";
247
+
248
+ // If the count down is finished, write some text
249
+ if (distance < 0) {
250
+ clearInterval(x);
251
+ jQuery('.fts-success').fadeIn();
252
+ document.getElementById("fts-timer").innerHTML = "Token Expired, refresh page to get new a token.";
253
+ }
254
+ }, 1000);
255
+ </script>
256
+ <?php
257
+ }
258
+ // YO! making it be time() < $expiration_time to test ajax, otherwise it should be time() > $expiration_time
259
+ if ( ! empty( $check_token ) && time() > $expiration_time ) {
260
+ // refresh token action!
261
+ // echo ' WTF ';
262
+ $fts_functions->feed_them_instagram_refresh_token();
263
+ } ?>
264
+
265
  <div class="feed-them-social-admin-input-wrap fts-instagram-last-row" style="margin-top: 0; padding-top: 0">
266
  <?php
267
  // Error Check
310
  );
311
  }
312
  ?>
313
+ <div class="fts-clear"></div>
314
  </div>
 
 
315
 
316
 
317
 
351
  </div>
352
  <a href="<?php echo esc_url( 'mailto:support@slickremix.com' ); ?>" target="_blank" class="fts-admin-button-no-work"><?php esc_html_e( 'Button not working?', 'feed-them-social' ); ?></a>
353
  <?php
354
+ $token_expiration = get_option( 'fts_facebook_instagram_custom_api_token_expiration' );
355
  $test_app_token_id_biz = get_option( 'fts_facebook_instagram_custom_api_token' );
356
  $check_biz_token_value = false !== $this->data_protection->decrypt( $test_app_token_id_biz ) ? $this->data_protection->decrypt( $test_app_token_id_biz ) : $test_app_token_id_biz;
357
  $check_biz_encrypted = false !== $this->data_protection->decrypt( $test_app_token_id_biz ) ? 'encrypted' : '';
364
  'app_token_id' => 'https://graph.facebook.com/debug_token?input_token=' . $test_app_token_id . '&access_token=' . $test_app_token_id,
365
  );
366
 
367
+
368
  // Test App ID
369
  $test_app_token_response = $fts_functions->fts_get_feed_json( $test_app_token_url );
370
  $test_app_token_response = json_decode( $test_app_token_response['app_token_id'] );
371
 
372
+
373
+ /*echo '<pre>';
374
+ print_r($refresh_app_token_url_response);
375
+ echo '</pre>';*/
376
  }
377
  ?>
378
  <div class="clear"></div>
admin/class-fts-settings-page-options.php CHANGED
@@ -3578,11 +3578,11 @@ class FTS_Settings_Page_Options {
3578
  array(
3579
  'grouped_options_title' => __( 'Comments', 'feed-them-social' ),
3580
  'option_type' => 'input',
3581
- 'label' => __( '# of Comments', 'feed-them-social' ) . '<br/><small>' . __( 'Maximum amount is 50', 'feed-them-social' ) . '</small>',
3582
  'type' => 'text',
3583
  'id' => 'youtube_comments_count',
3584
  'name' => 'youtube_comments_count',
3585
- 'placeholder' => '',
3586
  'value' => '',
3587
  'short_attr' => array(
3588
  'attr_name' => 'comments_count',
3578
  array(
3579
  'grouped_options_title' => __( 'Comments', 'feed-them-social' ),
3580
  'option_type' => 'input',
3581
+ 'label' => __( 'Number of Comments', 'feed-them-social' ) . '<br/><small>' . __( 'API Key required', 'feed-them-social' ) . '</small>',
3582
  'type' => 'text',
3583
  'id' => 'youtube_comments_count',
3584
  'name' => 'youtube_comments_count',
3585
+ 'placeholder' => '50 Maximum',
3586
  'value' => '',
3587
  'short_attr' => array(
3588
  'attr_name' => 'comments_count',
admin/class-fts-twitter-options-page.php CHANGED
@@ -143,7 +143,7 @@ class FTS_Twitter_Options_Page {
143
  <?php echo esc_html__( 'Twitter API Token', 'feed-them-social' ); ?>
144
  </h3>
145
  <p>
146
- <?php echo esc_html__( 'This is required to make the feed work. Simply click the button below and it will connect to your Twitter account to get an access token and access token secret, and it will return it in the input below. Then just click the save button and you will now be able to generate your Twitter feed.', 'feed-them-social' ); ?>
147
  </p>
148
  <p>
149
  <?php
@@ -165,7 +165,8 @@ class FTS_Twitter_Options_Page {
165
  $extra_keys = empty( $fts_twitter_custom_consumer_key ) && empty( $fts_twitter_custom_consumer_secret ) ? 'display:none' : '';
166
  ?>
167
 
168
- <div class="fts-twitter-add-all-keys-click-option">
 
169
  <label for="fts-custom-tokens-twitter">
170
  <input type="checkbox" id="fts-custom-tokens-twitter" name="fts_twitter_custom_tokens" value="1" <?php echo checked( '1', '' === $extra_keys ); ?>> <?php echo esc_html__( 'Add your own tokens?', 'feed-them-social' ); ?>
171
  </label>
@@ -210,13 +211,14 @@ class FTS_Twitter_Options_Page {
210
  ?>
211
  <div class="feed-them-social-admin-input-wrap">
212
  <div class="feed-them-social-admin-input-label fts-twitter-border-bottom-color-label">
213
- <?php echo esc_html__( 'Access Token', 'feed-them-social' ); ?>
214
  </div>
215
  <input type="text" name="fts_twitter_custom_access_token" class="feed-them-social-admin-input" id="fts_twitter_custom_access_token" value="<?php echo esc_attr( $oath_token ); ?>"/>
216
  <div class="fts-clear"></div>
217
  </div>
218
 
219
- <div class="feed-them-social-admin-input-wrap">
 
220
  <div class="feed-them-social-admin-input-label fts-twitter-border-bottom-color-label">
221
  <?php echo esc_html__( 'Access Token Secret', 'feed-them-social' ); ?>
222
  </div>
@@ -251,8 +253,6 @@ class FTS_Twitter_Options_Page {
251
  '</div>'
252
  );
253
  }
254
- // Clear Cache!
255
- do_action( 'wp_ajax_fts_clear_cache_ajax' );
256
  } else {
257
  echo sprintf(
258
  esc_html__( '%1$sTo get started, please click the button above to retrieve your Access Token.%2$s', 'feed-them-social' ),
143
  <?php echo esc_html__( 'Twitter API Token', 'feed-them-social' ); ?>
144
  </h3>
145
  <p>
146
+ <?php echo esc_html__( 'Click the button below to get an access token. This gives us read-only access to get your Twitter posts.', 'feed-them-social' ); ?>
147
  </p>
148
  <p>
149
  <?php
165
  $extra_keys = empty( $fts_twitter_custom_consumer_key ) && empty( $fts_twitter_custom_consumer_secret ) ? 'display:none' : '';
166
  ?>
167
 
168
+ <!-- SRL 4-11-22: Hiding the create twitter tokens option because the process of getting approved is not as easy as it used to be and it's creating more support tickets too -->
169
+ <div class="fts-twitter-add-all-keys-click-option" style="display: none">
170
  <label for="fts-custom-tokens-twitter">
171
  <input type="checkbox" id="fts-custom-tokens-twitter" name="fts_twitter_custom_tokens" value="1" <?php echo checked( '1', '' === $extra_keys ); ?>> <?php echo esc_html__( 'Add your own tokens?', 'feed-them-social' ); ?>
172
  </label>
211
  ?>
212
  <div class="feed-them-social-admin-input-wrap">
213
  <div class="feed-them-social-admin-input-label fts-twitter-border-bottom-color-label">
214
+ <?php echo esc_html__( 'Access Token Required', 'feed-them-social' ); ?>
215
  </div>
216
  <input type="text" name="fts_twitter_custom_access_token" class="feed-them-social-admin-input" id="fts_twitter_custom_access_token" value="<?php echo esc_attr( $oath_token ); ?>"/>
217
  <div class="fts-clear"></div>
218
  </div>
219
 
220
+ <!-- We don't need to display this field to the user, so we only show the Acccess Token -->
221
+ <div class="feed-them-social-admin-input-wrap" style="display: none">
222
  <div class="feed-them-social-admin-input-label fts-twitter-border-bottom-color-label">
223
  <?php echo esc_html__( 'Access Token Secret', 'feed-them-social' ); ?>
224
  </div>
253
  '</div>'
254
  );
255
  }
 
 
256
  } else {
257
  echo sprintf(
258
  esc_html__( '%1$sTo get started, please click the button above to retrieve your Access Token.%2$s', 'feed-them-social' ),
admin/class-fts-youtube-options-page.php CHANGED
@@ -46,7 +46,7 @@ class FTS_Youtube_Options_Page {
46
  <?php echo esc_html__( 'Feed Options', 'feed-them-social' ); ?>
47
  </h1>
48
  <div class="use-of-plugin">
49
- <?php echo esc_html__( 'Add a follow button and position it using the options below. This option will not work for combined feeds.', 'feed-them-social' ); ?>
50
  </div>
51
 
52
  <!-- custom option for padding -->
@@ -68,7 +68,10 @@ class FTS_Youtube_Options_Page {
68
  }
69
 
70
  $youtube_user_id_data = esc_url_raw( 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=slickremix&' . $youtube_api_key_or_token );
71
- // Get Data for Youtube!
 
 
 
72
  $response = wp_remote_fopen( $youtube_user_id_data );
73
  // Error Check!
74
  $test_app_token_response = json_decode( $response );
@@ -80,12 +83,12 @@ class FTS_Youtube_Options_Page {
80
  <h3>
81
  <?php echo esc_html__( 'YouTube API Key', 'feed-them-social' ); ?>
82
  </h3>
83
- <p><?php echo esc_html__( 'This is required to make the feed work. Simply click the button below and it will connect to your YouTube account to get an access token and access token secret, and it will return it in the input below. Then just click the save button and you will now be able to generate your YouTube feed.', 'feed-them-social' ); ?>
84
  </p>
85
  <p>
86
  <?php
87
  echo sprintf(
88
- esc_html__( '%1$sLogin and get my Access Token (API key)%2$s', 'feed-them-social' ),
89
  '<a href="' . esc_url( 'https://www.slickremix.com/youtube-token/?redirect_url=' . admin_url( 'admin.php?page=fts-youtube-feed-styles-submenu-page' ) ) . '" class="fts-youtube-get-access-token">',
90
  '</a>'
91
  );
@@ -114,47 +117,48 @@ class FTS_Youtube_Options_Page {
114
  <div class="fts-clear"></div>
115
 
116
  <div class="youtube-extra-keys" style="<?php echo esc_attr( $extra_keys ); ?>">
117
- <div class="youtube-extra-keys-text" style="<?php echo esc_attr( $extra_keys_no ); ?>"><?php echo esc_html__( 'Learn how to manually create your own YouTube API Key', 'feed-them-social' ); ?>
118
- <a href="<?php echo esc_url( 'https://www.slickremix.com/docs/get-api-key-for-youtube/' ); ?>" target="_blank"><?php echo esc_html__( 'here', 'feed-them-social' ); ?></a>.
119
  </div>
120
 
121
  <div class="feed-them-social-admin-input-label fts-youtube-border-bottom-color-label">
122
- <?php echo esc_html__( 'API Key Required', 'feed-them-social' ); ?>
123
  </div>
124
 
125
  <input type="text" name="youtube_custom_api_token" class="feed-them-social-admin-input" id="youtube_custom_api_token" value="<?php echo esc_attr( get_option( 'youtube_custom_api_token' ) ); ?>"/>
126
  <div class="fts-clear"></div>
127
  </div>
128
  </div>
129
-
130
- <div class="hide-button-tokens-options" style="<?php echo esc_attr( $extra_keys_no ); ?>">
131
- <div class="feed-them-social-admin-input-wrap">
 
 
 
 
 
 
132
  <div class="feed-them-social-admin-input-label">
133
  <?php echo esc_html__( 'Refresh Token', 'feed-them-social' ); ?>
134
  </div>
135
- <input type="text" name="youtube_custom_refresh_token" class="feed-them-social-admin-input" id="youtube_custom_refresh_token" value="<?php echo esc_attr( get_option( 'youtube_custom_refresh_token' ) ); ?>"/>
136
  <div class="fts-clear"></div>
137
  </div>
138
  <div class="feed-them-social-admin-input-wrap" style="margin-bottom:0;">
139
  <div class="feed-them-social-admin-input-label">
140
- <?php echo esc_html__( 'Access Token', 'feed-them-social' ); ?>
141
  </div>
142
  <input type="text" name="youtube_custom_access_token" class="feed-them-social-admin-input" id="youtube_custom_access_token" value="<?php echo esc_attr( get_option( 'youtube_custom_access_token' ) ); ?>"/>
143
  <div class="fts-clear"></div>
144
  </div>
145
- <?php
146
- // Add yes to show the expiration time and js that runs it below!
147
- $dev_mode = 'no';
148
- ?>
149
- <div class="feed-them-social-admin-input-wrap fts-exp-time-wrapper" style="margin-top:10px;
150
- <?php
151
- if ( 'yes' !== $dev_mode ) {
152
- ?>
153
- display:none<?php } ?>">
154
  <div class="feed-them-social-admin-input-label">
155
  <?php echo esc_html__( 'Expiration Time for Access Token', 'feed-them-social' ); ?>
156
  </div>
157
- <input type="text" name="youtube_custom_tokenecho esc_htmlxp_time" class="feed-them-social-admin-input" id="youtube_custom_tokenecho esc_htmlxp_time" value="<?php echo esc_attr( get_option( 'youtube_custom_tokenecho esc_htmlxp_time' ) ); ?>"/>
158
  <div class="fts-clear"></div>
159
  </div>
160
  </div>
@@ -174,16 +178,16 @@ class FTS_Youtube_Options_Page {
174
  $fts_functions->feed_them_youtube_refresh_token();
175
  }
176
 
177
- $expiration_time = get_option( 'youtube_custom_tokenecho esc_htmlxp_time' );
 
178
  // Give the access token a 5 minute buffer (300 seconds) before getting a new one.
179
  $expiration_time = $expiration_time - 300;
180
  // Test Liner!
181
- if ( time() < $expiration_time && empty( $youtube_api_key ) && 'yes' === $dev_mode ) {
182
  ?>
183
  <script>
184
  // Set the time * 1000 because js uses milliseconds not seconds and that is what youtube gives us is a 3600 seconds of time
185
- var countDownDate = new Date(<?php echo esc_js( $expiration_time ); ?> * 1000;
186
- )
187
 
188
  // Update the count down every 1 second
189
  var x = setInterval(function () {
@@ -206,14 +210,17 @@ class FTS_Youtube_Options_Page {
206
  if (distance < 0) {
207
  clearInterval(x);
208
  jQuery('.fts-success').fadeIn();
209
- document.getElementById("fts-timer").innerHTML = "Expired, refresh page to get new token (developer use only)";
210
  }
211
  }, 1000);
212
  </script>
213
  <?php
214
- } elseif ( empty( $youtube_api_key ) && ! empty( $youtube_access_token ) && time() > $expiration_time ) {
 
 
 
215
  // refresh token action!
216
- $fts_functions->feed_them_youtube_refresh_token();
217
  }
218
 
219
  $user_id = $test_app_token_response;
@@ -254,7 +261,6 @@ class FTS_Youtube_Options_Page {
254
  }
255
  ?>
256
 
257
-
258
  <div class="fts-clear"></div>
259
  </div>
260
 
46
  <?php echo esc_html__( 'Feed Options', 'feed-them-social' ); ?>
47
  </h1>
48
  <div class="use-of-plugin">
49
+ <?php echo esc_html__( 'Add an API key or get an Access token. You can also choose to display a follow button and position it using the options below. NOTE: The follow button and loadmore option will not work for the Combined Streams extension.', 'feed-them-social' ); ?>
50
  </div>
51
 
52
  <!-- custom option for padding -->
68
  }
69
 
70
  $youtube_user_id_data = esc_url_raw( 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=slickremix&' . $youtube_api_key_or_token );
71
+ // echo '$youtube_user_id_data';
72
+ // echo $youtube_user_id_data;
73
+
74
+ // Get Data for Youtube!
75
  $response = wp_remote_fopen( $youtube_user_id_data );
76
  // Error Check!
77
  $test_app_token_response = json_decode( $response );
83
  <h3>
84
  <?php echo esc_html__( 'YouTube API Key', 'feed-them-social' ); ?>
85
  </h3>
86
+ <p><?php echo esc_html__( 'Click the button below to get an access token. This gives us read-only access to your YouTube videos.', 'feed-them-social' ); ?>
87
  </p>
88
  <p>
89
  <?php
90
  echo sprintf(
91
+ esc_html__( '%1$sLogin and get my Access Token %2$s', 'feed-them-social' ),
92
  '<a href="' . esc_url( 'https://www.slickremix.com/youtube-token/?redirect_url=' . admin_url( 'admin.php?page=fts-youtube-feed-styles-submenu-page' ) ) . '" class="fts-youtube-get-access-token">',
93
  '</a>'
94
  );
117
  <div class="fts-clear"></div>
118
 
119
  <div class="youtube-extra-keys" style="<?php echo esc_attr( $extra_keys ); ?>">
120
+ <div class="youtube-extra-keys-text" style="<?php echo esc_attr( $extra_keys_no ); ?>">
121
+ <a href="<?php echo esc_url( 'https://www.slickremix.com/docs/get-api-key-for-youtube/' ); ?>" target="_blank"><?php echo esc_html__( 'Manually create YouTube API Key', 'feed-them-social' ); ?></a>
122
  </div>
123
 
124
  <div class="feed-them-social-admin-input-label fts-youtube-border-bottom-color-label">
125
+ <?php echo esc_html__( 'API Key Required', 'feed-them-social' ); ?> <?php echo get_option('fts_youtube_custom_tokens'); ?>
126
  </div>
127
 
128
  <input type="text" name="youtube_custom_api_token" class="feed-them-social-admin-input" id="youtube_custom_api_token" value="<?php echo esc_attr( get_option( 'youtube_custom_api_token' ) ); ?>"/>
129
  <div class="fts-clear"></div>
130
  </div>
131
  </div>
132
+ <?php
133
+ // Add yes to show the expiration time and js that runs it below!
134
+ $debug = 'no';
135
+ ?>
136
+ <div class="hide-button-tokens-options" style="<?php echo esc_attr( $extra_keys_no ); ?>;">
137
+ <div class="feed-them-social-admin-input-wrap" style="<?php
138
+ if ( 'no' === $debug ) {
139
+ ?>
140
+ display:none<?php } ?>">
141
  <div class="feed-them-social-admin-input-label">
142
  <?php echo esc_html__( 'Refresh Token', 'feed-them-social' ); ?>
143
  </div>
144
+ <input type="text" name="youtube_custom_refresh_token" readonly class="feed-them-social-admin-input" id="youtube_custom_refresh_token" value="<?php echo esc_attr( get_option( 'youtube_custom_refresh_token' ) ); ?>"/>
145
  <div class="fts-clear"></div>
146
  </div>
147
  <div class="feed-them-social-admin-input-wrap" style="margin-bottom:0;">
148
  <div class="feed-them-social-admin-input-label">
149
+ <?php echo esc_html__( 'Access Token Required', 'feed-them-social' ); ?>
150
  </div>
151
  <input type="text" name="youtube_custom_access_token" class="feed-them-social-admin-input" id="youtube_custom_access_token" value="<?php echo esc_attr( get_option( 'youtube_custom_access_token' ) ); ?>"/>
152
  <div class="fts-clear"></div>
153
  </div>
154
+
155
+ <div class="feed-them-social-admin-input-wrap fts-exp-time-wrapper" style="margin-top:10px;<?php
156
+ if ( 'no' === $debug ) {
157
+ ?>display:none<?php } ?>">
 
 
 
 
 
158
  <div class="feed-them-social-admin-input-label">
159
  <?php echo esc_html__( 'Expiration Time for Access Token', 'feed-them-social' ); ?>
160
  </div>
161
+ <input type="text" name="youtube_custom_token_exp_time" class="feed-them-social-admin-input" id="youtube_custom_token_exp_time" value="<?php echo esc_attr( get_option( 'youtube_custom_token_exp_time' ) ); ?>"/>
162
  <div class="fts-clear"></div>
163
  </div>
164
  </div>
178
  $fts_functions->feed_them_youtube_refresh_token();
179
  }
180
 
181
+ $expiration_time = '' !== get_option( 'youtube_custom_token_exp_time' ) ? get_option( 'youtube_custom_token_exp_time' ) : 500;
182
+
183
  // Give the access token a 5 minute buffer (300 seconds) before getting a new one.
184
  $expiration_time = $expiration_time - 300;
185
  // Test Liner!
186
+ if ( time() < $expiration_time && empty( $youtube_api_key ) && 'yes' === $debug ) {
187
  ?>
188
  <script>
189
  // Set the time * 1000 because js uses milliseconds not seconds and that is what youtube gives us is a 3600 seconds of time
190
+ var countDownDate = new Date( <?php echo esc_js( $expiration_time ); ?> * 1000 ); // <--phpStorm shows error but it's false.
 
191
 
192
  // Update the count down every 1 second
193
  var x = setInterval(function () {
210
  if (distance < 0) {
211
  clearInterval(x);
212
  jQuery('.fts-success').fadeIn();
213
+ document.getElementById("fts-timer").innerHTML = "Token Expired, refresh page to get new a token.";
214
  }
215
  }, 1000);
216
  </script>
217
  <?php
218
+ }
219
+
220
+ // YO! making it be time() < $expiration_time to test ajax, otherwise it should be time() > $expiration_time
221
+ if ( empty( $youtube_api_key ) && ! empty( $youtube_access_token ) && time() > $expiration_time ) {
222
  // refresh token action!
223
+ $fts_functions->feed_them_youtube_refresh_token();
224
  }
225
 
226
  $user_id = $test_app_token_response;
261
  }
262
  ?>
263
 
 
264
  <div class="fts-clear"></div>
265
  </div>
266
 
admin/css/settings-page.css CHANGED
@@ -1 +1 @@
1
- .clear,.fts-clear{clear:both}.display{display:block!important}.facebook-message-generator,.final-instagram-user-id-textarea,.final-shortcode-textarea,.fts-facebook_group-shortcode-form .twitter_name,.fts-fb-event-option-wrap .twitter_name,.shortcode-generator-form,instagram-shortcode-form{display:none}.feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin{font-size:13px;font-weight:400;line-height:20px;max-width:740px;border-bottom:1px solid #ccc}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-instagram-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-pinterest-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-twitter-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-youtube-feed-styles-submenu-page .use-of-plugin{color:#333}.instagram-id-option-wrap{margin-top:25px}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2{margin-top:45px}.fts-super-instagram-options-wrap{padding-top:0}.fts-empty-error input{background-color:#fdfdd3!important}.toplevel_page_feed-them-settings-page h1{font-size:32px}.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h2{margin-top:45px;color:#333}.feed-them-social-admin-wrap h1{color:#fff;margin:0 0 5px;line-height:30px;font-weight:700}.feed-them-social-admin-wrap h4{font-size:12px;font-weight:400;color:#000;margin:1px 0 8px}.feed-them-social-admin-wrap input[type=button],.feed-them-social-admin-wrap input[type=submit]{-webkit-appearance:none}.feed-them-social-admin-wrap input[type=text]{line-height:19px;max-width:100%;font-weight:400}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap{max-width:100%;width:100%;min-height:auto;background:0 0;padding:0;-webkit-box-shadow:none;box-shadow:none;border-radius:1px;position:relative;margin:20px 20px 0 0;-webkit-text-size-adjust:none}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-input-wrap{background:0 0}.feed-them-social-admin-wrap{max-width:806px;min-height:379px;padding:19px;margin:20px 10px 0 0;background-size:cover;-webkit-text-size-adjust:none;overflow:hidden;border-radius:2px}.feed-them_page_fts-youtube-feed-styles-submenu-page h2{color:#333!important;margin-top:45px!important}.feed-them-social-admin-form .feed-them-social-admin-wrap h2{color:#000;font-size:20px;font-weight:400;line-height:23px;margin:15px 0}.feed-them-social-admin-form{padding:5px 0 0;height:auto}.fts-facebook_group-shortcode-form:hover a{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important}.feed-them-social-admin-input-wrap{padding:5px 0 10px;margin-bottom:10px;border-radius:2px;-webkit-border-radius:2px}.pinterest-gen-selection{margin-bottom:25px}.final-shortcode-textarea .feed-them-social-admin-input-label{color:#0361b8;width:auto;font-size:14px}.instagram-shortcode-form .final-shortcode-textarea .feed-them-social-admin-input-label{color:#0361b8}.final-shortcode-textarea{margin-top:25px}.final-shortcode-textarea input{width:100%;margin-top:2px}.feed-them-social-admin-input-label{float:left;width:230px;margin-right:10px;font-size:13px;padding-top:6px;font-weight:700}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-label,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-input-label,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-label{float:left;width:230px;margin-right:10px;font-size:13px;text-transform:none;padding-top:6px}.feed-them-social-admin-input-label a{text-decoration:underline!important;cursor:pointer}.feed_them_social_id-answer a,.im-done{cursor:pointer!important}.feed-them-social-admin-input-example{float:left;font-weight:700;margin-left:10px;padding-top:4px}.feed-them-social-admin-input{float:left;width:305px;max-width:100%;font-weight:400}.feed-them-social-admin-input-default{float:left;width:290px;padding:4px 7px;border:1px solid #dfdfdf;background-color:#fff;font-size:12px}.fts-color-settings-admin-form .feed-them-social-admin-submit-btn{float:left;margin:0;padding:0 20px;height:37px;line-height:35px}.feed-them-social-admin-submit-btn{padding:10px 15px;border-radius:1px;background-color:#31ac45!important;color:#fff!important;font-weight:400;cursor:pointer!important;transition:all .3s ease-in-out;border:none;letter-spacing:1px;outline:0;font-size:12px}.feed-them-social-admin-submit-btn,.feed-them-social-admin-submit-btn:hover{-webkit-transition:background 2s;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.feed-them-social-admin-submit-btn:hover{background-color:#2bbe43!important;color:#fff!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;outline:0}.toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo{right:5px;-webkit-border-radius:3px;border-radius:3px}.feed_them_social_id-answer{padding:15px 0;display:none;font-weight:700}.feed_them_social_id-answer div{padding-bottom:10px}.im-done{padding:10px;background-color:#cd1723!important;border:none!important;color:#fff!important;font-weight:700;text-shadow:1px 1px 3px #000;filter:dropshadow(color=#000000, offx=1, offy=1);-webkit-border-radius:3px;border-radius:3px}#shortcode-form-selector{margin-bottom:10px;height:40px;min-width:290px;line-height:40px}.feed-them-icon-wrap{position:absolute;right:27px;top:25px;width:234px;height:50px}.feed-them-social-admin-wrap,.fts-content,.fts-plugin-reviews{position:relative}.fts-facebook_group-shortcode-form:hover .feed-them-icon-wrap a.facebook-icon{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important;display:none}.feed-them-icon-wrap a{opacity:1;float:right;margin-left:1px;margin-bottom:1px;display:block;height:38px;width:38px;cursor:default;outline:0;border:none;box-shadow:0 1px 1px #222;border-radius:0;transition:all .3s ease-in-out}.feed-them-icon-wrap a,.feed-them-icon-wrap a:hover{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.feed-them-icon-wrap a:hover{opacity:.85;transition:all .3s ease-in-out}.feed-them-icon-wrap a.facebook-icon{background:url(../images/facebook-icon.png) no-repeat}.feed-them-icon-wrap a.twitter-icon{background:url(../images/twitter-icon.png) top right no-repeat}.feed-them-icon-wrap a.instagram-icon{background:url(../images/instagram-icon.png) top right no-repeat}.feed-them-icon-wrap .feed-them-icon-wrap a.youtube-icon{background:url(../images/youtube-icon.png) top right no-repeat}.feed-them-icon-wrap a.pinterest-icon{background:url(../images/pinterest-icon.png) top right no-repeat}a.icon-animate-small{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important}.instructional-text{font-size:13px;line-height:19px;margin:0 0 15px;border-bottom:1px dotted #9c9c9c;color:#212121;padding:0 0 5px}.instructional-text a{color:#0073aa;text-decoration:none}.instructional-text a,.instructional-text a:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.instructional-text a:hover{transition:all .3s ease-in-out}.feed-them-custom-css{padding-top:25px;padding-left:0}.feed-them-clear-cache input{background-color:#f11e2e!important;margin-bottom:10px}.feed-them-clear-cache input:hover{background-color:#f15d2e!important}.feed-them-clear-cache-text{color:#f11e2e!important;font-weight:700;background-color:rgba(255,255,255,.88);padding:10px 16px;margin-top:10px;margin-bottom:10px;border-radius:2px;-webkit-border-radius:2px;opacity:.9}.fts-get-premium-version{margin-right:1em;margin-top:15px;display:block;max-width:210px;text-align:center;text-decoration:none!important}textarea#fts-color-options-main-wrapper-css-input{max-width:100%;min-height:350px;clear:both;background:#f9f9f9;font-family:Consolas,Monaco,monospace;font-size:12px;width:100%;height:300px;outline:0}.fts-custom-css-text{margin-bottom:5px}label.toggle-custom-textarea-show:hover{background:#999}label.toggle-custom-textarea-show{max-width:435px;display:block;height:37px;line-height:35px;float:left;text-align:center;padding:0 15px;background:#818181;border-radius:1px;font-size:12px;clear:both;letter-spacing:1px;margin:5px 5px 10px 0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#fts-color-options-main-wrapper-css-input,.fts-custom-css-text,.toggle-custom-textarea-hide{display:none}.fts-admin-wrap p input[type=checkbox],.fts-wp-header-custom input[type=checkbox]{margin:-1px 7px 0 2px!important}.fts-color-settings-admin-form p,.fts-powered-by-settings-admin-form p{color:#000;font-size:12px;-webkit-text-size-adjust:none}.fts-powered-by-settings-admin-form p{margin-bottom:0}.feed-them-custom-logo-css{margin-top:25px}#discount-for-review{clear:both;margin-bottom:1px;text-align:center;font-weight:700;color:#000;background:rgba(255,255,255,.53);float:right;width:195px;line-height:40px;cursor:pointer}.discount-review-text{clear:both;color:#333;background:rgba(255,255,255,.9);width:165px;float:right;padding:20px 15px;text-align:center;display:none}#discount-for-review a{display:inline-block;width:auto;height:auto;margin:0;padding:0;border:none;box-shadow:none;float:none;cursor:pointer;text-decoration:none;font-size:12px;font-weight:700;color:#0073aa}.fts-color-settings-admin-form label,.fts-color-settings-admin-form span{color:#060606}.fts-color-settings-admin-form p.example{color:#fff;padding-bottom:35px!important}.fts-color-settings-admin-form fieldset label{color:#fff;line-height:30px}.fts-color-settings-admin-form fieldset a{color:#fff;text-decoration:none}@media (max-width:800px){.toplevel_page_feed-them-settings-page .feed-them-social-admin-wrap h1{text-shadow:#fff!important;height:32px!important;width:280px!important;background-size:280px!important}.feed-them-icon-wrap{position:relative;margin:-20px 0 70px;left:0!important;height:auto;clear:both;text-align:left}.feed-them-social-admin-slick-logo{display:none}#fts-date-and-time-format{width:100%}}.fts-failed-api-token,.fts-successful-api-token{clear:both;float:left;padding:7px 14px 7px 10px;border:1px solid rgba(255,255,255,.45);color:#000;margin:10px 20px 0 0;max-width:715px;width:100%}.fts-failed-api-token{background:rgba(245,207,206,.78)}.fts-successful-api-token{background:rgba(220,253,205,.78)}.feed-them_page_fts-facebook-feed-styles-submenu-page .fts-failed-api-token,.feed-them_page_fts-facebook-feed-styles-submenu-page .fts-successful-api-token,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them_page_fts-instagram-feed-styles-submenu-page .fts-successful-api-token,.feed-them_page_fts-instagram-feed-styles-submenu-page .fts-failed-api-token,instagram-failed-message{margin-top:0!important;padding:10px 15px;max-width:708px}.fts-special-working-wrap{padding: 8px 8px 15px 18px!important;max-width:722px!important}#fts_facebook_custom_api_token,#fts_facebook_custom_api_token_biz,#fts_facebook_instagram_custom_api_token{margin-bottom:20px!important}.fts-facebook-custom-api-token-label{display:block;margin:0 40px 4px 0}.fts-facebook-custom-api-token-label a{font-weight:700;color:#df1818}.twitter-api-wrap{margin:20px 0 0}.twitter-api-wrap .feed-them-social-admin-input-wrap{margin:0}.fts-facebook-custom-api-token-label,.fts-instagram-custom-api-token-label{max-width:700px;line-height:21px;font-size:13px}.fts-facebook-get-access-token,.fts-facebook-get-access-token:focus,.fts-instagram-get-access-token,.fts-instagram-get-access-token:focus,.fts-pinterest-get-access-token,.fts-pinterest-get-access-token:focus,.fts-twitter-get-access-token,.fts-twitter-get-access-token:focus,.fts-youtube-get-access-token,.fts-youtube-get-access-token:focus{border-radius:5px;box-shadow:0 1px 1px #999;display:block;clear:both;float:left;font-size:14px;margin-bottom:25px;margin-top:5px;text-decoration:none;font-weight:600}.fts-instagram-get-access-token,.fts-instagram-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/instagram-logo-admin.png) 13px 12px no-repeat #fff;color:#252525}.fts-pinterest-get-access-token,.fts-pinterest-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/pinterest-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525}.fts-facebook-get-access-token:hover,.fts-instagram-get-access-token:hover,.fts-pinterest-get-access-token:hover{color:#666}.fts-facebook-get-access-token,.fts-facebook-get-access-token:focus{padding:18px 16px 19px 182px;background:url(../images/facebook-logo-admin.jpg) 14px 12px no-repeat #fff;color:#252525}@font-face{margin:0 0 9px;font-size:19px}.fts-title-description-settings-page{padding:25px 0 15px;max-width:740px;border-top:1px solid #ccc}.fts-premium-options-message,.fts-premium-options-message2{font-size:13px;padding:20px 25px 25px;line-height:19px;background-color:#fff;margin:0}.fts-premium-options-message a:first-child,.fts-premium-options-message2 a:first-child{font-size:16px;display:inline-block;padding:0;margin:0 0 5px;text-decoration:none}.fts-plugin-reviews{max-width:789px;padding:25px 28px 31px;box-shadow:0 0 1px #d1d1d1;border-radius:1px;background:rgba(255,255,255,1);-webkit-text-size-adjust:none;font-size:13px;line-height:21px;margin-right:10px}.fts-plugin-reviews a{text-decoration:none}.fts-plugin-reviews-rate{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee}h1.plugin-author-note{margin:50px 0 15px!important;font-size:22px;color:#222;z-index:1;position:relative}.toplevel_page_feed-them-settings-page .error{margin:20px 20px 20px 0;max-width:818px}.feed-them_page_fts-facebook-feed-styles-submenu-page .error,.feed-them_page_fts-instagram-feed-styles-submenu-page .error,.feed-them_page_fts-pinterest-feed-styles-submenu-page .error,.feed-them_page_fts-system-info-submenu-page .error,.feed-them_page_fts-system-info-submenu-page .notice,.feed-them_page_fts-twitter-feed-styles-submenu-page .error,.feed-them_page_fts-youtube-feed-styles-submenu-page .error{margin:20px 20px 20px 0!important}.feed-them_page_fts-bar-settings-page .error{margin:20px 20px 20px 5px!important;max-width:1005px}.hashtag-option-small-text,.twitter-hashtag-etc-wrap{display:none}.twitter-hashtag-etc-wrap{margin:15px 0 35px}.fts-content{background-color:rgba(241,241,241,.65);padding:30px;z-index:1;display:nonee;border-radius:2px;box-shadow:0 2px 10px rgba(41,41,41,.51);min-height:315px}.shortcode-generator-form{border-radius:3px;margin-top:15px}.instructional-text a:hover{color:#ea1616;text-decoration:underline;opacity:.8}.final-shortcode-textarea h4{border-bottom:1px solid #fff;padding:0 0 10px;font-size:13px;margin-bottom:15px}.toplevel_page_feed-them-settings-page .fts-content h1{color:#fbfbfb;margin:0 0 12px;line-height:30px;text-shadow:1px 1px 1px rgba(51,51,51,.06);font-weight:600;background:url(../images/feed-them-social-logo.png) no-repeat;height:40px;width:377px;font-size:0}.fb-options-wrap .feed-them-social-admin-submit-btn{margin-top:5px}#fts-social-selector,.twitter-gen-selection{margin-bottom:25px}.fts-text-align-center{text-align:center}.toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo{background:url(../images/footer-logo.png) center no-repeat;width:110px;height:20px;padding:0;margin:20px 0 -20px;display:inline-block;position:relative;bottom:0;opacity:1}.fb-image,.fts-backg{width:100%;height:100%;}.feed-them-social-admin-wrap h3{color:#000;font-size:20px;font-weight:400;line-height:23px;margin:0 0 5px}.feed-them-social-admin-wrap .feed-them-social-admin-form h2{color:#000;font-size:23px;font-weight:400;line-height:23px;margin:15px 0 20px;padding:0}.instagram-id-option-wrap .feed-them-social-admin-submit-btn,.toplevel_page_feed-them-settings-page .feed-them-social-admin-submit-btn{margin-top:0;margin-left:0!important}.toplevel_page_feed-them-settings-page .instagram-id-option-wrap .feed-them-social-admin-submit-btn{margin-top:5px!important;margin-left:0!important}.feed-them-clear-cache .use-of-plugin{margin:0}.feed-them-clear-cache h2,.feed-them-custom-css h2,.feed-them-custom-logo-css h2{margin-bottom:10px;margin-top:5px;font-size:17px;padding-top:20px;border-top:1px dotted rgba(177,177,177,.88);color:#060606}.feed-them-clear-cache h2{border:none;margin-top:17px;padding-top:0}.feed-them-custom-css p,.feed-them-custom-logo-css p{margin:0 0 5px}#fts-date-and-time-format{margin-bottom:10px}.feed-them-social-admin-submit-btn{margin-top:15px!important}#fts_admin_bar_menu{margin-bottom:0;margin-left:31px}.fts-backg{position:absolute;top:0;right:0;z-index:0;opacity:1;-webkit-animation:ftsettings 5s;animation:ftsettings 5s;background:rgba(255,255,255,.8)}@-webkit-keyframes ftsettings{from{opacity:0}to{opacity:1}}@keyframes ftsettings{from{opacity:0}to{opacity:1}}.fb-reviews,.reviews-options{display:none}.fts-required-token-message{padding:15px;background:#fcfcfc;margin:12px 0 20px;border-left:4px solid #fb3939}.custom_time_ago_wrap{padding-top:10px}.custom_time_ago_wrap h2{margin-bottom:20px}.custom_time_ago_wrap label{color:#000;display:inline-block;min-width:75px;margin:0 10px 12px;font-size:13px}.slideshow-wrap{margin-top:18px}.fb-page-list{margin:0;display:block;max-width:740px}.fb-page-list li{background:#fff;padding:8px 10px 10px;margin:0;border-left:15px solid #3b5999;border-bottom:1px solid #e9ebee;cursor:pointer}.fb-page-list li .feed-them-social-admin-submit-btn{display:none;margin-top:9px!important;position:absolute;right:15px;top:7px}.fb-page-list li:hover{background:rgba(255,255,255,.57)}.fb-image{margin:0 15px 0 0;float:left;line-height:50px;text-align:center!important;max-width:50px;min-width:50px;vertical-align:baseline;min-height:50px;max-height: 50px;}.fb-image img{display:inline-block;vertical-align:middle;border-radius:50px}.fb-name{margin:0;display:inline-block;line-height:15px;color:#4c4c4c;font-weight:500;padding-top:10px}.board-name,.combine-instagram-hashtag-option-text,.combine_instagram_hashtag,.combine_instagram_hashtag_type,.fb-video-play-btn-options-content,.fb-video-play-btn-options-wrap,.fb_album_photos_id,.fts-facebook-grid-options-wrap,.fts-facebook-load-more-options-wrap,.fts-facebook-load-more-options2-wrap,.fts-fb-id,.fts-instagram-load-more-options-wrap,.fts-super-facebook-options-wrap,.fts-youtube-load-more-options-wrap,.fts-youtube-load-more-options2-wrap,.instagram-hashtag-option-text,.instagram-location-option-text,.instagram_hashtag_type,.page-token,.pinterest-board-and-name-text,.slider_options_wrap,.slideshow-wrap,.youtube_align_comments_wrap,.youtube_channelID2,.youtube_name,.youtube_name2,.youtube_playlistID,.youtube_playlistID2,.youtube_singleVideoID{display:none}.fts-pages-info{background:#3b5999;max-width:710px;padding:10px 15px 12px;color:#fff;margin-top:1px;letter-spacing:.5px}.fts-fb-page-thumb{float:left;margin-right:10px;border-radius:50px}.fts-successful-api-token h3{margin-bottom:0;margin-top:4px;font-weight:700}.use-of-plugin{color:#000;font-size:13px;font-weight:400;line-height:20px;max-width:60%;padding-bottom:12px;margin-bottom:0}.fts-admin-button-no-work{margin:0 0 0 25px;line-height:41px}.twitter_hashtag_etc_name{padding-top:0}.page.inst-text-facebook-page{display:block}.slider_options_wrap.not-active-premium-fields,.slideshow-wrap .feed-them-social-admin-input-default{display:block!important}.fts-premium-options-message a.not-active-title:first-child{font-size:16px!important;display:block!important;padding:0!important;margin:0 0 5px!important;text-decoration:none!important}.combine-facebook-wrap,.combine-grid-options-wrap,.combine-instagram-wrap,.combine-pinterest-wrap,.combine-twitter-wrap,.combine-youtube-wrap,.combine_board_id,.combine_playlist_id,.combine_youtube_name,.display-comments-wrap,.facebook-reviews-wrap,.fts-premium-options-message,.fts-twitter-grid-options-wrap,.fts-twitter-load-more-options-wrap,.fts-twitter-load-more-options2-wrap,.inst-text-facebook-reviews,.instagram-profile-options-wrap,.like-box-wrap{display:none}.sectioned-options-title{margin-top:15px!important;margin-bottom:15px!important;border-bottom:1px solid #f1f1f1;padding:10px 10px 10px 30px;font-size:18px!important;color:#060606!important;background:#fff;margin-left:-30px!important;box-shadow:0 1px 1px rgba(153,153,153,.59)}.facebook-image-animation-option-wrap,.multiple_facebook .facebook-loadmore-wrap,.multiple_facebook .facebook-title-options-wrap,.multiple_facebook .like-box-wrap,.multiple_facebook h2{display:none!important}.fts-fb-load-more,.fts-fb-spinner{text-align:center}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fts-hide-me,.popup-gallery-fb .fts-fb-caption{display:none}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:#fff!important;cursor:pointer;color:#787a7b;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;max-width:740px!important;font-weight:700}.toggle-custom-textarea-show span,label.toggle-custom-textarea-show{color:#fffefe}.fts-logo-header{margin-bottom:20px!important}.fts-logo-subheader{margin-bottom:10px!important}.fts-color-settings-admin-form label{font-weight:700;min-width:100px}#fts_clear_cache_developer_mode{margin-left:28px}.toplevel_page_feed-them-settings-page .pane-active{display:block}.toplevel_page_feed-them-settings-page .fts-tabbed{display:block;float:left;color:#545454;font-weight:700;text-decoration:none;line-height:1.9;text-align:center;cursor:pointer;border-bottom:1px solid #ccc;padding:10px 38px!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:115px;background:#fff;margin-right:1px!important;font-size:13px;width:auto!important}.toplevel_page_feed-them-settings-page label.tab-active{background:#0073aa!important;color:#fff!important}.toplevel_page_feed-them-settings-page .fts-tab-content{clear:both;padding-top:15px}.feed-them-social-admin-input-label small{font-weight:400}.not-active-title:hover h3{color:#028fd2}.not-active-title h3{color:#0073aa}@media (max-width:797px){.toplevel_page_feed-them-settings-page #fts-tabs{margin-top:140px!important}}@media (max-width:450px){#shortcode-form-selector{min-width:270px!important}}@media (max-width:500px){.toplevel_page_feed-them-settings-page #fts-tab-content1 .use-of-plugin{max-width:100%!important}}#fts-timezone{max-width:300px}.fts-instagram-username-picker-wrap li{clear:both;background:#e6e6e6;padding:10px;margin-bottom:1px;display:block;width:100%;line-height:16px;float:left}.combine-twitter-hashtag-etc-wrap,.facebook_hide_date,.facebook_hide_name,.facebook_hide_thumbnail,.facebook_show_media,.fts-success,.youtube_video_single_info_display{display:none}.fts-instagram-username-picker-wrap li.fts-insta-id-active,.fts-instagram-username-picker-wrap li:hover{background:#0073aa;color:#fff}.ft-instagram-username-picker{clear:both;margin:0 0 1px;height:65px}.fts-insta-profile-picture-div img{float:left;max-width:65px;margin-right:15px;border-radius:100px}.fts-insta-fullname-div{padding:5px 0 2px}.fts-insta-id-div{font-style:italic;padding:5px 0 0}.fts-instagram-username-picker-wrap{padding-right:20px;max-height:310px;overflow:auto;margin:0}.fts-instagram-username-picker-wrap li:first-child{margin-top:10px}.fts-instagram-username-picker-wrap li:last-child{margin-bottom:10px}.fts-empty-error input,input.fts-empty-error{background:#ffffd8!important}.fts-instagram-username-picker-wrap li{color:#222}.fts-highlight{background:#0073aa;border-radius:20px;color:#fff;padding:0 5px}.fts-youtube-get-access-token,.fts-youtube-get-access-token:focus{padding:18px 16px 19px 188px;background: url(../images/google-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525;}.fts-twitter-get-access-token,.fts-twitter-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/twitter-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525}.fts-twitter-add-all-keys-click-option,.fts-youtube-add-all-keys-click-option{margin:-10px 0 15px;text-align:left;clear:both}.twitter-extra-keys-text,.youtube-extra-keys-text{max-width:550px;margin-bottom:15px}.feed-them_page_fts-twitter-feed-styles-submenu-page .fts-successful-api-token{margin-top:0;margin-bottom:-10px}#fts-timer{padding:6px 0 0 1px;float:left}@font-face{font-family:FontAwesomeSlick;src:url(../../feeds/css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../../feeds/css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../../feeds/css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../../feeds/css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../../feeds/css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}.fts-success:before{font-family:FontAwesomeSlick!important;content:"\f00c"!important;font-size:14px;position:relative;line-height:19px}.fts-success{margin:3px 6px 0;padding:2px 4px;color:#fff;background:#01a701;border-radius:20px;float:left;font-size:10px!important;width:auto;height:18px}#discount-for-review a:hover{color:#0073aa}.fb-sublist{border:none!important;overflow:auto;height:200px;background:#f7f7f7}.fb-sublist li{border:1px solid #f7f7f7!important;border-bottom:0;border-right:0}.fts-token-save{border-radius:100px}.fb-sublist .fb-name{letter-spacing:0!important;font-size:13px}.fts-fb-location-text-wrap{padding:8px;text-align:center;color:#f7f7f7;font-weight:700;background:#00a400;margin:10px 0 0}.fb-name small{display:block;line-height:0;letter-spacing:0;color:#969696}.fts-successful-api-token small{font-size:12px}.fb-page-list li{position:relative}.fts-successful-api-token h3 a{text-decoration:none!important;color:#262627;text-shadow:1px 1px 1px #fff;font-size:17px}.fts-successful-api-token h3 a:hover,.fts-successful-api-token img:hover{opacity:.8}.fb-page-list .fts-fb-load-more{color:#00a400}.feed-them-icon-wrap a.youtube-icon{background:url(../images/youtube-icon.png) top right no-repeat}.combine-instagram-wrap .fts-instagram-hashtag-location-options-message{margin-top:25px;margin-bottom:-25px}.fts-fb-token-wrap .dashicons-admin-links:before{font-size:20px;color:#3b5999}.fb-page-master-list .dashicons-admin-links:before{top:-3px;position:relative}.fts-successful-api-token .dashicons-admin-links:before{top:3px;position:relative}.fts-arrow-icon:before{content:'\f054';font-family:FontAwesomeSlick!important;color:#00a400;font-size:18px!important;position:relative;top:2px;padding:0 8px}.fts-fb-icon:before{content:'\f082';font-family:FontAwesomeSlick!important;color:#3a5899;font-size:20px!important;position:relative;top:2px;padding-right:5px}.fts-insta-icon:before{content:'\f16d';font-family:FontAwesomeSlick!important;color:#263232;font-size:22px!important;position:relative;top:3px;padding-right:5px}.fts-special-working-wrap .fts-arrow-icon:before{font-size:18px!important;top:1px}.fts-special-working-wrap .fts-fb-icon:before{top:1px}.fts-special-working-wrap .fts-insta-icon:before{top:2px}.instagram_hashtag{display:none}
1
+ .clear,.fts-clear{clear:both}.display{display:block!important}.facebook-message-generator,.final-instagram-user-id-textarea,.final-shortcode-textarea,.fts-facebook_group-shortcode-form .twitter_name,.fts-fb-event-option-wrap .twitter_name,.shortcode-generator-form,instagram-shortcode-form{display:none}.feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin{font-size:13px;font-weight:400;line-height:20px;max-width:740px;border-bottom:1px solid #ccc}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-instagram-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-pinterest-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-twitter-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-youtube-feed-styles-submenu-page .use-of-plugin{color:#333}.instagram-id-option-wrap{margin-top:25px}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2{margin-top:45px}.fts-super-instagram-options-wrap{padding-top:0}.fts-empty-error input{background-color:#fdfdd3!important}.toplevel_page_feed-them-settings-page h1{font-size:32px}.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h2{margin-top:45px;color:#333}.feed-them-social-admin-wrap h1{color:#fff;margin:0 0 5px;line-height:30px;font-weight:700}.feed-them-social-admin-wrap h4{font-size:12px;font-weight:400;color:#000;margin:1px 0 8px}.feed-them-social-admin-wrap input[type=button],.feed-them-social-admin-wrap input[type=submit]{-webkit-appearance:none}.feed-them-social-admin-wrap input[type=text]{line-height:19px;max-width:100%;font-weight:400}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap{max-width:100%;width:100%;min-height:auto;background:0 0;padding:0;-webkit-box-shadow:none;box-shadow:none;border-radius:1px;position:relative;margin:20px 20px 0 0;-webkit-text-size-adjust:none}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-input-wrap{background:0 0}.feed-them-social-admin-wrap{max-width:806px;min-height:379px;padding:19px;margin:20px 10px 0 0;background-size:cover;-webkit-text-size-adjust:none;overflow:hidden;border-radius:2px}.feed-them_page_fts-youtube-feed-styles-submenu-page h2{color:#333!important;margin-top:45px!important}.feed-them-social-admin-form .feed-them-social-admin-wrap h2{color:#000;font-size:20px;font-weight:400;line-height:23px;margin:15px 0}.feed-them-social-admin-form{padding:5px 0 0;height:auto}.fts-facebook_group-shortcode-form:hover a{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important}.feed-them-social-admin-input-wrap{padding:5px 0 10px;margin-bottom:10px;border-radius:2px;-webkit-border-radius:2px}.pinterest-gen-selection{margin-bottom:25px}.final-shortcode-textarea .feed-them-social-admin-input-label{color:#0361b8;width:auto;font-size:14px}.instagram-shortcode-form .final-shortcode-textarea .feed-them-social-admin-input-label{color:#0361b8}.final-shortcode-textarea{margin-top:25px}.final-shortcode-textarea input{width:100%;margin-top:2px}.feed-them-social-admin-input-label{float:left;width:230px;margin-right:10px;font-size:13px;padding-top:6px;font-weight:700;padding-left: 10px;}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-label,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-input-label,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-label{float:left;width:230px;margin-right:10px;font-size:13px;text-transform:none;padding-top:6px;padding-left: 10px;}.feed-them-social-admin-input-label a{text-decoration:underline!important;cursor:pointer}.feed_them_social_id-answer a,.im-done{cursor:pointer!important}.feed-them-social-admin-input-example{float:left;font-weight:700;margin-left:10px;padding-top:4px}.feed-them-social-admin-input{float:left;width:305px;max-width:100%;font-weight:400}.feed-them-social-admin-input-default{float:left;width:290px;padding:4px 7px;border:1px solid #dfdfdf;background-color:#fff;font-size:12px}.fts-color-settings-admin-form .feed-them-social-admin-submit-btn{float:left;margin:0;padding:0 20px;height:37px;line-height:35px}.feed-them-social-admin-submit-btn{padding:10px 15px;border-radius:1px;background-color:#31ac45!important;color:#fff!important;font-weight:400;cursor:pointer!important;transition:all .3s ease-in-out;border:none;letter-spacing:1px;outline:0;font-size:12px}.feed-them-social-admin-submit-btn,.feed-them-social-admin-submit-btn:hover{-webkit-transition:background 2s;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.feed-them-social-admin-submit-btn:hover{background-color:#2bbe43!important;color:#fff!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;outline:0}.toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo{right:5px;-webkit-border-radius:3px;border-radius:3px}.feed_them_social_id-answer{padding:15px 0;display:none;font-weight:700}.feed_them_social_id-answer div{padding-bottom:10px}.im-done{padding:10px;background-color:#cd1723!important;border:none!important;color:#fff!important;font-weight:700;text-shadow:1px 1px 3px #000;filter:dropshadow(color=#000000, offx=1, offy=1);-webkit-border-radius:3px;border-radius:3px}#shortcode-form-selector{margin-bottom:10px;height:40px;min-width:290px;line-height:40px}.feed-them-icon-wrap{position:absolute;right:27px;top:25px;width:234px;height:50px}.feed-them-social-admin-wrap,.fts-content,.fts-plugin-reviews{position:relative}.fts-facebook_group-shortcode-form:hover .feed-them-icon-wrap a.facebook-icon{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important;display:none}.feed-them-icon-wrap a{opacity:1;float:right;margin-left:1px;margin-bottom:1px;display:block;height:38px;width:38px;cursor:default;outline:0;border:none;box-shadow:0 1px 1px #222;border-radius:0;transition:all .3s ease-in-out}.feed-them-icon-wrap a,.feed-them-icon-wrap a:hover{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.feed-them-icon-wrap a:hover{opacity:.85;transition:all .3s ease-in-out}.feed-them-icon-wrap a.facebook-icon{background:url(../images/facebook-icon.png) no-repeat}.feed-them-icon-wrap a.twitter-icon{background:url(../images/twitter-icon.png) top right no-repeat}.feed-them-icon-wrap a.instagram-icon{background:url(../images/instagram-icon.png) top right no-repeat}.feed-them-icon-wrap .feed-them-icon-wrap a.youtube-icon{background:url(../images/youtube-icon.png) top right no-repeat}.feed-them-icon-wrap a.pinterest-icon{background:url(../images/pinterest-icon.png) top right no-repeat}a.icon-animate-small{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important}.instructional-text{font-size:13px;line-height:19px;margin:0 0 15px;border-bottom:1px dotted #9c9c9c;color:#212121;padding:0 0 5px}.instructional-text a{color:#0073aa;text-decoration:none}.instructional-text a,.instructional-text a:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.instructional-text a:hover{transition:all .3s ease-in-out}.feed-them-custom-css{padding-top:25px;padding-left:0}.feed-them-clear-cache input{background-color:#f11e2e!important;margin-bottom:10px}.feed-them-clear-cache input:hover{background-color:#f15d2e!important}.feed-them-clear-cache-text{color:#f11e2e!important;font-weight:700;background-color:rgba(255,255,255,.88);padding:10px 16px;margin-top:10px;margin-bottom:10px;border-radius:2px;-webkit-border-radius:2px;opacity:.9}.fts-get-premium-version{margin-right:1em;margin-top:15px;display:block;max-width:210px;text-align:center;text-decoration:none!important}textarea#fts-color-options-main-wrapper-css-input{max-width:100%;min-height:350px;clear:both;background:#f9f9f9;font-family:Consolas,Monaco,monospace;font-size:12px;width:100%;height:300px;outline:0}.fts-custom-css-text{margin-bottom:5px}label.toggle-custom-textarea-show:hover{background:#999}label.toggle-custom-textarea-show{max-width:435px;display:block;height:37px;line-height:35px;float:left;text-align:center;padding:0 15px;background:#818181;border-radius:1px;font-size:12px;clear:both;letter-spacing:1px;margin:5px 5px 10px 0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#fts-color-options-main-wrapper-css-input,.fts-custom-css-text,.toggle-custom-textarea-hide{display:none}.fts-admin-wrap p input[type=checkbox],.fts-wp-header-custom input[type=checkbox]{margin:-1px 7px 0 2px!important}.fts-color-settings-admin-form p,.fts-powered-by-settings-admin-form p{color:#000;font-size:12px;-webkit-text-size-adjust:none}.fts-powered-by-settings-admin-form p{margin-bottom:0}.feed-them-custom-logo-css{margin-top:25px}#discount-for-review{clear:both;margin-bottom:1px;text-align:center;font-weight:700;color:#000;background:rgba(255,255,255,.53);float:right;width:195px;line-height:40px;cursor:pointer}.discount-review-text{clear:both;color:#333;background:rgba(255,255,255,.9);width:165px;float:right;padding:20px 15px;text-align:center;display:none}#discount-for-review a{display:inline-block;width:auto;height:auto;margin:0;padding:0;border:none;box-shadow:none;float:none;cursor:pointer;text-decoration:none;font-size:12px;font-weight:700;color:#0073aa}.fts-color-settings-admin-form label,.fts-color-settings-admin-form span{color:#060606}.fts-color-settings-admin-form p.example{color:#fff;padding-bottom:35px!important}.fts-color-settings-admin-form fieldset label{color:#fff;line-height:30px}.fts-color-settings-admin-form fieldset a{color:#fff;text-decoration:none}@media (max-width:800px){.toplevel_page_feed-them-settings-page .feed-them-social-admin-wrap h1{text-shadow:#fff!important;height:32px!important;width:280px!important;background-size:280px!important}.feed-them-icon-wrap{position:relative;margin:-20px 0 70px;left:0!important;height:auto;clear:both;text-align:left}.feed-them-social-admin-slick-logo{display:none}#fts-date-and-time-format{width:100%}}.fts-failed-api-token,.fts-successful-api-token{clear:both;float:left;padding:7px 14px 7px 10px;border:1px solid rgba(255,255,255,.45);color:#000;margin:10px 20px 0 0;max-width:715px;width:100%}.fts-failed-api-token{background:rgba(245,207,206,.78)}.fts-successful-api-token{background:rgba(220,253,205,.78)}.feed-them_page_fts-facebook-feed-styles-submenu-page .fts-failed-api-token,.feed-them_page_fts-facebook-feed-styles-submenu-page .fts-successful-api-token,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them_page_fts-instagram-feed-styles-submenu-page .fts-successful-api-token,.feed-them_page_fts-instagram-feed-styles-submenu-page .fts-failed-api-token,instagram-failed-message{margin-top:0!important;padding:10px 15px;max-width:708px}.fts-special-working-wrap{padding: 8px 8px 15px 18px!important;max-width:722px!important}#fts_facebook_custom_api_token,#fts_facebook_custom_api_token_biz,#fts_facebook_instagram_custom_api_token{margin-bottom:20px!important}.fts-facebook-custom-api-token-label{display:block;margin:0 40px 4px 0}.fts-facebook-custom-api-token-label a{font-weight:700;color:#df1818}.twitter-api-wrap{margin:20px 0 0}.twitter-api-wrap .feed-them-social-admin-input-wrap{margin:0}.fts-facebook-custom-api-token-label,.fts-instagram-custom-api-token-label{max-width:700px;line-height:21px;font-size:13px}.fts-facebook-get-access-token,.fts-facebook-get-access-token:focus,.fts-instagram-get-access-token,.fts-instagram-get-access-token:focus,.fts-pinterest-get-access-token,.fts-pinterest-get-access-token:focus,.fts-twitter-get-access-token,.fts-twitter-get-access-token:focus,.fts-youtube-get-access-token,.fts-youtube-get-access-token:focus{border-radius:5px;box-shadow:0 1px 1px #999;display:block;clear:both;float:left;font-size:14px;margin-bottom:25px;margin-top:5px;text-decoration:none;font-weight:600}.fts-instagram-get-access-token,.fts-instagram-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/instagram-logo-admin.png) 13px 12px no-repeat #fff;color:#252525}.fts-pinterest-get-access-token,.fts-pinterest-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/pinterest-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525}.fts-facebook-get-access-token:hover,.fts-instagram-get-access-token:hover,.fts-pinterest-get-access-token:hover{color:#666}.fts-facebook-get-access-token,.fts-facebook-get-access-token:focus{padding:18px 16px 19px 182px;background:url(../images/facebook-logo-admin.jpg) 14px 12px no-repeat #fff;color:#252525}@font-face{margin:0 0 9px;font-size:19px}.fts-title-description-settings-page{padding:25px 0 15px;max-width:740px;border-top:1px solid #ccc}.fts-premium-options-message,.fts-premium-options-message2{font-size:13px;padding:20px 25px 25px;line-height:19px;background-color:#fff;margin:0}.fts-premium-options-message a:first-child,.fts-premium-options-message2 a:first-child{font-size:16px;display:inline-block;padding:0;margin:0 0 5px;text-decoration:none}.fts-plugin-reviews{max-width:789px;padding:25px 28px 31px;box-shadow:0 0 1px #d1d1d1;border-radius:1px;background:rgba(255,255,255,1);-webkit-text-size-adjust:none;font-size:13px;line-height:21px;margin-right:10px}.fts-plugin-reviews a{text-decoration:none}.fts-plugin-reviews-rate{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee}h1.plugin-author-note{margin:50px 0 15px!important;font-size:22px;color:#222;z-index:1;position:relative}.toplevel_page_feed-them-settings-page .error{margin:20px 20px 20px 0;max-width:818px}.feed-them_page_fts-facebook-feed-styles-submenu-page .error,.feed-them_page_fts-instagram-feed-styles-submenu-page .error,.feed-them_page_fts-pinterest-feed-styles-submenu-page .error,.feed-them_page_fts-system-info-submenu-page .error,.feed-them_page_fts-system-info-submenu-page .notice,.feed-them_page_fts-twitter-feed-styles-submenu-page .error,.feed-them_page_fts-youtube-feed-styles-submenu-page .error{margin:20px 20px 20px 0!important}.feed-them_page_fts-bar-settings-page .error{margin:20px 20px 20px 5px!important;max-width:1005px}.hashtag-option-small-text,.twitter-hashtag-etc-wrap{display:none}.twitter-hashtag-etc-wrap{margin:15px 0 35px}.fts-content{background-color:rgba(241,241,241,.65);padding:30px;z-index:1;display:nonee;border-radius:2px;box-shadow:0 2px 10px rgba(41,41,41,.51);min-height:315px}.shortcode-generator-form{border-radius:3px;margin-top:15px}.instructional-text a:hover{color:#ea1616;text-decoration:underline;opacity:.8}.final-shortcode-textarea h4{border-bottom:1px solid #fff;padding:0 0 10px;font-size:13px;margin-bottom:15px}.toplevel_page_feed-them-settings-page .fts-content h1{color:#fbfbfb;margin:0 0 12px;line-height:30px;text-shadow:1px 1px 1px rgba(51,51,51,.06);font-weight:600;background:url(../images/feed-them-social-logo.png) no-repeat;height:40px;width:377px;font-size:0}.fb-options-wrap .feed-them-social-admin-submit-btn{margin-top:5px}#fts-social-selector,.twitter-gen-selection{margin-bottom:25px}.fts-text-align-center{text-align:center}.toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo{background:url(../images/footer-logo.png) center no-repeat;width:110px;height:20px;padding:0;margin:20px 0 -20px;display:inline-block;position:relative;bottom:0;opacity:1}.fb-image,.fts-backg{width:100%;height:100%;}.feed-them-social-admin-wrap h3{color:#000;font-size:20px;font-weight:400;line-height:23px;margin:0 0 5px}.feed-them-social-admin-wrap .feed-them-social-admin-form h2{color:#000;font-size:23px;font-weight:400;line-height:23px;margin:15px 0 20px;padding:0}.instagram-id-option-wrap .feed-them-social-admin-submit-btn,.toplevel_page_feed-them-settings-page .feed-them-social-admin-submit-btn{margin-top:0;margin-left:0!important}.toplevel_page_feed-them-settings-page .instagram-id-option-wrap .feed-them-social-admin-submit-btn{margin-top:5px!important;margin-left:0!important}.feed-them-clear-cache .use-of-plugin{margin:0}.feed-them-clear-cache h2,.feed-them-custom-css h2,.feed-them-custom-logo-css h2{margin-bottom:10px;margin-top:5px;font-size:17px;padding-top:20px;border-top:1px dotted rgba(177,177,177,.88);color:#060606}.feed-them-clear-cache h2{border:none;margin-top:17px;padding-top:0}.feed-them-custom-css p,.feed-them-custom-logo-css p{margin:0 0 5px}#fts-date-and-time-format{margin-bottom:10px}.feed-them-social-admin-submit-btn{margin-top:15px!important}#fts_admin_bar_menu{margin-bottom:0;margin-left:31px}.fts-backg{position:absolute;top:0;right:0;z-index:0;opacity:1;-webkit-animation:ftsettings 5s;animation:ftsettings 5s;background:rgba(255,255,255,.8)}@-webkit-keyframes ftsettings{from{opacity:0}to{opacity:1}}@keyframes ftsettings{from{opacity:0}to{opacity:1}}.fb-reviews,.reviews-options{display:none}.fts-required-token-message{padding:15px;background:#fcfcfc;margin:12px 0 20px;border-left:4px solid #fb3939}.custom_time_ago_wrap{padding-top:10px}.custom_time_ago_wrap h2{margin-bottom:20px}.custom_time_ago_wrap label{color:#000;display:inline-block;min-width:75px;margin:0 10px 12px;font-size:13px}.slideshow-wrap{margin-top:18px}.fb-page-list{margin:0;display:block;max-width:740px}.fb-page-list li{background:#fff;padding:8px 10px 10px;margin:0;border-left:15px solid #3b5999;border-bottom:1px solid #e9ebee;cursor:pointer}.fb-page-list li .feed-them-social-admin-submit-btn{display:none;margin-top:9px!important;position:absolute;right:15px;top:7px}.fb-page-list li:hover{background:rgba(255,255,255,.57)}.fb-image{margin:0 15px 0 0;float:left;line-height:50px;text-align:center!important;max-width:50px;min-width:50px;vertical-align:baseline;min-height:50px;max-height: 50px;}.fb-image img{display:inline-block;vertical-align:middle;border-radius:50px}.fb-name{margin:0;display:inline-block;line-height:15px;color:#4c4c4c;font-weight:500;padding-top:10px}.board-name,.combine-instagram-hashtag-option-text,.combine_instagram_hashtag,.combine_instagram_hashtag_type,.fb-video-play-btn-options-content,.fb-video-play-btn-options-wrap,.fb_album_photos_id,.fts-facebook-grid-options-wrap,.fts-facebook-load-more-options-wrap,.fts-facebook-load-more-options2-wrap,.fts-fb-id,.fts-instagram-load-more-options-wrap,.fts-super-facebook-options-wrap,.fts-youtube-load-more-options-wrap,.fts-youtube-load-more-options2-wrap,.instagram-hashtag-option-text,.instagram-location-option-text,.instagram_hashtag_type,.page-token,.pinterest-board-and-name-text,.slider_options_wrap,.slideshow-wrap,.youtube_align_comments_wrap,.youtube_channelID2,.youtube_name,.youtube_name2,.youtube_playlistID,.youtube_playlistID2,.youtube_singleVideoID{display:none}.fts-pages-info{background:#3b5999;max-width:710px;padding:10px 15px 12px;color:#fff;margin-top:1px;letter-spacing:.5px}.fts-fb-page-thumb{float:left;margin-right:10px;border-radius:50px}.fts-successful-api-token h3{margin-bottom:0;margin-top:4px;font-weight:700}.use-of-plugin{color:#000;font-size:13px;font-weight:400;line-height:20px;max-width:60%;padding-bottom:12px;margin-bottom:0}.fts-admin-button-no-work{margin:0 0 0 25px;line-height:41px}.twitter_hashtag_etc_name{padding-top:0}.page.inst-text-facebook-page{display:block}.slider_options_wrap.not-active-premium-fields,.slideshow-wrap .feed-them-social-admin-input-default{display:block!important}.fts-premium-options-message a.not-active-title:first-child{font-size:16px!important;display:block!important;padding:0!important;margin:0 0 5px!important;text-decoration:none!important}.combine-facebook-wrap,.combine-grid-options-wrap,.combine-instagram-wrap,.combine-pinterest-wrap,.combine-twitter-wrap,.combine-youtube-wrap,.combine_board_id,.combine_playlist_id,.combine_youtube_name,.display-comments-wrap,.facebook-reviews-wrap,.fts-premium-options-message,.fts-twitter-grid-options-wrap,.fts-twitter-load-more-options-wrap,.fts-twitter-load-more-options2-wrap,.inst-text-facebook-reviews,.instagram-profile-options-wrap,.like-box-wrap{display:none}.sectioned-options-title{margin-top:15px!important;margin-bottom:15px!important;border-bottom:1px solid #f1f1f1;padding:10px 10px 10px 30px;font-size:18px!important;color:#060606!important;background:#fff;margin-left:-30px!important;box-shadow:0 1px 1px rgba(153,153,153,.59)}.facebook-image-animation-option-wrap,.multiple_facebook .facebook-loadmore-wrap,.multiple_facebook .facebook-title-options-wrap,.multiple_facebook .like-box-wrap,.multiple_facebook h2{display:none!important}.fts-fb-load-more,.fts-fb-spinner{text-align:center}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fts-hide-me,.popup-gallery-fb .fts-fb-caption{display:none}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:#fff!important;cursor:pointer;color:#787a7b;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;max-width:740px!important;font-weight:700}.toggle-custom-textarea-show span,label.toggle-custom-textarea-show{color:#fffefe}.fts-logo-header{margin-bottom:20px!important}.fts-logo-subheader{margin-bottom:10px!important}.fts-color-settings-admin-form label{font-weight:700;min-width:100px}#fts_clear_cache_developer_mode{margin-left:28px}.toplevel_page_feed-them-settings-page .pane-active{display:block}.toplevel_page_feed-them-settings-page .fts-tabbed{display:block;float:left;color:#545454;font-weight:700;text-decoration:none;line-height:1.9;text-align:center;cursor:pointer;border-bottom:1px solid #ccc;padding:10px 38px!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:115px;background:#fff;margin-right:1px!important;font-size:13px;width:auto!important}.toplevel_page_feed-them-settings-page label.tab-active{background:#0073aa!important;color:#fff!important}.toplevel_page_feed-them-settings-page .fts-tab-content{clear:both;padding-top:15px}.feed-them-social-admin-input-label small{font-weight:400}.not-active-title:hover h3{color:#028fd2}.not-active-title h3{color:#0073aa}@media (max-width:797px){.toplevel_page_feed-them-settings-page #fts-tabs{margin-top:140px!important}}@media (max-width:450px){#shortcode-form-selector{min-width:270px!important}}@media (max-width:500px){.toplevel_page_feed-them-settings-page #fts-tab-content1 .use-of-plugin{max-width:100%!important}}#fts-timezone{max-width:300px}.fts-instagram-username-picker-wrap li{clear:both;background:#e6e6e6;padding:10px;margin-bottom:1px;display:block;width:100%;line-height:16px;float:left}.combine-twitter-hashtag-etc-wrap,.facebook_hide_date,.facebook_hide_name,.facebook_hide_thumbnail,.facebook_show_media,.fts-success,.youtube_video_single_info_display{display:none}.fts-instagram-username-picker-wrap li.fts-insta-id-active,.fts-instagram-username-picker-wrap li:hover{background:#0073aa;color:#fff}.ft-instagram-username-picker{clear:both;margin:0 0 1px;height:65px}.fts-insta-profile-picture-div img{float:left;max-width:65px;margin-right:15px;border-radius:100px}.fts-insta-fullname-div{padding:5px 0 2px}.fts-insta-id-div{font-style:italic;padding:5px 0 0}.fts-instagram-username-picker-wrap{padding-right:20px;max-height:310px;overflow:auto;margin:0}.fts-instagram-username-picker-wrap li:first-child{margin-top:10px}.fts-instagram-username-picker-wrap li:last-child{margin-bottom:10px}.fts-empty-error input,input.fts-empty-error{background:#ffffd8!important}.fts-instagram-username-picker-wrap li{color:#222}.fts-highlight{background:#0073aa;border-radius:20px;color:#fff;padding:0 5px}.fts-youtube-get-access-token,.fts-youtube-get-access-token:focus{padding:18px 16px 19px 188px;background: url(../images/google-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525;}.fts-twitter-get-access-token,.fts-twitter-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/twitter-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525}.fts-twitter-add-all-keys-click-option,.fts-youtube-add-all-keys-click-option{margin: -10px 0 15px 10px;text-align:left;clear:both}.twitter-extra-keys-text,.youtube-extra-keys-text{max-width:550px;margin-bottom:15px;padding-left: 10px;}.feed-them_page_fts-twitter-feed-styles-submenu-page .fts-successful-api-token{margin-top:0;margin-bottom:-10px}#fts-timer{padding:6px 0 0 1px;float:left}@font-face{font-family:FontAwesomeSlick;src:url(../../feeds/css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../../feeds/css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../../feeds/css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../../feeds/css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../../feeds/css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}.fts-success:before{font-family:FontAwesomeSlick!important;content:"\f00c"!important;font-size:14px;position:relative;line-height:19px}.fts-success{margin:3px 6px 0;padding:2px 4px;color:#fff;background:#01a701;border-radius:20px;float:left;font-size:10px!important;width:auto;height:18px}#discount-for-review a:hover{color:#0073aa}.fb-sublist{border:none!important;overflow:auto;height:200px;background:#f7f7f7}.fb-sublist li{border:1px solid #f7f7f7!important;border-bottom:0;border-right:0}.fts-token-save{border-radius:100px}.fb-sublist .fb-name{letter-spacing:0!important;font-size:13px}.fts-fb-location-text-wrap{padding:8px;text-align:center;color:#f7f7f7;font-weight:700;background:#00a400;margin:10px 0 0}.fb-name small{display:block;line-height:0;letter-spacing:0;color:#969696}.fts-successful-api-token small{font-size:12px}.fb-page-list li{position:relative}.fts-successful-api-token h3 a{text-decoration:none!important;color:#262627;text-shadow:1px 1px 1px #fff;font-size:17px}.fts-successful-api-token h3 a:hover,.fts-successful-api-token img:hover{opacity:.8}.fb-page-list .fts-fb-load-more{color:#00a400}.feed-them-icon-wrap a.youtube-icon{background:url(../images/youtube-icon.png) top right no-repeat}.combine-instagram-wrap .fts-instagram-hashtag-location-options-message{margin-top:25px;margin-bottom:-25px}.fts-fb-token-wrap .dashicons-admin-links:before{font-size:20px;color:#3b5999}.fb-page-master-list .dashicons-admin-links:before{top:-3px;position:relative}.fts-successful-api-token .dashicons-admin-links:before{top:3px;position:relative}.fts-arrow-icon:before{content:'\f054';font-family:FontAwesomeSlick!important;color:#00a400;font-size:18px!important;position:relative;top:2px;padding:0 8px}.fts-fb-icon:before{content:'\f082';font-family:FontAwesomeSlick!important;color:#3a5899;font-size:20px!important;position:relative;top:2px;padding-right:5px}.fts-insta-icon:before{content:'\f16d';font-family:FontAwesomeSlick!important;color:#263232;font-size:22px!important;position:relative;top:3px;padding-right:5px}.fts-special-working-wrap .fts-arrow-icon:before{font-size:18px!important;top:1px}.fts-special-working-wrap .fts-fb-icon:before{top:1px}.fts-special-working-wrap .fts-insta-icon:before{top:2px}.instagram_hashtag{display:none}
feed-them.php CHANGED
@@ -7,18 +7,18 @@
7
  * Plugin Name: Feed Them Social - for Twitter feed, Youtube, and more
8
  * Plugin URI: https://feedthemsocial.com/
9
  * Description: Display a Custom Facebook feed, Instagram feed, Twitter feed and YouTube feed on pages, posts or widgets.
10
- * Version: 2.9.8
11
  * Author: SlickRemix
12
  * Author URI: https://www.slickremix.com/
13
  * Text Domain: feed-them-social
14
  * Domain Path: /languages
15
  * Requires at least: WordPress 4.0.0
16
  * Tested up to: WordPress 5.9.2
17
- * Stable tag: 2.9.8
18
  * License: GPLv2 or later
19
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
- * @version 2.9.8
22
  * @package FeedThemSocial/Core
23
  * @copyright Copyright (c) 2012-2022 SlickRemix
24
  *
@@ -31,7 +31,7 @@
31
  *
32
  * Makes sure any js or css changes are reloaded properly. Added to enqued css and js files throughout!
33
  */
34
- define( 'FTS_CURRENT_VERSION', '2.9.8' );
35
 
36
  define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice', false ) );
37
 
7
  * Plugin Name: Feed Them Social - for Twitter feed, Youtube, and more
8
  * Plugin URI: https://feedthemsocial.com/
9
  * Description: Display a Custom Facebook feed, Instagram feed, Twitter feed and YouTube feed on pages, posts or widgets.
10
+ * Version: 2.9.8.10
11
  * Author: SlickRemix
12
  * Author URI: https://www.slickremix.com/
13
  * Text Domain: feed-them-social
14
  * Domain Path: /languages
15
  * Requires at least: WordPress 4.0.0
16
  * Tested up to: WordPress 5.9.2
17
+ * Stable tag: 2.9.8.10
18
  * License: GPLv2 or later
19
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
+ * @version 2.9.8.10
22
  * @package FeedThemSocial/Core
23
  * @copyright Copyright (c) 2012-2022 SlickRemix
24
  *
31
  *
32
  * Makes sure any js or css changes are reloaded properly. Added to enqued css and js files throughout!
33
  */
34
+ define( 'FTS_CURRENT_VERSION', '2.9.8.10' );
35
 
36
  define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice', false ) );
37
 
feeds/css/styles.css CHANGED
@@ -1 +1 @@
1
- /* If you think we have to many !important rules you have to consider that we are fighting with the themes CSS which in most cases overrides a plugins CSS. So if you see an !important rule and are having trouble overriding it make sure and target the body, html or a wrapper ID before the CSS class you are trying to override. */ .entriestitle.fts-youtube-popup,.fts-yt-first-video{word-break:break-word}.fts-twitter-div a,.tweeter-info:hover a{-webkit-transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info,.tweeter-info:hover a{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.fts-jal-fb-group-display,.fts-twitter-div{clear:both}@font-face{font-family:FontAwesomeSlick;src:url(../css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.fts-twitter-text{padding:8px 0 0;display:block;line-height:19px;text-align:left;clear:both}.fts-video-show-hide-btns-wrap a:focus,.fts-video-show-hide-btns-wrap a:link,.fts-video-show-hide-btns-wrap a:visited{outline:0!important;border:none!important}.fts-view-on-twitter-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px}.fts-video-show-hide-btns-wrap a:before{font-family:FontAwesomeSlick;content:'\f16a';display:inline-block;margin-right:5px}img.fts-twitter-description-image{margin:10px 0 0!important}.fts-twitter-favorites:before,.fts-twitter-retweet:before{margin-right:5px;font-family:FontAwesomeSlick;position:relative}.fts-twitter-retweet:before{content:'\f079'!important;font-size:17px!important;top:1px}.fts-twitter-favorites:before{content:'\f004 '!important;font-size:13px!important;top:0}.fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f112'!important;position:relative;top:2px;font-size:14px}.fts-twitter-caption,blockquote.twitter-video{display:none}.fts-twitter-div *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-slicker-facebook-photos *,.fts-yt-videolist *,.popup-video-gallery-fb .fts-fb-photo-post-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fts-twitter-div{position:relative;padding:0}.tweeter-info:hover a{transition:all .3s ease-in-out}.widget .fts-twitter-div .fts-uppercase{width:auto}.fts-twitter-div p{margin:0 0 5px!important;line-height:20px!important;padding:0}.widget .fts-twitter-div p{margin:0 0 8px!important;padding:0!important;line-height:19px!important;font-size:12px!important}.fts-twitter-div img{margin:0 10px 0 0}.fts-twitter-div .fts-uppercase{margin:0 5px 0 0;font-size:13px;font-weight:700;text-align:left;display:inline-block;float:left}.widget .twitter-image{margin-right:10px!important}.widget .fts-twitter-div .fts-uppercase,.widget .tweeter-info .fts-right,.widget .tweeter-info .fts-twitter-full-width{text-align:left;font-size:11px;line-height:14px;font-weight:400!important}.fts-right .fts-uppercase,.fts-twitter-full-width .fts-uppercase{float:left}.tweeter-info .fts-right{float:none!important;padding:5px 0 0}.tweeter-info .fts-twitter-full-width{/* padding:10px 10px 0 */}.fts-twitter-fade{display:none;width:321px;height:80px;position:absolute;top:137px;left:1px}.fts-twitter-image,.widget .fts-twitter-image{margin:0;float:left}.tweeter-info{padding:11px;background:#eee;box-shadow:0 1px 2px #555;clear:both;min-height:51px;line-height:13px;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-twitter-div a,.tweeter-info:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.widget .tweeter-info{min-height:42px}.tweeter-info:hover{background:#fff;box-shadow:0 1px 2px #222;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.tweeter-info img{border-radius:0;box-shadow:none!important}.fts-twitter-link{position:absolute;top:217px;left:0;font-size:22px;text-transform:uppercase;width:291px;height:36px;padding:15px 0 0 38px;border-top:1px solid #c1c2c3;color:#000}.fts-video-loading-notice{color:#000}a.fts-powered-by-text{padding-top:8px!important;width:100%;text-align:center!important;display:block}.fts-twitter-div a, .fts-twitter-reply-wrap a svg{transition:all .3s ease-in-out;/* color:#1d9bf0; */}.fts-twitter-div a:hover{color:#444;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info .time{font-size:12px;text-align:right}.fts-tweeter-wrap .tweeter-info{padding:14px 0 8px;background:0 0;box-shadow:0 0 0 #555;border-bottom:1px solid #eee;word-wrap:break-word;clear:both;font-size:14px;line-height:13px;-webkit-transition:background 0;-webkit-transition:all 0s ease-in-out;-moz-transition:all 0s ease-in-out;-o-transition:all 0s ease-in-out;transition:all 0s ease-in-out}.fts-tweeter-wrap .fts-video-wrapper{margin:15px 0 0}.fts-video-wrapper-padding{display:none}.fts-tweeter-wrap .tweeter-info:hover{background:0 0!important;box-shadow:0 0 0 #222!important}.fts-tweeter-wrap .tweeter-info img{max-width:100%;box-shadow:none!important;border-radius:0}.fts-twitter-favorites,.fts-twitter-reply,.fts-twitter-retweet{font-size:13px!important}.fts-twitter-reply-wrap a{display:inline-block!important;opacity:1;padding-right:0;-webkit-transition:background 1s;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;transition:all 1s ease-in-out}.fts-twitter-reply-wrap{font-size:16px;margin-right:0;margin-top:5px;font-style:normal!important}.fts-tweeter-wrap:hover a{opacity:1}@media (max-width:767px){.fts-tweeter-wrap a{opacity:1!important}}.fts-video-show-hide-btns-wrap{margin:7px 0 0!important}.fts-video-show-hide-btns-wrap a{font-size:13px!important}.fts-twitter-load-video-wrapper,a.fts-twitter-load-video-wrapper{margin:0!important;padding:0!important}.fts-show-media-text,a.fts-close-media{display:none}.fts-twitter-div iframe,.fts-video-wrapper iframe{margin:0!important}.twitter-social-btn-bottom{margin:15px 0}.fts-jal-fb-see-more .icon-thumbs-up:before{content:"\f164"!important;font-size:14px}.fts-jal-fb-see-more .icon-comments:before{content:"\f086"!important;top:0;position:relative;font-size:14px}.fts-jal-fb-see-more .icon-file:before{content:"\f064"!important;top:2px!important;position:relative;font-size:14px}.fts-events-list-wrap .icon-map-marker [class^=icon-thumbs-up],.fts-jal-fb-see-more [class*=" icon--file"],.fts-jal-fb-see-more [class*=" icon--thumbs-up"],.fts-jal-fb-see-more [class^=icon-comments],.fts-jal-fb-see-more [class^=icon-file],.fts-jal-fb-see-more [class^=icon-thumbs-up]{display:inline-block!important;font-style:normal!important}.fts-events-list-wrap [class^=icon-]:before,.fts-jal-fb-see-more [class^=icon-]:before,.fts-jal-single-fb-post [class^=icon-]:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;margin:0 0 0 7px!important}.fts-jal-fb-see-more [class^=icon-]:before [class^=icon-],.fts-jal-single-fb-post{float:none!important;margin:0!important;display:block;padding:0!important;text-align:right!important;width:auto!important;height:auto!important;line-height:normal!important;vertical-align:baseline!important;background:0 0!important;font-style:normal!important}.fts-jal-fb-group-display img{border-radius:0!important;box-shadow:0 0 0 transparent!important;display:block;max-width:100%}.fts-jal-fb-group-header-desc{width:100%;margin:7px 0 15px!important;line-height:20px}.fts-jal-fb-header{clear:both}.no-more-posts-fts-fb{cursor:auto}.fts-jal-single-fb-post .slicker-facebook-album-photoshadow{display:none}.fts-jal-fb-header a:hover,.fts-jal-single-fb-post a:hover{font-style:normal;text-decoration:none!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;color:#313131}.fts-jal-fb-user-thumb a{display:block}.fts-fb-get-directions{text-align:left!important;margin:0}.fts-jal-fb-header a,.fts-jal-single-fb-post a{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important;word-break:break-word;border:none!important}.fts-jal-fb-header h1{font-size:1.9em;margin:0!important;line-height:normal!important;padding:0!important}.widget .fts-jal-fb-header h1{font-size:1.8em;line-height:22px}.fts-jal-single-fb-post{width:100%;padding:15px 0 7px!important;margin-bottom:0;border-bottom:1px solid rgba(184,184,184,.3);position:relative;line-height:17px;text-align:left}.fts-slicker-facebook-posts .fts-jal-single-fb-post{width:auto;padding:10px 10px 8px!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px}.widget .fts-jal-single-fb-post{width:100%;padding:17px 0 10px!important}.fts-facebook-popup .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 0 0 20px!important}.fts-jal-fb-user-thumb,.fts-mashup-icon{height:50px;margin-right:11px;float:left}.fts-jal-fb-user-thumb{width:50px;margin-bottom:5px}.fts-mashup-icon{width:20px;margin-bottom:5px}.widget .fts-jal-fb-right-wrap{padding-left:0}.widget .fts-jal-fb-top-wrap{padding-bottom:5px;padding-left:0;margin-bottom:5px;min-height:50px}.fts-jal-fb-message{padding-top:10px;line-height:21px;word-wrap:break-word}.fts-jal-fb-link-wrap p,.fts-jal-fb-message p{padding:0!important;margin:0 0 10px!important}.fts-jal-fb-link-wrap p{line-height:19px!important}.fts-jal-fb-link-wrap{margin-top:0;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.jal-fb-description{word-wrap:break-word!important}.fts-jal-fb-picture{float:left;display:block;margin:10px 10px 4px 0}.fts-jal-fb-link-wrap img{margin:0}.fts-jal-fb-vid-picture{position:relative;float:left;height:auto!important;margin:10px 0 0;line-height:normal!important;cursor:pointer}.fts-jal-fb-description-wrap{float:left;padding:15px 12px 0 17px!important;color:#757575;font-size:13px!important;font-weight:400;text-align:left}.popup-gallery-fb .fts-jal-fb-description-wrap,.popup-video-gallery-fb .fts-jal-fb-description-wrap{padding:15px 0 0!important}.fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:15px 15px 0!important}.widget .fts-jal-fb-description-wrap{float:left;overflow:hidden;max-width:90%;line-height:19px!important;color:#999;font-size:12px!important;font-weight:400}.entry-content .fts-jal-fb-picture img,.fts-yt-videolist li img,.widget .fts-jal-fb-picture img,.widget a.fts-pin-board-wrap img,a.fts-pin-board-wrap img{max-width:100%}.fts-jal-fb-description{padding:5px 0 10px;line-height:17px!important;font-size:13px;color:#919191;word-wrap:break-word}.fts-jal-fb-description p{font-size:13px!important}.fts-jal-fb-top-wrap{margin-bottom:10px;text-align:left}.fts-jal-fb-user-name{font-weight:700;color:#888;display:block;padding-top:6px;padding-right:5px;font-size:16px;line-height:18px}.fts-slicker-facebook-albums .fts-jal-fb-user-name a{color:#fff}.fts-jal-fb-post-time{color:#999;padding-top:4px;font-size:12px;line-height:10px;display:block}.fts-jal-fb-name{font-weight:700;color:#c00;padding-bottom:5px;font-size:15px;display:inline-block;line-height:18px}.fts-events-list-wrap .fts-jal-fb-name{font-weight:400;color:#c52214;padding-bottom:5px;font-size:15px;display:block;line-height:21px}.fts-jal-fb-vid-play-btn{background:url(../images/video-play-btn.png) no-repeat;bottom:7px;height:26px;left:9px;position:absolute;width:35px}.fts-jal-fb-picture img,.fts-vid-div{width:100%}.fts-vid-div .fts-jal-fb-vid-play-btn,.fts-vid-div img{display:none}.fts-vid-div iframe{position:absolute;z-index:500}.fts-jal-fb-see-more .icon-file{font-size:10px}.fts-jal-fb-see-more{float:right;margin:10px 0 0;font-size:12px;width:100%;text-align:right;font-style:normal!important}.fts-fb-event-photo{float:left}.fts-fb-large-photo{margin-right:0!important;font-weight:inherit}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-likes-shares-etc-wrap,.fts-slicker-facebook-photos .slicker-facebook-album-photoshadow:hover .fts-jal-fb-see-more{display:block}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-jal-fb-top-wrap,.fts-slicker-facebook-photos .fts-fb-video-post-wrap .slicker-facebook-album-photoshadow:hover .fts-jal-fb-top-wrap{opacity:1}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap,.fts-slicker-facebook-photos .fts-jal-fb-description,.fts-slicker-facebook-photos .fts-jal-fb-see-more:hover,.fts-slicker-facebook-photos .fts-jal-fb-user-name a:hover{color:#fff}.fts-slicker-facebook-photos .fts-jal-fb-description-wrap{font-weight:inherit!important}.fts-slicker-facebook-photos *{-ms-box-sizing:border-box;box-sizing:border-box}.instagram-placeholder *,.slicker-instagram-placeholder *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:auto;z-index:600;cursor:pointer;width:auto;opacity:1!important;background-color:rgba(0,0,0,.6)!important;display:none}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow:before{content:'info';color:#fff;padding:5px 10px 7px;text-align:right;float:right;font-size:12px;display:none}.fts-fb-load-more,.fts-fb-spinner,.fts-instagram{text-align:center}.slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:100%;width:100%;z-index:100}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap .slicker-facebook-album-photoshadow:hover{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .slicker-facebook-album-photoshadow{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;display:block;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-jal-fb-right-wrap{padding:0!important}.fts-slicker-facebook-photos .fts-jal-fb-user-thumb{display:none}.fts-slicker-facebook-photos .fts-jal-fb-top-wrap{color:#fff!important;padding:12px 15px 0!important;z-index:600;position:absolute;width:100%;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.fts-slicker-facebook-photos .fts-jal-fb-message{padding:15px 0 0;color:#fff!important;position:relative;font-size:14px;z-index:100}.fts-slicker-facebook-photos .fts-jal-fb-post-time{color:#ddd;margin-top:0}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a:hover,.fts-slicker-facebook-albums .jal-fb-description a:hover,.fts-slicker-facebook-photos .jal-fb-description a:hover{color:#ccc}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{line-height:12px!important}.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap iframe{height:305px;width:305px}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap{word-wrap:break-word;width:100%}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a{float:left;width:100%;line-height:19px;padding:0!important}.fts-slicker-facebook-albums .jal-fb-description a,.fts-slicker-facebook-photos .jal-fb-description a{float:none!important}.fts-slicker-facebook-photos .fts-jal-single-fb-post{position:relative;float:none;z-index:0;overflow:hidden;border:none!important;padding:0!important;font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important;background:#000;vertical-align:top!important;display:inline-block!important}.fts-fb-get-directions:before,.slicker-instagram-image-likes:before,.slicker-instagram-placeholder .fts-instagram-icon:before{font-family:FontAwesomeSlick;-webkit-font-smoothing:antialiased}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{border:none!important;margin:0!important;width:100%;height:100%}.fts-album-photos-wrap img{vertical-align:middle!important;display:inline-block!important}.fts-slicker-facebook-photos.fts-slicker-facebook-albums .fts-jal-single-fb-post{height:auto}.fts-slicker-facebook-photos{margin:auto;text-align:center}.fts-slicker-facebook-photos .fts-jal-fb-picture{display:block;margin:0;padding:0;float:none;width:auto;left:0;right:0;top:0;position:absolute;background-size:cover;background-position:center center;background-repeat:no-repeat}div.fts-fb-location{letter-spacing:1px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:21),only screen and (min-device-pixel-ratio:2){.fts-jal-fb-vid-wrap iframe{height:130px}}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-instagram-fade .fts-fb-caption{display:block}.fts-view-album-photos-large:before,.fts-view-fb-videos-large:before,.fts-view-on-facebook-link:before,.view-on-facebook-albums-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased}.fts-fb-get-directions:before{content:"\f041 ";display:inline-block;margin:0 5px 0 2px}.instagram-placeholder,.slicker-instagram-placeholder{font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important}.fts-instagram-fade .fts-instagram-caption-content,.fts-instagram-fade .fts-jal-fb-description{color:#fff;padding:0;margin:0}.fts-instagram-fade .fts-fb-album-view-link{display:none}#facebook-sidebar .fts-fb-load-more-wrapper{max-width:100%!important;margin-top:-1px!important;z-index:9999;position:relative}.fb-social-btn-bottom{margin-top:15px!important}.fb-social-btn-top{display:block;margin-bottom:12px!important}.fb-social-btn-below-description{margin-top:5px!important;margin-bottom:5px!important}@media only screen and (max-width:640px){.fb-like.fb_iframe_widget,.fb-like.fb_iframe_widget>span,.fb-like.fb_iframe_widget>span>iframe{width:100%!important;position:relative!important}}.fts-events-list-wrap .fts-jal-fb-picture{float:left;display:block;margin:0}.fts-events-list-wrap a.fts-jal-fb-name{font-size:17px}.fts-events-list-wrap .fts-fb-event-time{font-size:15px}.fts-events-list-wrap .fts-fb-location{font-size:15px;display:block;margin:10px 0 5px}.fts-events-list-wrap .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0}.fts-events-list-wrap .fts-jal-fb-message{clear:both;font-size:15px}.fts-fb-get-directions{font-size:15px;padding:0 0 20px;color:#4595f0}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:rgba(240,240,240,.45);cursor:pointer;color:#111;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-fb-load-more:hover{background:rgba(240,240,240,.85)}.instagram-image,.widget .instagram-image{background-color:#000;z-index:1;display:block}.flip360-fts-load-more{-moz-animation:spinY .5s linear;-ms-animation:spinY .5s linear;-o-animation:spinY .5s linear;animation:spinY .5s linear;-webkit-animation-name:spinY;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-fill-mode:both;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-moz-animation-timing-function:cubic-bezier(.75,0,.175,1);-ms-animation-timing-function:cubic-bezier(.75,0,.175,1);-o-animation-timing-function:cubic-bezier(.75,0,.175,1);animation-timing-function:cubic-bezier(.75,0,.175,1)}@-moz-keyframes spinY{0%{-moz-transform:rotateY(0);transform:rotateY(0)}100%{-moz-transform:rotateY(360deg);transform:rotateY(360deg)}}@-webkit-keyframes spinY{0%{-webkit-transform:rotateY(0);transform:rotateY(0);-webkit-transform-style:preserve-3d}100%{-webkit-transform:rotateY(360deg);transform:rotateY(360deg);-webkit-transform-style:preserve-3d}}@-o-keyframes spinY{0%{-o-transform:rotateY(0);transform:rotateY(0)}100%{-o-transform:rotateY(360deg);transform:rotateY(360deg)}}@-ms-keyframes spinY{0%{-ms-transform:rotateY(0);transform:rotateY(0)}100%{-ms-transform:rotateY(360deg);transform:rotateY(360deg)}}@keyframes spinY{0%{-webkit-transform:rotateY(0);-moz-transform:rotateY(0);-ms-transform:rotateY(0);-o-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(360deg);-moz-transform:rotateY(360deg);-ms-transform:rotateY(360deg);-o-transform:rotateY(360deg);transform:rotateY(360deg)}}.clear{clear:both}.heart-comments-wrap li,ul.heart-comments-wrap{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important}.widget .instagram-placeholder li,.widget .instagram-placeholder ul{padding:0!important;margin:0!important;height:auto!important}.instagram-placeholder p{margin:0;padding:0}.instagram-placeholder{position:relative;z-index:0;display:inline-block;margin:0 20px 20px}.widget .instagram-placeholder{margin:-10px 9px 0 10px!important;width:104px!important;text-align:left!important}.instagram-image{width:150px;height:150px;position:relative}.widget .instagram-image{width:105px;height:100px;position:relative;background-size:100%!important}.instaG-photoshadow{background-color:rgba(0,0,0,.1);bottom:0;left:0;position:absolute;right:0;top:0;border:1px solid rgba(0,0,0,.12);z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;width:148px;height:148px}.widget .instaG-photoshadow{width:103px;height:98px}.instagram-placeholder:hover .instaG-photoshadow{background-color:transparent;-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12);width:148px;height:148px}.heart-comments-wrap li,.instagram-placeholder .date{color:#888;position:relative;z-index:1;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s;text-shadow:0 1px 0 rgba(255,255,255,.8);opacity:0;pointer-events:none}.widget .instagram-placeholder:hover .instaG-photoshadow{width:103px;height:98px}a.instaG-backg-link{position:relative;display:block}.instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:12px;height:20px;line-height:20px;font-weight:700;transition:all .15s ease-out .1s}.widget .instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:11px;height:15px;line-height:20px;font-weight:400!important}.instagram-placeholder .heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.widgets .instagram-placeholder .heart-comments-wrap ul{height:15px;margin:6px 0 0!important}.heart-comments-wrap li{display:inline-block;margin:10px 0 0 .5em!important;padding:0 0 0 16px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;transition:all .15s ease-out .1s}.instagram-placeholder .fts-backg,.slicker-instagram-placeholder .slicker-date{-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .heart-comments-wrap li{display:inline-block;margin:6px 0 5px 2px!important;pointer-events:none;padding:0 0 0 15px!important;line-height:10px!important;font-size:11px!important;border:none!important}.widget .instagram-placeholder .heart-comments-wrap .instagram-image-likes{margin-right:4px!important}.instagram-placeholder .fts-backg,.widget .instagram-placeholder .fts-backg{z-index:0;left:0;width:100%;margin:-5px;padding:5px;background:#fff;position:absolute}.instagram-placeholder .fts-backg{top:25px;height:150px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-backg{top:20px;height:100px;font-size:11px}.widget .date{font-size:11px}.instagram-placeholder:hover .fts-backg{margin:-28px -12px;padding:8px 12px;height:193px;-webkit-transition-delay:0;-moz-transition-delay:0;-o-transition-delay:0;transition-delay:0;-webkit-transition-duration:.1s;-moz-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2)}.widget .instagram-placeholder:hover .fts-backg{margin:-22px -10px;padding:5px 10px;height:135px}.instagram-image-likes{background:url(../images/hearts-instagram.jpg) no-repeat}.instagram-image-comments{background:url(../images/comments-instagram.jpg) no-repeat}.instagram-placeholder:hover .date,.instagram-placeholder:hover .instagram-image-comments,.instagram-placeholder:hover .instagram-image-likes{opacity:1;z-index:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.slicker-instagram-placeholder li,.slicker-instagram-placeholder ul{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important;width:auto!important;overflow:visible!important}.slicker-heart-comments-wrap{position:absolute;z-index:500;bottom:10px;right:12px}.slicker-instagram-placeholder p{margin:0;padding:0}.slicker-instagram-placeholder,.slicker-youtube-placeholder{position:relative;z-index:0;display:inline-block;overflow:hidden;background-size:cover;background-position:center center;background-repeat:no-repeat;vertical-align:top}.slicker-instagram-image{line-height:0!important;position:relative;z-index:1;background-color:#000;display:block}.slicker-instagram-image img{line-height:normal!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important;-webkit-box-shadow:0 0 0 rgba(0,0,0,.175)!important;-moz-box-shadow:0 0 0 rgba(0,0,0,.175)!important;box-shadow:0 0 0 rgba(0,0,0,.175)!important;margin:0!important;padding:0!important;border:none!important;width:100%}.slicker-instaG-photoshadow{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;vertical-align:middle}.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background-color:rgba(0,0,0,.7);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12)}a.slicker-instaG-backg-link{position:relative;display:block}.slicker-instagram-placeholder .fts-share-wrap,.slicker-instagram-placeholder .slicker-date{margin-bottom:5px;font-size:13px;line-height:20px;font-weight:400;position:absolute;transition:all .15s ease-out .1s;height:20px;color:#fff;opacity:0;text-align:center}.slicker-instagram-placeholder .fts-share-wrap{bottom:-10px;left:4px;z-index:50000000}.slicker-instagram-placeholder .slicker-date{top:10px;left:15px;z-index:500;pointer-events:none}.slicker-instagram-placeholder .slicker-heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li,.slicker-instagram-placeholder .slicker-heart-comments-wrap li{display:inline-block;margin:0!important;pointer-events:none;padding:0 0 0 10px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;color:#fff;text-align:center;position:relative;z-index:1;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}body .fts-mashup-count-wrap li{opacity:1!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-single-pin-like-count,.fts-mashup .fts-single-pin-repin-count,.fts-mashup a.ft-gallery-link-popup,body .fts-mashup-count-wrap a,body .fts-mashup-count-wrap li{color:#777!important}a.fts-slicker-backg{height:68px;width:68px;line-height:68px;font-size:68px;top:0;bottom:0;left:0;right:0;margin:auto;z-index:700;position:absolute;text-align:center;vertical-align:middle;opacity:0;color:rgba(255,255,255,.27)}.slicker-instagram-placeholder .fts-instagram-icon:before{content:"\f16d";font-size:100%;display:inline-block;-webkit-transition:all 1s ease-out 0;-moz-transition:all 1s ease-out 0;-o-transition:all 1s ease-out 0}.slicker-instagram-placeholder a.fts-slicker-backg:hover{opacity:1;color:rgba(255,255,255,.55);-webkit-transition:all 0 ease-out 0;-moz-transition:all 0 ease-out 0;-o-transition:all 0 ease-out 0}.slicker-instagram-image-likes:before{content:"\f004";margin-right:5px}.fts-slicker-instagram{margin:auto;text-align:center}.instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-share-wrap,.slicker-instagram-placeholder:hover .fts-slicker-backg,.slicker-instagram-placeholder:hover .slicker-date,.slicker-instagram-placeholder:hover .slicker-instagram-image-comments,.slicker-instagram-placeholder:hover .slicker-instagram-image-likes{opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.fts-comment-instagram:before{font-family:FontAwesomeSlick!important;content:"\f075"!important;-webkit-font-smoothing:antialiased;margin-right:5px;font-size:13px!important;display:inline-block;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:FlipH;position:relative;top:-1px;right:-4px}.fts-see-on-instagram div:before,.fts-view-on-instagram-link:before{content:"\f138 ";font-family:FontAwesomeSlick}.fts-see-on-instagram{position:absolute;bottom:11px;right:12px;opacity:0;z-index:750;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-see-on-instagram{position:absolute;top:19px;right:6px;z-index:750;display:none}.instagram-placeholder .fts-see-on-instagram{position:absolute;bottom:2px;right:6px;opacity:0;z-index:750}.fts-see-on-instagram div{display:inline-block;cursor:pointer;font-weight:400!important}.instagram-placeholder .fts-see-on-instagram div{display:block;cursor:pointer;font-weight:400!important}.widget .instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.instagram-placeholder .fts-see-on-instagram div:before{color:#888;font-size:13px}.slicker-instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.fts-see-on-instagram div:before{display:inline-block}.fts-view-on-instagram-link:before{display:inline-block;margin-right:6px}.fts-instagram-caption{display:none}.fts-instagram-fade .mfp-title p{color:#fff!important;margin:0 0 10px!important;padding:0!important}.fts-instagram-fade .mfp-title a{color:#fff;text-decoration:none!important}.fts-instagram-fade .mfp-title a:hover{color:#eee}.instagram-social-btn-bottom,.instagram-social-btn-top{text-align:center;font-size:14px!important;background:#517fa4;border-radius:4px;width:167px;color:#fff;line-height:15px;padding:7px 0!important}.instagram-social-btn-top{margin:0 auto 15px}.instagram-social-btn-bottom{margin:15px auto 0}.instagram-social-btn-bottom:hover,.instagram-social-btn-top:hover{opacity:.9}#fts-social-bar-icons-wrap .instagram-social-btn-bottom a,#fts-social-bar-icons-wrap .instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}#fts-social-bar-icons-wrap .instagram-social-btn-top a:hover{color:#fff!important}.instagram-social-btn-bottom a,.instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}.instagram-social-btn-bottom a:hover,.instagram-social-btn-top a:hover{color:#fff;font-weight:100!important}.instagram-social-btn-bottom:before,.instagram-social-btn-top:before{font-family:FontAwesomeSlick;content:"\f16d ";display:inline-block;margin-right:6px;font-size:16px!important;-webkit-font-smoothing:antialiased}.fts-pinterest-boards-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-yt-videolist *{box-sizing:border-box}.fts-pinterest-wrapper{text-align:center;margin:auto;position:relative}a.fts-pin-board-wrap:link{text-decoration:none!important;border-bottom:0}a.fts-pin-board-wrap{border-radius:10px!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;-moz-box-shadow:0 1px 3px 0 rgba(0,0,0,.33);display:inline-block;text-decoration:none;padding:10px 9px 10px 10px;margin:8px 8px 0;text-align:left}a.fts-pin-board-wrap:hover{background:#fff;border-radius:10px}.fts-pin-board-wrap .label,.fts-single-pin-description a,.fts-single-pin-pinned-to-wrap{text-decoration:none!important}h3.fts-pin-board-board_title,h3.fts-pin-board-board_title span{-webkit-font-smoothing:antialiased!important;display:block!important}.fts-pin-board-wrap:hover .hoverMask,.pinterest-single-thumb-wrap:hover .hoverMask{background:rgba(255,255,255,.1)}h3.fts-pin-board-board_title{width:210px;color:#555!important;font-size:16px!important;font-weight:700!important;margin:7px 0 5px 7px!important;padding:0!important;position:relative!important;font-family:"Helvetica Neue",arial,sans-serif!important;line-height:15px!important;clear:both}div.fts-pin-board-img-wrap,div.pinterest-single-thumb-wrap{background-size:cover;background-position:center center;background-repeat:no-repeat;position:relative;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}h3.fts-pin-board-board_title span{white-space:nowrap!important;overflow:hidden!important;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-transform:capitalize}a.fts-pin-board-wrap{-webkit-border-radius:0;overflow:hidden}div.fts-pin-board-img-wrap{vertical-align:top;border-radius:10px 10px 0 0!important;overflow:hidden;clear:both;height:115px;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset}.fts-pin-board-thumbs-wrap div:last-child{margin-right:0;border-bottom-right-radius:10px!important;border-bottom-left-radius:0!important}.fts-pin-board-wrap{max-width:254px;width:100%}.fts-pin-board-thumbs-wrap{min-height:50px}div.pinterest-single-thumb-wrap{margin-right:2px;margin-top:2px;height:108px!important;border-bottom-left-radius:10px!important;width:49.58%;display:inline-block}.fts-pin-board-img-wrap .hoverMask,.pinterest-single-thumb-wrap .hoverMask{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset;box-shadow:0 0 3px rgba(0,0,0,.33) inset;bottom:0;left:0;position:absolute;right:0;top:0}.fts-pin-board-wrap .fts-pin-board-pin-count{-webkit-font-smoothing:antialiased;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);-moz-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);text-shadow:0 -1px 0 rgba(0,0,0,.7);background-color:#000;background-color:rgba(68,68,68,.7);bottom:3px;color:#fff;padding:0 6px;position:absolute;left:3px;font-family:"Helvetica Neue",arial,sans-serif!important;font-size:12px!important;font-weight:700;line-height:21px}.fts-pin-board-pin-count:before{content:'';width:7px;height:9px;background:url(../images/pinterest-icons.png) -137px -87px no-repeat;display:inline-block;margin-right:3px}.fts-pin-board-wrap .label{font-weight:700;text-align:left!important;line-height:1.1em!important;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0!important;font-size:.7875rem;background:0 0!important;color:#fff}.widget .fts-pin-board-thumbs-wrap,.widget h3.fts-pin-board-board_title{display:none!important}.widget div.fts-pin-board-img-wrap{position:relative;overflow:hidden;clear:both;min-height:100px;height:auto;width:auto;border-radius:10px!important}.widget a.fts-pin-board-wrap{width:40%;padding:6px;margin:4px 4px 0!important;border-radius:1px!important}.widget div.fts-pin-board-img-wrap{-webkit-box-shadow:0 0 1px rgba(0,0,0,.11) inset!important;-moz-box-shadow:0 0 1px rgba(0,0,0,.11) inset;box-shadow:0 0 0 transparent inset!important;margin-bottom:0}.pinterest-single-thumb-wrap .hoverMask,.widget .fts-pin-board-img-wrap .hoverMask{-webkit-box-shadow:0 0 0 rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 0 rgba(0,0,0,.33) inset;box-shadow:0 0 0 rgba(0,0,0,.33) inset}.fts-single-pin-wrap{background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.22);box-shadow:0 1px 2px 0 rgba(0,0,0,.22);border-radius:6px;width:236px!important;margin:14px 7px 0;border:none!important;text-align:left;overflow:hidden}.fts-single-pin-description{margin:10px 15px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-size:13px;line-height:17px;word-wrap:break-word}.fts-single-pin-img-wrap img{-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-left-radius:6px;border-top-right-radius:6px;max-width:100%}.fts-single-pin-social-meta-wrap{font-family:Helvetica,sans-serif;font-size:11px;color:#999;font-style:normal;font-weight:400;-webkit-font-smoothing:antialiased;margin:-13px 10px 7px 15px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count{margin:10px 12px 0 0;display:inline-block;font-size:13px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count:before{font-family:FontAwesomeSlick;margin-right:5px;font-size:12px!important;content:"\f08d"}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count{font-size:13px!important}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count:before{font-family:FontAwesomeSlick;content:"\f086"!important;margin-right:5px;font-size:13px!important}.fts-single-pin-pinned-to-title,.fts-single-pin-pinned-to-wrap{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;overflow:hidden}.fts-single-pin-pinned-to-wrap{line-height:15px;padding:10px;border-radius:0 0 6px 6px;border:none!important;border-top:1px solid #e7e7e7!important}.fts-single-pin-pinned-to-wrap:hover{background:#eee;cursor:pointer}.fts-single-pin-pinned-to-wrap div{color:#999;display:block;font-weight:700;font-size:11px;font-family:Helvetica,sans-serif}.fts-single-pin-pinned-to-text{color:#999}div.fts-single-pin-pinned-to-title{color:#717171}.fts-single-pin-pinned-to-wrap img{position:relative;border-radius:2px;height:30px;margin-right:5px;width:30px;float:left}.fts-single-pin-pinned-to-title{border-radius:0 0 6px 6px}.fts-single-attribution-wrap{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;font-family:Helvetica,sans-serif;color:#666;margin:-2px 0 5px 15px!important;font-size:11px;display:block;border:none!important;line-height:1.6471}.fts-yt-vids-in-row1 .fts-yt-videolist ul li:first-child,.fts-yt-vids-in-row1 li .entriestitle{display:none}.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{font-size:85%!important;line-height:100%!important}.fts-single-attribution-wrap img{height:16px;margin-right:5px;position:relative;width:16px;float:left}.pinterest-social-btn-top{margin-bottom:0;text-align:center}.widget .pinterest-social-btn-top{margin-bottom:5px;text-align:center}.pinterest-social-btn-bottom{margin-top:5px;text-align:center}.fts-yt-videolist iframe{width:100%}.fts-yt-vids-in-row1 div.fts-yt-videolist p{padding-bottom:25px;clear:both}.fts-yt-first-video p{margin:10px 10px 25px!important}.fts-yt-videolist ul,.fts-yt-vids-in-row1 ul li{margin:0!important;padding:0!important}#secondary .front-widgets .fts-yt-large iframe{height:100%!important;max-height:300px!important;min-height:300px!important}.widget .fts-yt-videolist ul li{margin-bottom:0!important;list-style:none!important}.fts-yt-videolist ul{width:100%!important}.fts-yt-videolist ul li{list-style:none!important}.fts-yt-vids-in-row1 li{width:100%!important;margin-bottom:5%}.fts-yt-vids-in-row2 li,.fts-yt-vids-in-row3 li,.fts-yt-vids-in-row4 li{float:left;border:none;position:relative;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;padding:1%!important;margin:0!important}.fts-yt-vids-in-row1 li iframe{width:100%}.fts-yt-vids-in-row2 li{width:50%!important}.fts-yt-vids-in-row3 li{width:33.3%!important}.fts-yt-vids-in-row4 li{width:25%!important}.fts-yt-vids-in-row2 li .entriestitle,.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{padding:0 5px;position:absolute;left:0;top:20%;opacity:0;width:87.5%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.fts-yt-vids-in-row2 li:hover .entriestitle,.fts-yt-vids-in-row3 li:hover .entriestitle,.fts-yt-vids-in-row4 li:hover .entriestitle{background:#000;border-radius:0;color:#fff;padding:5% 6%;opacity:.9;z-index:100;right:0;line-height:18px;font-size:90%;font-weight:700;box-shadow:0 4px 8px #333;display:block}.fts-yt-vids-in-row2 li:hover,.fts-yt-vids-in-row3 li:hover,.fts-yt-vids-in-row4 li:hover{background-color:rgba(0,0,0,.9);box-shadow:0 1px 10px #333;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-yt-overlay-wrap{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1!important;background-color:rgba(0,0,0,.75);text-align:center;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out;pointer-events:none;box-shadow:0 2px 500px #000}body .fts-yt-overlay-wrap.fts-yt-target{display:block;opacity:1;z-index:9999999!important;-webkit-transition:opacity .5s ease-in;-moz-transition:opacity .5 ss ease-in;transition:opacity .5s ease-in;pointer-events:auto}.fts-fb-video-icon,.fts-watermark-inside{pointer-events:none}.fts-yt-overlay{max-width:775px;opacity:1;z-index:300;position:absolute;top:0;bottom:0;right:0;left:0;max-height:472px;padding:10px;background:#444;margin:auto!important;box-shadow:0 2px 200px #000}.fts-yt-overlay-wrap iframe{margin:0;min-height:343px;background:#000!important;margin-bottom:0!important}.fts-yt-popup-close{display:block;position:absolute;top:-19px;right:0;background:#444;color:#fff!important;text-decoration:none;font-size:85%;font-family:verdana;font-weight:400;padding:.5% 2.5% 0;line-height:20px}.widget .fts-yt-first-video p{font-size:12px!important;margin-bottom:10px!important;margin-top:5px}.widget .fts-yt-videolist li{margin:0!important;line-height:0!important}.widget .fts-yt-videolist ul{padding-bottom:15px!important;float:left}.fts-yt-vids-in-row1 ul li iframe{margin-bottom:12px!important}@media only screen and (max-width:775px){.fts-yt-overlay{background:0 0;box-shadow:0 0 0 #000}.fts-yt-popup-close{background:0 0}}.widget .fts-yt-large .fts-yt-first-video iframe,.widget .fts-yt-vids-in-row1 li iframe{width:100%;height:0!important;min-height:100%!important;max-height:160px!important;padding:0}.fts-fluid-videoWrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.fts-fluid-videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;min-height:100%;background:#000;border:none}.fts-fluid-videoWrapper video{background:#000}.fts-jal-fb-vid-wrap{margin-top:10px;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-jal-fb-vid-wrap iframe,.widget .fts-jal-fb-vid-wrap iframe{width:100%;margin:0!important;padding:0!important}.fts-vine-thumbnail .fts-vine-logo:before,.fts-vine-thumbnail-cover,.popup-video-gallery-fb span.fts-fb-video-icon:before{-webkit-transition:all .5s ease-out 0;-moz-transition:all .5s ease-out 0;-o-transition:all .5s ease-out 0;-webkit-font-smoothing:antialiased}.widget .fts-jal-fb-vid-wrap iframe{height:50%}.fts-yt-first-video h2{margin:0 0 7px!important}.youtube-social-btn-top{margin:0 0 5px!important}.youtube-social-btn-bottom{padding:10px 0 0 6px;clear:both}@keyframes fade{from,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes fade{from,to{opacity:1}50%{opacity:.5}}.fts-vine-wrapper{text-align:center}.fts-vine-video-wrap{text-align:left;display:inline-block;max-width:290px;vertical-align:top}.fts-vine-video-wrap a.fts-vine-author{display:block;margin:5px 0 0;padding:0}.fts-vine-white-popup .mfp-close{margin-top:-40px;font-size:35px;margin-right:-10px;color:#fff!important}.fts-vine-white-popup{position:relative;background:#fff;padding:20px;width:auto;max-width:640px;margin:30px auto}.fts-iframe-vine{padding-top:262px}.fts-vine-author{font-size:18px;line-height:24px}.fts-vine-text{font-size:13px;line-height:18px;padding:0 15px 15px 0}.fts-vine-thumbnail{display:block;position:relative;background:0 0!important}.fts-vine-thumbnail-cover{position:absolute;z-index:100;left:0;top:0;width:100%;height:100%;opacity:0;display:inline-block;cursor:pointer}.fts-vine-logo{font-size:27px}.fts-vine-thumbnail .fts-vine-logo:before,.popup-video-gallery-fb span.fts-fb-video-icon:before{font-family:FontAwesomeSlick;font-size:100%}.fts-vine-thumbnail .fts-vine-logo:before{content:"\f1ca"!important;display:inline-block;position:absolute;z-index:200;right:12px;top:5px;line-height:1.5;color:#00bf8f}.fts-vine-thumbnail-cover:hover{opacity:.3;background:#000}.fts-vine-thumbnail:hover .fts-vine-logo:before{color:#fff;text-shadow:2px 1px #555;-webkit-animation:wiggle .5s ease;animation:wiggle .5s ease}@-webkit-keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@media only screen and (max-device-width:736px){.fts-iframe-vine{padding-bottom:14%!important}.fts-vine-white-popup{padding:0}}.post-5593 .entry-content{text-align:center}.fts-fb-video-popup{position:relative;background:0 0;padding:20px 60px;width:auto;max-width:1400px;margin:30px auto}.fts-fb-video-popup .mfp-close{color:#fff!important;right:47px!important;top:-19px!important}@media only screen and (min-device-width:375px) and (max-device-width:667px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:414px) and (max-device-width:736px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){.fts-fb-video-popup video{min-height:400px}.fts-fb-video-popup{padding:10px!important}.fts-fb-video-popup .mfp-close{right:-2px!important;top:-25px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){.fts-fb-video-popup video{min-height:600px}}.fts-view-fb-videos-largeeee:before{content:"";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;background:url(../images/fb-play-btn.png);height:80px;width:80px}.fts-fb-photo-post-wrap:hover a.fts-slicker-backg{opacity:1;outline:0!important;color:#fff}.popup-video-gallery-fb span.fts-fb-video-icon:before{content:"\f144"!important;display:inline-block!important;opacity:.5!important;color:#fff;outline:0!important}.popup-video-gallery-fb span.fts-fb-video-icon:hover:before{opacity:.8!important;color:#fff}.popup-video-gallery-fb a.visible-video-button{opacity:9!important;outline:0!important;z-index:1500}.popup-video-gallery-fb .fts-fb-load-more{max-width:340px;margin:20px auto}.fts-fb-social-btn-center,.popup-video-gallery-align-center{text-align:center;font-size:0}.fts-fb-social-btn-right,.popup-video-gallery-align-right{text-align:right}.fts-fb-social-btn-left,.popup-video-gallery-align-left{text-align:left}.cycle-slideshow .fts-jal-fb-picture{max-width:100%!important}.popup-video-gallery-fb .fts-fb-photo-post-wrap{vertical-align:top!important;display:inline-block!important;float:none;text-align:left;border-radius:0;max-width:100%;max-height:100%;box-sizing:border-box}.popup-video-gallery-fb .fts-fb-photo-post-wrap .fts-jal-fb-user-name{padding-top:0!important}.fts-review-star,.fts-reviews-star{background:#4791ff;color:#fff;font-weight:400;padding:2px 12px;border-radius:15px;border:none!important}.fts-review-details-master-wrap .fts-review-star{background:#4791ff;color:#fff;font-weight:400;padding:11px 12px 9px 17px;border-radius:30px;margin:0 12px 0 0;font-size:20px;float:left;vertical-align:top;line-height:22px}.fts-review-star{font-size:13px;font-style:normal;white-space:nowrap}.fts-review-star a{background:#4791ff;color:#fff}.fts-reviews-feed .fts-jal-fb-post-time{padding-top:10px!important}.fts-review-star:after{content:"";font-size:14px}.fts-reviews-feed .fts-jal-fb-message{margin-top:5px}.fts-reviews-feed .fts-jal-fb-user-name{margin-top:0;font-size:14px}.fts-jal-fb-vid-picture .fts-fluid-videoWrapper-html5{display:none}.fts-fluid-videoWrapper .fluid-width-video-wrapper{position:initial}.fts-jal-fb-user-thumb img{width:50px;max-width:100%}.fts-jal-fb-description p{line-height:17px!important;white-space:normal!important}.fts-checked-in-text-link{display:inline-block;padding-bottom:0}.fts-checked-in-img{float:left;margin-right:10px;max-width:160px}.fts-checked-in-get-directions{margin-top:5px}.fts-instagram-fade .mfp-title,.fts-instagram-fade .mfp-title a{font-size:13px}.fts-fluid-videoWrapper-html5{margin-top:10px;width:100%}.fts-fb-slideshow.slideshow .fts-fb-photo-post-wrap{position:relative!important;float:none;display:inline-block}.fts-fb-slideshow{width:100%;padding:0;overflow:hidden}.fts-fb-slideshow>a{position:absolute;top:0;left:0;width:100%;padding:0;background-color:#222;display:block}.fts-fb-slideshow>a>img{width:100%;position:static;display:block}.fts-fb-slideshow>div{position:absolute;top:0;left:0;padding:0}.composite-example>div{background:#fff}.composite-example>div>img{display:block}.composite-example>div .cycle-overlay{color:#fff;background:#000;opacity:.6;position:absolute;bottom:0;width:100%;padding:0}.fts-slider-center{text-align:center;padding:2px 0;background:#171717;position:relative;display:block;min-height:35px;font-size:15px;line-height:30px}.fts-slider-center span{display:inline-block;position:absolute;-webkit-text-size-adjust:none}.fts-cycle-slide p{margin:0;padding:0}.fts-prevControl-icon:before{content:'\f0a8';font-family:FontAwesomeSlick!important;font-size:24px}.fts-custom-caption{text-align:center;position:absolute;width:100%;left:0;top:2px;font-size:13px!important;line-height:30px;font-weight:700;z-index:0;letter-spacing:1px}.fts-nextControl-icon:before{font-size:24px;content:'\f0a9';font-family:FontAwesomeSlick!important}.fts-prevControl-icon{left:8px;z-index:1;cursor:pointer}.fts-nextControl-icon{right:7px;z-index:1;cursor:pointer}.fts-nextControl-icon:hover,.fts-prevControl-icon:hover{opacity:.8!important}.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-instagram-fade.mfp-ready .mfp-figure{opacity:1!important}.page-id-6026 #main-header{display:none}.page-id-6026 #page-container{padding-top:0!important}.page-id-6026 .container{margin:0 auto!important;max-width:100%!important;width:100%!important}.fts-slider-icons-center{display:block;line-height:30px}.fts-pager-option{top:10px;position:relative}.fts-pager-option-top{bottom:0;position:relative;top:5px}.fts-pager-option,.fts-pager-option-top{text-align:center;width:100%;z-index:500;display:block}.fts-pager-option span{font-size:47px;width:15px;height:15px;line-height:10px;display:inline-block}.fts-pager-option span.cycle-pager-active,.fts-pager-option span:hover{opacity:.5}.fts-pager-option>*{cursor:pointer}.fts-fb-vid-popup .mfp-iframe-holder .mfp-close,.fts-fb-vid-popup .mfp-inline-holder .mfp-close{top:-50px!important;font-size:54px!important;font-weight:100;font-family:inherit}.fts-facebook-popup.mfp-bg,.fts-vine-vid-popup.mfp-bg{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-bg.mfp-ready{opacity:.8;z-index:99999990}.fts-facebook-popup.mfp-bg.mfp-removing{opacity:0}.fts-facebook-popup.mfp-wrap .mfp-content{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-wrap.mfp-ready .mfp-content{opacity:1}.fts-facebook-popup.mfp-wrap.mfp-removing .mfp-content{opacity:0}.fts-facebook-popup .mfp-close{left:0!important;margin-left:4px!important;background:0 0!important;cursor:zoom-out!important;border:none!important;box-shadow:none!important;font-size:27px!important;font-family:'Open Sans',Arial,sans-serif!important;font-weight:600!important;top:-42px!important;opacity:.5!important}.fts-facebook-popup .mfp-close:before{display:none!important}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{max-width:1400px}.fts-facebook-popup .mfp-iframe-scaler iframe,.fts-facebook-popup .mfp-iframe-scaler video{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:none!important;background:#000;right:0;margin:auto}.fts-facebook-popup .mfp-title{padding:20px;background:rgba(255,255,255,.11);margin-top:21px}.fts-facebook-popup .fts-popup-wrap{max-width:1400px;margin:0 auto;padding:0;vertical-align:middle;width:100%;position:relative}.fts-facebook-popup .fts-popup-half{width:75%;float:left;background:#000;text-align:center;vertical-align:middle;height:100%;position:relative;z-index:88888888}.fts-facebook-popup .fts-popup-second-half{height:100%;width:25%;position:relative;float:left}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto}.fts-facebook-popup .fts-popup-wrap img.mfp-img{width:auto;max-width:100%;display:initial;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;vertical-align:middle}.fts-facebook-popup .fts-popup-wrap .mfp-counter{position:relative;bottom:0;text-align:right;right:10px;color:#c1c1c1!important;font-size:12px;line-height:18px;white-space:nowrap;display:inline-block;float:right;top:initial;margin:5px 0}.fts-facebook-popup .fts-position-helper{display:inline-block;height:100%;vertical-align:middle}.fts-facebook-popup .fts-popup-image-position{min-height:527px;width:100%;background:#000;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none}.fts-facebook-popup .fts-popup-wrap .mfp-title{padding:0;background:rgba(255,255,255,.11);margin:0}.fts-facebook-popup .fts-popup-second-half .mfp-title a{color:#0f6fad;text-decoration:none!important}.fts-youtube-popup .fts-popup-second-half .mfp-title a{color:#0f6fad!important}.fts-facebook-popup .mfp-figure:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#fff}.fts-facebook-popup .fts-popup-wrap .mfp-title p,.fts-instagram-caption-content .fts-popup-wrap .mfp-title p{color:#000!important;margin:0 0 10px!important;padding:0!important}.fts-facebook-popup .mfp-image-holder .mfp-content{max-width:1400px;width:100%}.fts-facebook-popup .fts-jal-fb-user-name{font-size:14px;margin-top:20px;padding-left:82px;display:block;padding-right:15px}.fts-facebook-popup .fts-fb-caption,.fts-facebook-popup .fts-non-popup-text,.hide-date-likes-comments-etc{display:none!important}.fts-facebook-popup .fts-jal-fb-post-time{padding-left:82px}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{padding:10px 20px 0}.fts-facebook-popup .fts-fb-caption a{font-size:13px}.fts-facebook-popup i:before{margin-left:0!important;font-style:normal!important;font-size:15px!important}.fts-facebook-popup .icon-file:before{font-size:15px!important}#fts-photo-next:hover:after,#fts-photo-prev:hover:after,.fts-popup-half:hover #fts-photo-next:after,.fts-popup-half:hover #fts-photo-prev:after{opacity:1!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}#fts-photo-next:after,#fts-photo-prev:after{font-family:FontAwesomeSlick;font-size:58px!important;font-weight:100;opacity:0;color:#fff;border:none!important;margin-top:-20px!important}#fts-photo-next:after{content:"\f105"}#fts-photo-prev:after{content:"\f104"}.fts-facebook-popup .mfp-arrow{background:0 0!important;width:48px!important;height:28px!important;line-height:normal!important;margin:-32px 0!important}.fts-facebook-popup .mfp-arrow:after{margin:0!important;top:0!important;border:none!important;width:48px!important;height:24px!important}.twitter-followers-fts.fts-tweets-first,.twitter-followers-fts:hover{border-bottom:4px solid #1b95e0!important}.fts-facebook-popup .mfp-arrow-left{left:5px!important}.fts-facebook-popup .mfp-arrow-right{right:5px!important}.fts-facebook-popup .fts-jal-fb-description.fts-jal-fb-description-popup,.fts-facebook-popup .hide-date-likes-comments-etc{display:inline-block!important}.fts-facebook-popup .mfp-arrow:before,.fts-iframe-popup-element,.fts-video-popup-element{display:none}.fts-jal-fb-description-popup{color:#444}.fts-facebook-popup .fts-jal-fb-description-wrap{max-height:300px;overflow:auto;max-width:100%;padding-left:20px!important;width:100%}.fts-facebook-popup *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}body .fts-facebook-popup a.fts-powered-by-text{margin:2px 20px!important;text-align:left!important;float:left!important;font-size:12px;color:#c1c1c1!important;width:auto!important;font-weight:400!important;line-height:18px!important}.fts-powered-by-text-popup a.fts-powered-by-text{display:block!important}.fts-facebook-popup .mfp-iframe-holder .mfp-bottom-bar,.fts-facebook-popup .mfp-inline-holder .mfp-bottom-bar{overflow:auto}.fts-fb-comments-content{float:left;width:100%;max-width:100%;background:#f6f7f9;padding:0 20px 20px}.fts-facebook-popup .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0;color:#333}.ft-gallery-share-wrap .fa,.fts-share-wrap i{font-style:normal!important}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{clear:both;font-size:15px;color:#333}.fts-facebook-popup .fts-fb-get-directions{font-size:15px;display:inline-block;padding:0 0 20px;color:#4595f0!important}.fts-facebook-popup .fts-fb-ticket-info{color:#4595f0!important}.fts-event-title-wrap{font-size:24px;line-height:24px}.fts-fb-comments-wrap{display:none!important}.fts-fb-comment{clear:both;float:left;width:100%;color:#222;margin:0;padding:15px 0 0;font-size:13px}.fts-fb-comment-user-pic{float:left;width:32px;height:32px;margin:0;border-radius:50px}.fts-fb-comment-msg{padding-left:42px;font-size:12px}.fts-fb-comment-user-name{font-weight:700;display:inline-block;font-size:12px}@media all and (max-width:900px){.fts-facebook-styles-popup .fts-popup-half,.fts-facebook-styles-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:none}.fts-facebook-styles-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500}.fts-facebook-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-styles-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-styles-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (max-width:640px){.fts-instagram-styles-popup .fts-popup-half,.fts-instagram-styles-popup .fts-popup-second-half{height:100%;width:100%!important;position:relative;float:none}.fts-instagram-styles-popup .fts-popup-half{background:#fff;text-align:center;vertical-align:middle;z-index:500}.fts-instagram-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-instagram-styles-popup .mfp-iframe-holder .fts-popup-image-position{height:auto!important}.fts-instagram-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-instagram-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (min-width:1900px){.fts-facebook-popup .fts-popup-second-half.fts-instagram-popup-second-half{float:left!important}.fts-facebook-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:left}.fts-facebook-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500;width:100%}.fts-facebook-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important;min-height:auto!important}}.fts-twitter-backg-image,.fts-twitter-backg-image img{margin:0!important;padding:0!important;position:relative;z-index:99}.fts-instagram .image-overlay,.fts-instagram .image-overlay-inside,.fts-instagram .image-overlay.overlay-type-extern,.fts-jal-fb-group-display .image-overlay-inside,.fts-jal-single-fb-post .image-overlay,.fts-jal-single-fb-post .image-overlay-inside,.fts-jal-single-fb-post .image-overlay.overlay-type-extern,.fts-mashup .image-overlay,.fts-mashup .image-overlay.overlay-type-extern,.fts-pinterest-wrapper .image-overlay,.fts-pinterest-wrapper .image-overlay-inside,.fts-pinterest-wrapper .image-overlay.overlay-type-extern,.fts-profile-pic a .image-overlay,.fts-profile-pic a .image-overlay-inside,.fts-profile-pic a .image-overlay.overlay-type-extern,.fts-slicker-facebook-photos .image-overlay,.fts-slicker-facebook-photos .image-overlay-inside,.fts-slicker-facebook-photos .image-overlay.overlay-type-extern,.fts-tweeter-wrap .image-overlay,.fts-tweeter-wrap .image-overlay-inside,.fts-tweeter-wrap .image-overlay.overlay-type-extern,.fts-vine-content .image-overlay,.fts-vine-content .image-overlay-inside,.fts-vine-content .image-overlay.overlay-type-extern,.fts-yt-videolist .image-overlay,.fts-yt-videolist .image-overlay-inside,.fts-yt-videolist .image-overlay.overlay-type-extern{display:none!important}.fts-facebook-popup.mfp-ready .mfp-figure{opacity:1}ul.fts-sidebar-menu ul.fts-social-bar-icons-wrap ul li{margin:0!important}.fts-instagram-inline-block-centered{text-align:center;font-size:0;margin:auto}#facebook-sidebar .fts-fb-comments-wrap{display:none}.fts-twitter-backg-image img{display:block!important;width:100%}.fts-twitter-backg-image .twitter-social-btn-top{position:absolute!important;bottom:5px;left:10px;z-index:100}.fts-twitter-followers-wrap{background:#fff;padding:1px 5px 0 0;margin-bottom:10px;text-align:center;color:#1b95e0!important}.twitter-followers-fts{text-align:center;display:inline-block;padding:5px 15px;font-size:18px;font-weight:600!important}.twitter-followers-fts a,.twitter-followers-fts-singular a{font-weight:400!important;letter-spacing:.02em;text-transform:uppercase}.twitter-followers-fts a{display:block;color:#66757f!important;font-size:11px;transition:color .15s ease-in-out}.twitter-followers-fts:hover{transition:border .15s ease-in-out}.fts-tweets-first,.fts-tweets-first a,.twitter-followers-fts:hover a{color:#1b95e0!important}.fts-tweet-reply-left{float:left;display:inline-block}.fts-twitter-reply-wrap a{/* color:rgba(144,147,148,.71) */}body .fts-twitter-favorites-wrap:hover{color:#c32525!important}.fts-twitter-favorites-wrap{margin-left:20px}body .fts-twitter-reply-wrap.fts-twitter-full-width{margin-left:0!important;margin-top:0}.twitter-followers-fts-singular{font-size:15px;padding:5px 0 0}.twitter-followers-fts-singular a{color:#66757f!important;font-size:11px}.twitter-social-btn-top a,.twitter-social-btn-top iframe{color:#fff!important}@media (max-width:400px){.twitter-followers-fts{padding:5px 10px;font-size:15px!important;font-weight:500!important}}.fts-twitter-full-name{font-size:14px!important;font-weight:700}a.fts-twitter-at-name{font-size:13px!important;color:#999!important;font-weight:400!important;display:inline-block;margin-top:3px}.fts-profile-wrap{clear:both;display:block}.fts-clear{clear:both}.fts-profile-pic{float:left;margin:0 25px 20px 0;max-width:125px}.fts-profile-pic a:hover{opacity:.8}.fts-isnta-full-name{padding:0 0 10px;float:left;margin:4px 20px 0 0}.fts-profile-name-wrap .fts-follow-header-wrap{font-size:14px;display:inline-block;letter-spacing:0;padding:7px 10px;border-radius:4px;border:1px solid #5dba00;line-height:18px}.fts-profile-description{font-size:15px;line-height:22px}.fts-profile-name-wrap{font-size:32px;margin-bottom:18px;letter-spacing:2px;line-height:28px}.fts-profile-pic img{border-radius:50%;max-width:100%}.fts-profile-stats{margin:0 0 5px}.fts-profile-stats span{font-weight:700;display:inline-block}.fts-profile-stats div{font-size:15px;display:inline-block;margin-right:20px;margin-bottom:10px}.fts-profile-wrap{max-width:630px;margin:auto;padding:0 0 20px}.fts-facebook-popup .fts-instagram-caption-content a{color:#003569!important}.fts-facebook-popup a.ft-gallery-link-popup,.fts-facebook-popup a.fts-jal-fb-see-more{font-size:12px;text-align:right;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:13px 20px 11px 40px;background:#f6f7f9;display:block!important;width:100%!important}.fts-instagram-popup-profile-wrap{display:none}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic{display:block;padding:15px 10px 0 15px;margin:0}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic img{display:block;width:40px}.fts-facebook-popup.fts-instagram-styles-popup .fts-isnta-full-name{font-size:17px;letter-spacing:normal;color:#333}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-name-wrap{padding-top:15px}.fts-follow-header-wrap{margin-right:15px;color:#5dba00}.fts-follow-header-wrap a{color:#5dba00!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-insta-date-popup-grab{clear:both;text-align:right;margin:55px 15px -8px!important;color:#999;border-top:1px solid #eee;padding-top:12px;font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup a.fts-view-on-instagram-link{margin:20px 15px 0;padding:10px 0!important;color:#9f9f9f!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-view-on-instagram-link:before{font-size:15px;top:1px;position:relative;margin-left:5px}.fts-facebook-popup.fts-instagram-styles-popup .fts-follow-header-wrap{float:right;margin:0 40px 20px 15px;color:#5dba00;font-size:12px;top:-7px;position:relative}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap{position:relative;color:#444!important;margin:0 0 0 15px!important;font-size:14px;width:auto!important;left:0}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap li,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap li{display:inline-block;margin-right:15px!important;margin-top:-5px!important;opacity:1}.fts-facebook-popup.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-half.fts-instagram-popup-half{width:64%}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half.fts-instagram-popup-second-half{width:36%}.fts-facebook-popup.fts-instagram-styles-popup .fts-instagram-popup-half .fts-popup-image-position{min-height:auto!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto;min-height:200px}.fts-facebook-popup.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-image-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{max-width:1000px;width:100%}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap{margin:-18px 0 0 15px!important}.fts-facebook-popup a.fts-view-on-instagram-link{font-size:12px;text-align:left;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555!important;padding:10px 20px;background:#fff;display:block}.fts-mashup-post-wrap{padding:0!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px;margin-bottom:10px;position:relative;display:inline-block;width:100%}.fts-mashup-type-name{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:10px;box-shadow:1px 1px 0 #ddd}.fts-mashup-type-name span{display:block;padding:0 7px 3px 0;text-align:right;font-size:10px;color:#bfbfbf;line-height:14px}.fts-mashup-count-wrap{width:100%;clear:both;display:block;padding-top:12px;text-align:left;margin-bottom:6px;float:left}.fts-mashup-count-wrap a{display:inline-block;font-size:13px}.fts-mashup-count-wrap .fts-tweet-reply-left{float:none;display:inline-block}.fts-mashup-description-wrap{clear:both;padding-top:5px;line-height:18px}.fts-jal-fb-post-time{margin-bottom:8px}.twitter-video{min-width:200px!important}.fts-mashup .fts-mashup-image-and-video-wrap{margin-top:8px;position:relative;line-height:0}.fts-mashup-count-wrap .slicker-heart-comments-wrap{position:relative;top:inherit;bottom:inherit;margin:0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li.slicker-instagram-image-likes{padding-left:0!important}.fts-mashup .fts-twitter-description-image{margin-top:0!important}.fts-mashup .fts-single-pin-social-meta-wrap{margin:0}.fts-mashup .fts-single-pin-social-meta-wrap span{margin-top:0;font-size:14px}.fts-mashup .fts-youtube-title{font-weight:700;font-size:12px;padding:8px 0 0;line-height:14px}.fts-mashup-post-wrap .fts-jal-single-fb-post{padding-top:0!important}.fts-mashup .fts-jal-single-fb-post{border-bottom:none}.fts-mashup .fts-jal-fb-picture,.fts-mashup .fts-jal-fb-vid-picture{margin-top:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before,.fts-mashup-instagram-icon a:before,.fts-mashup-pinterest-icon a:before,.fts-mashup-twitter-icon a:before,.fts-mashup-wp_gallery-icon a:before,.fts-mashup-youtube-icon a:before{font-family:FontAwesomeSlick;font-size:32px;font-weight:100!important}.fts-mashup-instagram-icon a:before{content:"\f16d";font-size:37px;top:2px;position:relative}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:"\f09a";top:2px;position:relative;left:8px;font-size:30px}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:""}.fts-mashup-twitter-icon a:before{content:"\f099";top:0;position:relative;left:3px}.fts-mashup-pinterest-icon a:before{content:"\f231";position:relative;top:3px;left:5px}.fts-mashup-youtube-icon a:before{content:"\f167";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{top:0;left:2px}.slicker-instagram-placeholder .ft-text-for-popup-content{padding:5px 15px;opacity:0;z-index:10;position:relative;color:#fff}.slicker-instagram-placeholder .fts-mashup-count-wrap{opacity:0;z-index:10;position:absolute;bottom:-5px;left:5px;color:#fff}.slicker-instagram-placeholder:hover .fts-mashup-count-wrap a{color:#fff!important;font-size:12px}.slicker-instagram-placeholder .fts-mashup-count-wrap a{color:#fff;font-size:12px}.slicker-instagram-placeholder:hover .ft-text-for-popup-content,.slicker-instagram-placeholder:hover .fts-mashup-count-wrap{opacity:1;color:rgba(255,255,255,.88)}.slicker-instagram-placeholder .ft-gallery-link-popup{font-size:14px;position:absolute;bottom:10px;left:10px}.ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f14d ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;font-size:16px;margin-top:1px;margin-left:1px}.fts-mashup-wp_gallery-icon a:before{content:"\f19a";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-wp_gallery-icon a:before{top:0;left:2px}.fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-top:3px;margin-right:5px}.slicker-instagram-placeholder .ft-wp-gallery-icon{margin-top:-12px;margin-right:0}.fts-mashup-icon-wrap-left.fts-mashup-twitter-icon a:before{top:0;left:3px}.fts-mashup-type-icon-spacer{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:2px}.fts-feed-type-wp_gallery .fts-mashup-description-wrap{margin:0 0 15px}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-thumb.fts-feed-type-facebook .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook .fts-mashup-icon-wrap-left a:before,.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{content:"\f09a";top:2px;position:relative;left:9px;font-size:28px!important}.fts-mashup-type-icon{float:left;height:40px;margin:15px 10px 0 0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:40px;height:45px;float:left;margin:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a,.fts-mashup-icon-wrap{float:left;height:45px;width:40px;padding-top:13px;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{float:left;height:50px;width:50px;padding-top:0;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 15px 0 0}.fts-mashup .fts-jal-fb-message{line-height:18px;padding-top:5px}.fts-mashup-count-wrap a,.fts-mashup-icon-wrap a{text-decoration:none!important}.fts-mashup .fts-jal-fb-post-time{padding-top:3px}.fts-mashup .fts-likes-shares-etc-wrap{float:left;width:100%;padding:0}.fts-mashup .icon-thumbs-up:before,.fts-single-pin-social-meta-wrap,.fts-tweet-reply-left{margin-left:5px!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-mashup-count-wrap .slicker-heart-comments-wrap li,.fts-mashup .slicker-instagram-placeholder .slicker-heart-comments-wrap li{font-size:12px!important}.fts-mashup .fts-comment-instagram:before,.fts-mashup .fts-jal-fb-see-more .icon-comments:before,.fts-mashup .fts-jal-fb-see-more .icon-file-up:before,.fts-mashup .fts-jal-fb-see-more .icon-thumbs-up:before{font-size:14px}.fts-mashup-icon-wrap-right{float:right}.fts-mashup-icon-wrap-right a{text-decoration:none!important;font-size:12px}.fts-mashup-icon-wrap-left a:before,.fts-mashup-icon-wrap-right a:before{font-family:FontAwesomeSlick;font-weight:100!important;top:12px}.fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:relative;right:18px;top:13px;z-index:1}.fts-mashup-hide-fb-icon.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{font-size:30px!important}.fts-mashup-icon-wrap-left{float:left;margin:16px 12px 0 0}.fts-feed-type-pinterest .fts-mashup-icon-wrap-left a:before{left:4px;top:0}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{font-family:FontAwesomeSlick!important;content:"\f09a"!important;top:2px!important;position:relative!important;left:8px!important;font-size:29px!important}.fts-mashup .fts-mashup-icon-left .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb,.fts-mashup .fts-mashup-hide-fb-icon-and-thumbnail.fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-icon-and-thumbnail .fts-jal-fb-user-thumb,.fts-mashup-icon-left .fts-jal-fb-user-thumb img{display:none!important}.fts-mashup-icon-left .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{content:''!important}.fts-mashup-icon-left.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb{display:block!important}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb a:before{display:none}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb{width:50px!important;height:50px!important;margin-right:10px!important;margin-bottom:10px!important}body .fts-mashup .fts-mashup-hide-fb-thumbnail-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{width:50px!important;height:50px!important;margin-top:0!important;padding:0!important}.fts-mashup .fts-likes-shares-etc-wrap a{color:#777}.fts-mashup-error-notice{margin-bottom:25px}.fts-mashup-icon-left .fts-mashup-error-notice{margin-left:45px}.fts-mashup-icon-wrap-left a{text-decoration:none!important}.fts-mashup-icon-wrap-right.fts-mashup-youtube-icon a:before{left:-2px!important;top:15px}.fts-mashup-icon-wrap-right.fts-mashup-twitter-icon a:before{left:-2px!important}.fts-mashup-icon-wrap-right.fts-mashup-pinterest-icon a:before{left:0!important}.fts-mashup .fts-jal-fb-user-name{margin-right:23px}.fts-mashup-media-top.fts-mashup-post-wrap .fts-jal-fb-user-name{margin-left:10px;padding-top:0}.fts-mashup-media-top .fts-jal-fb-user-name{margin-left:10px}.fts-mashup .fts-jal-fb-message p,.fts-mashup-description-wrap p{margin:4px 0 5px!important}.fts-single-pin-meta-wrap .fts-single-pin-social-meta-wrap{margin-left:15px!important}.fts-review-details-wrap{margin-top:0}.fts-review-details-master-wrap{display:block;clear:both;padding:10px 10px 15px;background:#fff;border-bottom:1px solid rgba(184,184,184,.3)}.fts-reviews-overall-rating-stars{margin:auto}.fts-review-details-wrap{padding:5px 0 0;line-height:17px}.fts-review-details-master-wrap-no-background-or-border{background:0 0!important;border:none!important}.fts-slicker-twitter-posts .fts-tweeter-wrap .tweeter-info{padding:11px 0 7px}.fts-slicker-twitter-posts .fts-twitter-image{margin-left:11px!important}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width{padding:0 10px 10px}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width.fts-twitter-reply-wrap{padding:0 10px 2px}.tweeter-info .twitter-video{margin:0 -8px -5px!important}.fts-fb-get-directions,.fts-fb-ticket-info{display:inline-block}.fts-fb-ticket-info:before{content:'|';margin-left:10px;margin-right:10px}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time,.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name,.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{padding-right:15px}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{margin-top:20px;margin-bottom:25px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name{margin-top:12px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time{padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-right:20px!important;margin-top:-1px}.fts-facebook-popup a.ft-gallery-link-popup{font-size:12px;text-align:left;margin-top:15px;border-top:0 solid #eee;border-bottom:0 solid #eee;padding:14px 20px 10px;background:0 0;display:inline-block;float:left}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap p{padding-top:0;line-height:21px;word-wrap:break-word;font-size:15px;color:#333}.ft-text-for-popup-content{text-align:left}.fts-slicker-facebook-photos .ft-text-for-popup-content .fts-jal-fb-post-time{color:#9d9d9d!important;margin-top:0}.ft-image-overlay{position:absolute;top:0;left:0;height:100%;width:100%}.fts-popup-second-half .fts-watermark-inside{display:none!important}.fts-watermark-inside-center{position:absolute;top:50%;text-align:center;transform:translateY(-50%);width:100%}.fts-watermark-inside-top-center{position:absolute;text-align:center;top:0;width:100%}.fts-watermark-inside-bottom-center{position:absolute;bottom:0;text-align:center;width:100%}.fts-watermark-inside-bottom-left{position:absolute;bottom:0}.fts-watermark-inside-bottom-right{position:absolute;text-align:right;bottom:0;width:100%}.fts-watermark-inside-top-right{position:absolute;width:100%;top:0;text-align:right}.fts-watermark-inside-top-left{position:absolute;text-align:left;top:0;width:100%}.fts-watermark-inside img{max-width:100%;height:auto;display:inline-block;margin:0}.fts-mashup-image-and-video-wrap .fts-watermark-inside img{max-width:75%!important}.ft-gallery-share-wrap{display:none;margin-top:0;position:absolute;left:20px;background:#fff;top:-8px;min-width:116px;box-shadow:2px -2px 3px 0 rgba(187,187,187,.8);width:100%;z-index:1;text-align:left}.fts-popup-second-half .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.ft-gallery-share-wrap a{display:inline-block!important}.fts-share-wrap{padding:0;float:left;width:auto;margin:9px 0 0;display:inline-block;position:relative;z-index:1}a.fts-jal-fb-see-more{width:auto!important;display:inline-block!important;text-align:left}.ft-gallery-share-wrap .fa,.fts-twitter-logo .fa{display:inline-block!important;font-family:FontAwesomeSlick!important;font-weight:400!important;line-height:1!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ft-gallery-share-wrap .fa-facebook-square:before{content:"\f082";font-size:17px!important}.ft-gallery-share-wrap .fa-linkedin:before{content:"\f0e1";font-size:16px!important}.ft-gallery-share-wrap .fa-google-plus:before{content:"\f0d5";font-size:16px!important}.ft-gallery-share-wrap .fa-pinterest-plus:before{content:"\f0d2";font-size:15px!important}.ft-gallery-share-wrap .fa-twitter:before,.fts-twitter-logo .fa-twitter:before{content:"\f099";font-size:19px!important;top:1px;position:relative}.ft-gallery-share-wrap .fa-envelope:before{content:"\f0e0";font-size:16px!important}.ft-gallery-link-popup{margin:5px 0 0!important}.ft-gallery-share-wrap a:hover{opacity:.8;}.fts-slicker-facebook-photos .fts-share-wrap a{color:#fff!important}.fts-slicker-facebook-photos .fts-mashup-count-wrap{clear:both;display:block!important;top:-21px;left:16px}.fts-slicker-facebook-photos .fts-likes-shares-etc-wrap{outline:0;z-index:5000!important;color:#fff;position:absolute;bottom:10px!important;display:none;width:100%;text-align:left}.fts-slicker-facebook-photos .fts-jal-fb-see-more{bottom:0!important;position:absolute;left:10px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap{margin:10px 3px 0 0;padding:0}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap a.ft-gallery-link-popup{margin:0!important}.fts-mashup-post-wrap.fts-feed-type-facebook .ft-gallery-share-wrap{top:-7px}.fts-mashup-count-wrap.fts-share-wrap .ft-gallery-link-popup{margin-top:0!important}.fts-twitter-reply-wrap{float:left}.fts-instagram-reply-wrap-left,.fts-pinterest-reply-wrap-left,.fts-youtube-reply-wrap-left{float:right}.fts-tweeter-wrap .fts-share-wrap{padding:7px 0 0;margin-top:10px}.ft-gallery-share-wrap a{margin:7px 5px;font-size:13px}.fts-tweeter-wrap .ft-gallery-share-wrap{top:-6px}.fts-tweeter-wrap .fts-mashup-count-wrap a{display:inline-block;margin:7px 5px;font-size:13px}body .fts-slicker-facebook-photos .fts-tweeter-wrap .ft-gallery-share-wrap{max-width:132px!important;width:100%!important}.fts-tweeter-wrap .ft-gallery-link-popup{font-size:13px}.fts-twitter-reply-wrap-left{float:right;padding:10px 0 0;margin-top:5px}.fts-tweet-others-right a{display:inline-block}.fts-twitter-reply-wrap .fts-share-wrap{margin-top:10px;padding:0}.fts-share-wrap .fts-share-wrap{margin-top:10px}.fts-twitter-reply-wrap .fts-share-wrap a.ft-gallery-link-popup{margin-top:0!important}.fts-slicker-twitter-posts .fts-twitter-reply-wrap-left{padding:0!important;margin:15px 0 0!important}.ft-galleryfacebook-icon{margin-left:11px!important}.fts-mashup-post-wrap .fts-tweet-reply-left{margin-right:35px;padding:0 5px}.fts-mashup-post-wrap .fts-twitter-reply-wrap-left{padding:0;margin-top:0}.fts-share-wrap .ft-gallery-link-popup{margin:0!important;font-size:12px}.fts-mashup-count-wrap .fts-share-wrap{margin:0!important}.fts-instagram-reply-wrap-left{margin-right:8px}.fts-popup-second-half .fts-share-wrap{margin:15px 0 -64px}.fts-popup-second-half .mfp-title .ft-gallery-share-wrap a{color:#137fc4}.fts-instagram-styles-popup .fts-share-wrap .ft-gallery-share-wrap a,.fts-instagram-styles-popup .fts-share-wrap a.ft-gallery-link-popup{color:#444}.fts-youtube-reply-wrap-left a{font-size:12px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-jal-fb-see-more{margin-bottom:-1px;text-transform:none!important}.fts-instagram-styles-popup .ft-gallery-link-popup,.fts-instagram-styles-popup .fts-share-wrap{margin:0!important;padding:0!important}.fts-instagram-styles-popup .fts-instagram-reply-wrap-left{float:left;margin-left:20px}.fts-instagram-styles-popup .fts-share-wrap{background:#fff;top:-11px;left:19px;position:relative;z-index:1000}.fts-instagram-styles-popup .ft-gallery-share-wrap{top:-6px;left:25px;background:#fff}.fts-instagram-styles-popup .ft-gallery-link-popup:before{content:"\f064";margin-right:10px}.slicker-instagram-placeholder .ft-gallery-link-popup:before{content:"\f064";color:#fff;font-size:15px;position:relative;top:2px}.slicker-instagram-placeholder .ft-gallery-share-wrap{top:-19px;left:35px;box-shadow:2px -2px 3px 0 #222!important;background:#000}.slicker-instagram-placeholder .ft-gallery-share-wrap a{color:#fff}.fts-facebook-popup .ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f064 ";margin-left:8px}.fts-mashup-count-wrap .fts-instagram-reply-wrap-left{margin-right:-8px}.fts-facebook-thumb-one,.fts-facebook-thumb-zero{margin-right:1px!important;display:inline-block;margin-bottom:1px!important}a.fts-facebook-thumbs-wrap{display:inline-block;max-width:515px}.fts-facebook-thumb-two{display:inline-block}.fts-image-count-tint-underlay{position:absolute;top:0;bottom:0;right:0;left:0;background:rgba(0,0,0,.5)}.fts-fb-thumbs-wrap,.fts-more-photos-auto-width .fts-fb-thumbs-wrap{position:relative;background-size:cover!important;background-position:center center!important;display:inline-block!important;overflow:hidden}.fts-fb-thumbs-wrap{margin-right:.233333%!important}.fts-2-photos.fts-fb-thumbs-wrap,.fts-more-photos-3-photos .fts-fb-thumb-two-wrap{margin-right:0!important}.fts-3-photos{max-width:33.1%}.fts-2-photos{max-width:49.77%}.fts-fb-more-photos-wrap .fts-jal-fb-picture{margin-bottom:1px!important}.fts-more-photos-auto-width{float:none!important;margin:10px 0 4px}.fts-more-photos-auto-width a{width:49.84%;margin:0!important}.fts-more-photos-auto-width .fts-fb-thumbs-wrap{max-width:100%;margin-right:0!important;margin-left:.2333333333%!important;margin:0 0 4px;z-index:0;background-repeat:no-repeat;vertical-align:top}.fts-more-photos-auto-width .fts-jal-fb-picture{float:none!important;display:inline-block!important;margin:0!important}.fts-more-photos-three-photo-wrap .fts-fb-thumbs-wrap{display:inline-block!important;max-width:100%;margin-right:.233333333%!important;margin:0 0 4px;width:49.887%;overflow:hidden;max-height:240px}.fts-fb-scrollable,.fts-twitter-scrollable,.fts-youtube-scrollable{overflow:auto}.ft-text-for-popup,.fts-slicker-facebook-albums .fts-fb-load-more-output,.fts-slicker-facebook-albums .fts-share-wrap,.fts-slicker-facebook-photos .fts-share-wrap,.fts-twitter-reply-wrap-left p{display:none}.fts-more-photos-three-photo-wrap .fts-fb-thumb-one-wrap{margin-right:0!important}.fts-image-count{position:absolute;bottom:50%;width:100%;top:50%;text-align:center;font-size:36px;color:#fff;line-height:36px;height:36px;transform:translate(0,-50%)}.fts-image-count span{position:relative;bottom:0;font-size:35px}.fts-fb-more-photos-wrap{width:100%}@media (max-width:375px){.fts-image-count,.fts-image-count span{font-size:20px}}@media (max-width:667px){.fts-image-count,.fts-image-count span{font-size:34px}}.ft-gallery-buy-now{margin:0 12px}.fts-mashup-post-wrap .fts-share-wrap,.fts-slicker-facebook-albums.ft-wp-gallery .fts-share-wrap{display:block}.fts-mashup-count-wrap .fts-twitter-reply-wrap.fts-twitter-no-margin-left,.fts-mashup-hide-date .fts-jal-fb-post-time,.fts-mashup-hide-name .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-description-wrap,.fts-mashup-media-top .fts-mashup-type-icon-spacer{display:none}.ft-wp-gallery .fts-share-wrap a{color:#777!important}.fts-slicker-facebook-posts img{max-width:100%}.fts-twitter-no-margin-left{clear:both}.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px!important}.fts-smallerthan-180 .fts-instagram-link-target{padding-left:50%;padding-bottom:50%;padding-top:50%}.fts-smallerthan-180 .fts-instagram-link-target span:before{content:''!important}.fts-smallerthan-180 .fts-instagram-link-target:hover,.fts-smallerthan-180.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background:0 0!important}.fts-instagram,.fts-instagram-scrollable{margin:auto}.fts-mashup-hide-name .fts-mashup-description-wrap,.fts-mashup-hide-name.fts-mashup-hide-date .fts-jal-fb-message{padding-top:0!important}.fts-mashup-description-wrap a{word-wrap:break-word}.fts-mashup-image-and-video-wrap.popup-gallery-twitter .twitter-video{margin:-8px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin-top:0}.fts-mashup-media-top .fts-likes-shares-etc-wrap,.fts-mashup-media-top .fts-mashup-description-wrap,body .fts-mashup-post-wrap.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-youtube-title{padding:10px 10px 0;display:none}.fts-mashup-post-wrap .fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:5px 10px 0!important}.fts-mashup-media-top .fts-mashup-count-wrap{padding:8px 10px 7px!important;margin-bottom:0;margin-top:4px}.fts-mashup-media-top .fts-likes-shares-etc-wrap{padding:7px 10px 8px!important;margin-bottom:0;margin-top:10px}.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:0!important}.fts-mashup-media-top .fts-jal-fb-post-time{padding:5px 10px 7px!important}.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-fb-user-name,.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-jal-fb-see-more,.fts-mashup-media-top .fts-share-wrap{margin-top:0}.fts-mashup-media-top .fts-mashup-youtube-icon a:before{margin-right:8px!important;top:10px}.fts-mashup-media-top .fts-mashup-twitter-icon a:before{margin-right:8px!important;top:5px}.fts-mashup-media-top .fts-mashup-pinterest-icon a:before{margin-right:8px!important;top:9px}.fts-mashup-media-top .fts-mashup-instagram-icon a:before{margin-right:9px!important;top:9px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:unset;right:unset;top:unset;z-index:1;float:right!important}.fts-mashup-media-top .fts-jal-fb-top-wrap{display:none!important}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-top-wrap,.fts-mashup-hide-thumbnail .fts-jal-fb-user-thumb,.slicker-youtube-placeholder .entriestitle{display:none}.fts-mashup-media-top .fts-jal-fb-link-wrap,.fts-mashup-media-top .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px;text-align:center}.fts-mashup-media-top .fts-jal-fb-link-wrap .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-wrap{float:none}.fts-mashup-media-top .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-bottom:0!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left{margin-left:10px;margin-right:5px;margin-top:3px;top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon,.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-pinterest-icon{margin-top:2px;min-height:40px}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-right:0;margin-top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{margin-right:8px!important;top:6px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{margin-right:20px!important;margin-top:4px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-facebook-icon{margin-top:8px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon{margin-top:5px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap{margin-bottom:12px}.fts-mashup-media-top.fts-feed-type-facebook .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin:0}.fts-feed-type-facebook .fts-mashup-icon-wrap-left{margin-top:17px;margin-right:20px}.fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-top:3px}.fts-mashup-icon-wrap-left,.fts-mashup-icon-wrap-right{min-height:35px}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:6px!important;border:none;margin-bottom:10px;background:#fff;margin-top:0!important;padding-top:0!important}.fts-mashup-media-top .fts-jal-fb-link-wrap a,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-top:0!important;line-height:0!important}.fts-mashup-media-top.fts-slicker-facebook-posts .fts-jal-single-fb-post{padding:0 0 8px!important}.fts-mashup-media-top .fts-jal-fb-user-thumb{margin-left:10px;margin-bottom:12px}.fts-yt-open{display:block;width:100%;height:100%;position:absolute}.fts-master-youtube-wrap .slicker-instagram-placeholder{position:relative;background-size:cover}.fts-facebook-popup.mfp-ready{z-index:99999999999999}.fts-youtube-popup h3{color:#111;padding:20px 40px 0 20px!important;margin-bottom:2px;font-size:24px;margin-top:0}.fts-youtube-popup h4{color:#222;padding:0 20px 4px!important;font-size:17px}.fts-youtube-description-popup{padding:0 20px 20px;color:#000}.fts-youtube-date{color:#9a9a9a;padding:0 20px 20px!important;font-size:13px}.fts-yt-open:hover{background:rgba(0,0,0,.5);cursor:pointer}.fts-master-youtube-wrap .slicker-youtube-placeholder{min-height:100px}.fts-youtube-popup-gallery,.fts-youtube-scrollable{clear:both;display:block}.fts-yt-open:hover:before{font-family:FontAwesomeSlick;content:"\f04b";display:block;font-size:32px;color:rgba(255,255,255,.54);position:absolute;top:45%;right:45%;left:43%}.fts-youtube-smallerthan-180 .fts-yt-open:hover:before{content:""}.fts-jal-fb-vid-picture a{margin:0}.fts-facebook-popup .mfp-inline-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.fts-more-photos-4-photos a{max-height:150px;display:inline-block;width:auto}.fts-more-photos-2-photos a{max-height:250px}.fts-youtube-scrollable .fts-fb-autoscroll-loader{background:0 0}.fts-yt-large.fts-youtube-thumbs-wrap{float:left}.fts-youtube-scrollable.fts-youtube-thumbs-wrap{float:right;clear:none}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-left{float:left;clear:none}.fts-yt-large.fts-youtube-thumbs-wrap-left{float:right}.fts-yt-large.fts-youtube-thumbs-wrap-option-80-20{width:80%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-80-20{width:20%}.fts-yt-large.fts-youtube-thumbs-wrap-option-60-40{width:60%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-60-40{width:40%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-50-50,.fts-yt-large.fts-youtube-thumbs-wrap-option-50-50{width:50%}.fts-fb-comment .image-overlay-inside{display:none}.fts-youtube-popup .fts-fb-comment img{border-radius:30px}.fts-youtube-popup span.fts-fb-comment-date{color:#a6a6a6;padding-left:2px;font-size:12px!important}.fts-youtube-popup .fts-popup-second-half .mfp-title .fts-fb-comment-user-name a{color:#333!important}.youtube-comments-wrap{background:#fff;text-align:left;color:#2d2d2d!important}.youtube-comments-wrap .fts-share-wrap{margin:15px 0 -64px}.youtube-comments-wrap .fts-youtube-description-popup{display:block;position:relative!important;margin-bottom:-25px;padding-bottom:30px}.youtube-comments-wrap .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.fts-facebook-popup .mfp-bottom-bar a.ft-gallery-link-popup,.fts-facebook-popup .mfp-bottom-bar a.fts-jal-fb-see-more{color:#137fc4}.fts-youtube-scrollable .youtube-comments-wrap #___ytsubscribe_0{margin:20px 20px 10px!important}.mfp-title .fts-master-youtube-wrap-close{display:none}.fts-master-youtube-wrap-close{color:#636363;right:3px;top:3px;text-align:right;padding:15px;width:50px;font-size:24px;font-weight:700;position:absolute}.fts-master-youtube-wrap-close:before{content:"X"}.youtube-comments-wrap{overflow:auto;display:none;position:relative}.youtube-comments-wrap h3{padding-top:18px!important}.fts-scrollable-function{height:auto}.fts-youtube-description-popup{font-size:14px!important}.fts-youtube-no-thumbs-gallery{padding:0!important}.fts-youtube-noscroll .youtube-comments-wrap{overflow:visible}.fts-youtube-smallerthan-550-stack{width:100%!important}.fts-jal-fb-user-thumb img{border-radius:50px!important}.fts-twitter-username img.twitter-image{border-radius:50px;margin-right:10px}.fts-youtube-second-video-margin-btm{margin-bottom:35px}.fts-share-wrap [class*=fa-]{width:auto;height:auto}.fts-popup-half .mfp-arrow-left,.fts-popup-half .mfp-arrow-right{height:auto;width:auto;border:none!important;margin-top:0!important}.fts-popup-half .mfp-arrow-left:after,.fts-popup-half .mfp-arrow-right:after{background:0 0!important;height:auto!important;top:0!important;left:0!important;margin:0!important;padding:0!important;cursor:pointer;transform:none!important;transition:none!important;-webkit-transition:none!important}.fts-popup-half audio,.fts-popup-half video{visibility:visible!important}.fts-album-photos-wrap{text-align:center}.fts-fb-more-photos-wrap,.fts-more-photos-4-photos{position:relative;top:-3px}#wp-admin-bar-feed_them_social_admin_bar_set_cache{padding-bottom:17px!important;line-height:0!important}#wp-admin-bar-feed_them_social_admin_bar_set_cache span{line-height:10px;display:block;color:rgba(221,221,221,.57)}#wp-admin-bar-feed_them_social_admin_bar_set_cache:hover span{line-height:10px;display:block;color:#fff}.fts-mashup-media-top.fts-mashup-hide-thumbnail .fts-jal-fb-user-name{margin-left:0!important}.fts-steemit-username{display:inline-block;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border-radius:50%;width:48px;height:48px;margin-bottom:5px}.fts-steemit-div .steemit-info img{margin:0!important}.steemit-info .fts-uppercase{margin:14px 0 10px 10px}.fts-steemit-title{font-size:18px;margin-bottom:10px;letter-spacing:1px;font-weight:400;line-height:21px;color:#0084b4}.fts-steemit-div .fts-twitter-retweet:before{content:"\f27a"!important;font-size:15px!important;top:1px}.fts-steemit-div .fts-twitter-favorites:before{content:'Votes:'!important;font-family:arial!important;font-size:14px!important;margin-right:3px!important;top:0;font-weight:700}.fts-steemit-div .fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f06e'!important;position:relative;top:2px;font-size:19px}.fts-twitter-quoted-text-wrap{border:1px solid #efe8e8!important;margin-top:10px;font-size:inherit;text-align:left;border-radius:12px;overflow:hidden;background:#fff}.fts-twitter-quoted-text-wrap a{font-size:14px!important;display:block}.fts-twitter-quoted-text-wrap .twitter-video-rendered{margin:auto!important}.fts-fluid-videoWrapper{margin-top:8px}.fts-twitter-quoted-text-wrap .fts-twitter-link-image img,.fts-twitter-quoted-text-wrap img{margin-top:0!important}.fts-twitter-quoted-text{display: block;padding:8px 10px 0;line-height:18px;}.fts-twitter-quoted-video .fts-twitter-quoted-text{padding-top:0!important}.fts-twitter-quoted-image{padding:8px}.fts-twitter-quoted-image .fts-twitter-quoted-text{padding:8px 2px 2px!important}.fts-fb-more-photos-wrap a:last-child{margin-right:0!important}.fts-fb-more-photos-wrap a:first-child{margin-left:0!important}.fts-yt-first-video .fts-fluid-videoWrapper{margin-top:0}.fts-twitter-quoted-video .fts-fluid-videoWrapper-html5,.fts-twitter-quoted-video .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px}.fts-fb-location-wrap{text-align:center;padding:15px}.fts-fb-location-img{display:block;margin-bottom:9px;height:20px}.fts-fb-location-img:before{content:"\f024";font-family:FontAwesomeSlick;font-size:28px;display:block}.fts-fb-location-link{margin-bottom:5px;display:block;font-size:16px}.fts-popup-second-half .fts-fb-location-wrap{color:#444}.fts-fb-embed-iframe-check-used-for-popup,.greater-than-or-equal-width-height{display:none!important}.fts-fb-video-on-page.fts-fluid-videoWrapper{padding-bottom:56%;padding-top:0;width:100%!important;height:auto!important}.fts-fb-video-on-page.fts-fluid-videoWrapper iframe{width:100%!important;height:auto!important}.fts-greater-than-width-height.fts-fb-video-on-page{margin-top:18px}.fts-greater-than-width-height.fts-fb-video-on-page iframe{padding-bottom:100%}.fts-equal-width-height{max-width:100%;padding-bottom:100%!important}.fts-comment-star:before{font-family:FontAwesomeSlick;content:"\f075";font-size:14px;margin:0 6px 0 -2px!important;padding:0!important;display:inline-block!important;border:none!important}.fts-mashup-error-notice-strong{display:block;font-size:16px;padding-bottom:5px}.fts-mashup-error-bottom-padding{padding-bottom:20px;display:block}.fts-mashup-error-check .fts-mashup-image-and-video-wrap{display:none}.fts-review-name span{margin-right:5px}.fts-mashup.masonry .fts-fluid-videoWrapper-html5{margin-top:0}.fts-child-media-hide{display:none}.fts-instagram-styles-popup .fts-carousel-image{position:absolute;right:25px;top:32px;text-align:right;font-size:21px;color:#fff;z-index:1}.fts-carousel-image-wrapper,.fts-instagram-video-image-wrapper{position:relative;right:18px;top:18px;text-align:right;font-size:20px;color:#fff;width:auto;float:right}.fts-carousel-image:before{font-family:FontAwesomeSlick;content:'\f24d'}.fts-instagram-video-image:before{font-family:FontAwesomeSlick;content:'\f03d'}.fts-instagram-popup-second-half .fts-carousel-image{display:none}.fts-child-media-popup .fts-carousel-image{display:block}.fts-carousel-image-wrapper,.fts-instagram-video-image-wrapper{position:relative;z-index:2}.slicker-instagram-placeholder a:focus{outline:auto!important}.fts-instagram-icon:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;content:"\f16d"}.slicker-instagram-placeholder{height:0;width:0}.fts-fb-album-additional-pics-description-wrap,.fts-popup-wrap .fts-fb-album-name-and-count{display:none}.fts-fb-album-description-content{padding-top:5px!important}.fts-facebook-styles-popup .fts-fb-album-hide,a.ft-gallerygoogle-icon{display:none!important}.fts-facebook-popup .fts-fb-album-description-content .fts-jal-fb-user-name{padding-left:60px!important;margin-top:0!important}.fts-facebook-popup .fts-fb-album-description-content .fts-fb-album-date-wrap{padding-left:60px!important;color:#999}.fts-facebook-popup .fts-fb-album-description-content .fts-jal-fb-user-thumb{margin-left:0!important}.fts-fb-album-date-wrap{margin-bottom:25px}.fts-albums-hide-main-album-link-in-popup{display:none}.fts-likes-shares-etc-wrap .fts-albums-hide-main-album-link-in-popup{display:block}@media (min-width:900px){html .mfp-wrap.fts-facebook-popup .mfp-close{top:0!important;left:-10px!important;color:#137fc4;opacity:1!important;cursor:pointer!important;z-index:100;margin-bottom:0;padding-bottom:0;height:25px}}.fts-albums-single-image .fts-jal-fb-see-more{color:#fff}.fts-instagram-popup-second-half .fts-follow-header-wrap{display:none}div.cycle-carousel-wrap div.fts-jal-fb-top-wrap{white-space:normal!important}.fts-twitter-logo .fa.fa-twitter{color:#e7e7e7!important}.fts-twitter-retweet-feed{font-size:14px;top:1px}.fts-tweeter-wrap:hover i:before{color:#1d9bf0;transition:.5s}.fts-twitter-svg-addition .fts-tweet-reply-left{float:none;display:inline-block}.fts-twitter-reply-wrap .fts-share-wrap svg.svg-inline--fa{display:inline-block!important;width:17px;top:3px;position:relative;z-index:2;transform:rotate(90deg);fill:currentcolor}.fts-share-wrap svg.svg-inline--fa{display:none!important}.fts-twitter-reply-wrap .fts-share-wrap a:before{display:none}.fts-twitter-reply-feed svg.svg-inline--fa{display:inline-block!important;width:14px;top:2px;margin-left:17px;position:relative}.fts-twitter-retweet-feed svg.svg-inline--fa{display:inline-block!important;width:20px;top:3px;margin-right:5px;position:relative}.fts-twitter-favorites-feed svg.svg-inline--fa{display:inline-block!important;width:15px;top:3px;margin-right:5px;position:relative}.fts-twitter-logo{float:right;color:rgb(227 227 227);padding: 5px 0 0 5px;}.fts-twitter-logo .fa-twitter:before{font-size:25px!important}.fts-twitter-name-wrap{display:inline-block;padding-top:7px;line-height:14px}.fts-twitter-username{float:left}.fts-twitter-external-backg-image{background:0 0}.fts-twitter-wrap-below-width-450 .fts-twitter-external-backg-image{background-size:cover;background-position:center center;background-repeat:no-repeat;display:block;height:110px;min-height:110px!important}.fts-twitter-wrap-below-width-450 .fts-twitter-external-backg-image img{display:none!important}.fts-twitter-quoted-text-wrap img,.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap{padding:0}.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap a{width:22%;display:inline-block;margin-bottom:-2px}.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap img{width:100%;display:inline-block;overflow:hidden}.fts-twitter-wrap-below-width-450 .fts-retweet-text-specific{width:95%}.fts-twitter-wrap-below-width-450 .fts-twitter-image-visible,.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap .fts-external-link-specific{display:inline-block;vertical-align:top;width:70%}.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap .fts-twitter-quoted-text a{display: block;width: 100%;}.fts-twitter-domain-name{position:relative;top:-3px;font-size:13px;padding-top:5px;display:block;color:#555}.fts-twitter-domain-name svg{max-width:15px;display:inline-block;margin-right:3px;position:relative;top:3px}.fts-twitter-quoted-text svg.r-4qtqp9{max-width:15px;fill:currentcolor;color:rgb(122 122 122)}.fts-twitter-quoted-text{padding:10px 15px 10px 15px}.fts-twitter-quoted-text a{color:#141414;word-break:break-word}.fts-twitter-quoted-title{font-weight:700;display:block;clear:both;font-size:14px}.fts-twitter-quoted-description{padding-top:3px;display: block;margin-bottom:5px;word-break:break-word;color: #606060;width: 100%;}.fts-twitter-quoted-text-wrap img{margin:0}.fts-twitter-quoted-text .fts-twitter-quoted-text{margin-top:0}.fts-twitter-quoted-text svg.r-1cvl2hr{max-width:15px;margin:0 3px;position:relative;top:3px;fill:currentcolor;display:inline-block;color:#1d9bf0}.fts-fluid-videoWrapper-html5 video{height:auto!important;width:100%!important;max-width:100%!important}@media(max-width:400px){.fts-twitter-logo,.twitter-image{display:none}}.fts-twitter-image-visible {display:inline-block;}.fts-twitter-quoted-video .fts-twitter-quoted-text a {display: revert !important;}
1
+ /* If you think we have to many !important rules you have to consider that we are fighting with the themes CSS which in most cases overrides a plugins CSS. So if you see an !important rule and are having trouble overriding it make sure and target the body, html or a wrapper ID before the CSS class you are trying to override. */ .entriestitle.fts-youtube-popup,.fts-yt-first-video{word-break:break-word}.fts-twitter-div a,.tweeter-info:hover a{-webkit-transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info,.tweeter-info:hover a{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.fts-jal-fb-group-display,.fts-twitter-div{clear:both}@font-face{font-family:FontAwesomeSlick;src:url(../css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.fts-twitter-text{padding:8px 0 0;display:block;line-height:19px;text-align:left;clear:both}.fts-video-show-hide-btns-wrap a:focus,.fts-video-show-hide-btns-wrap a:link,.fts-video-show-hide-btns-wrap a:visited{outline:0!important;border:none!important}.fts-view-on-twitter-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px}.fts-video-show-hide-btns-wrap a:before{font-family:FontAwesomeSlick;content:'\f16a';display:inline-block;margin-right:5px}img.fts-twitter-description-image{margin:10px 0 0!important}.fts-twitter-favorites:before,.fts-twitter-retweet:before{margin-right:5px;font-family:FontAwesomeSlick;position:relative}.fts-twitter-retweet:before{content:'\f079'!important;font-size:17px!important;top:1px}.fts-twitter-favorites:before{content:'\f004 '!important;font-size:13px!important;top:0}.fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f112'!important;position:relative;top:2px;font-size:14px}.fts-twitter-caption,blockquote.twitter-video{display:none}.fts-twitter-div *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-slicker-facebook-photos *,.fts-yt-videolist *,.popup-video-gallery-fb .fts-fb-photo-post-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fts-twitter-div{position:relative;padding:0}.tweeter-info:hover a{transition:all .3s ease-in-out}.widget .fts-twitter-div .fts-uppercase{width:auto}.fts-twitter-div p{margin:0 0 5px!important;line-height:20px!important;padding:0}.widget .fts-twitter-div p{margin:0 0 8px!important;padding:0!important;line-height:19px!important;font-size:12px!important}.fts-twitter-div img{margin:0 10px 0 0}.fts-twitter-div .fts-uppercase{margin:0 5px 0 0;font-size:13px;font-weight:700;text-align:left;display:inline-block;float:left}.widget .twitter-image{margin-right:10px!important}.widget .fts-twitter-div .fts-uppercase,.widget .tweeter-info .fts-right,.widget .tweeter-info .fts-twitter-full-width{text-align:left;font-size:11px;line-height:14px;font-weight:400!important}.fts-right .fts-uppercase,.fts-twitter-full-width .fts-uppercase{float:left}.tweeter-info .fts-right{float:none!important;padding:5px 0 0}.tweeter-info .fts-twitter-full-width{/* padding:10px 10px 0 */}.fts-twitter-fade{display:none;width:321px;height:80px;position:absolute;top:137px;left:1px}.fts-twitter-image,.widget .fts-twitter-image{margin:0;float:left}.tweeter-info{padding:11px;background:#eee;box-shadow:0 1px 2px #555;clear:both;min-height:51px;line-height:13px;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-twitter-div a,.tweeter-info:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.widget .tweeter-info{min-height:42px}.tweeter-info:hover{background:#fff;box-shadow:0 1px 2px #222;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.tweeter-info img{border-radius:0;box-shadow:none!important}.fts-twitter-link{position:absolute;top:217px;left:0;font-size:22px;text-transform:uppercase;width:291px;height:36px;padding:15px 0 0 38px;border-top:1px solid #c1c2c3;color:#000}.fts-video-loading-notice{color:#000}a.fts-powered-by-text{padding-top:8px!important;width:100%;text-align:center!important;display:block}.fts-twitter-div a, .fts-twitter-reply-wrap a svg{transition:all .3s ease-in-out;/* color:#1d9bf0; */}.fts-twitter-div a:hover{color:#444;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info .time{font-size:12px;text-align:right}.fts-tweeter-wrap .tweeter-info{padding:14px 0 8px;background:0 0;box-shadow:0 0 0 #555;border-bottom:1px solid #eee;word-wrap:break-word;clear:both;font-size:14px;line-height:13px;-webkit-transition:background 0;-webkit-transition:all 0s ease-in-out;-moz-transition:all 0s ease-in-out;-o-transition:all 0s ease-in-out;transition:all 0s ease-in-out}.fts-tweeter-wrap .fts-video-wrapper{margin:15px 0 0}.fts-video-wrapper-padding{display:none}.fts-tweeter-wrap .tweeter-info:hover{background:0 0!important;box-shadow:0 0 0 #222!important}.fts-tweeter-wrap .tweeter-info img{max-width:100%;box-shadow:none!important;border-radius:0}.fts-twitter-favorites,.fts-twitter-reply,.fts-twitter-retweet{font-size:13px!important}.fts-twitter-reply-wrap a{display:inline-block!important;opacity:1;padding-right:0;-webkit-transition:background 1s;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;transition:all 1s ease-in-out}.fts-twitter-reply-wrap{font-size:16px;margin-right:0;margin-top:5px;font-style:normal!important}.fts-tweeter-wrap:hover a{opacity:1}@media (max-width:767px){.fts-tweeter-wrap a{opacity:1!important}}.fts-video-show-hide-btns-wrap{margin:7px 0 0!important}.fts-video-show-hide-btns-wrap a{font-size:13px!important}.fts-twitter-load-video-wrapper,a.fts-twitter-load-video-wrapper{margin:0!important;padding:0!important}.fts-show-media-text,a.fts-close-media{display:none}.fts-twitter-div iframe,.fts-video-wrapper iframe{margin:0!important}.twitter-social-btn-bottom{margin:15px 0}.fts-jal-fb-see-more .icon-thumbs-up:before{content:"\f164"!important;font-size:14px}.fts-jal-fb-see-more .icon-comments:before{content:"\f086"!important;top:0;position:relative;font-size:14px}.fts-jal-fb-see-more .icon-file:before{content:"\f064"!important;top:2px!important;position:relative;font-size:14px}.fts-events-list-wrap .icon-map-marker [class^=icon-thumbs-up],.fts-jal-fb-see-more [class*=" icon--file"],.fts-jal-fb-see-more [class*=" icon--thumbs-up"],.fts-jal-fb-see-more [class^=icon-comments],.fts-jal-fb-see-more [class^=icon-file],.fts-jal-fb-see-more [class^=icon-thumbs-up]{display:inline-block!important;font-style:normal!important}.fts-events-list-wrap [class^=icon-]:before,.fts-jal-fb-see-more [class^=icon-]:before,.fts-jal-single-fb-post [class^=icon-]:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;margin:0 0 0 7px!important}.fts-jal-fb-see-more [class^=icon-]:before [class^=icon-],.fts-jal-single-fb-post{float:none!important;margin:0!important;display:block;padding:0!important;text-align:right!important;width:auto!important;height:auto!important;line-height:normal!important;vertical-align:baseline!important;background:0 0!important;font-style:normal!important}.fts-jal-fb-group-display img{border-radius:0!important;box-shadow:0 0 0 transparent!important;display:block;max-width:100%}.fts-jal-fb-group-header-desc{width:100%;margin:7px 0 15px!important;line-height:20px}.fts-jal-fb-header{clear:both}.no-more-posts-fts-fb{cursor:auto}.fts-jal-single-fb-post .slicker-facebook-album-photoshadow{display:none}.fts-jal-fb-header a:hover,.fts-jal-single-fb-post a:hover{font-style:normal;text-decoration:none!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;color:#313131}.fts-jal-fb-user-thumb a{display:block}.fts-fb-get-directions{text-align:left!important;margin:0}.fts-jal-fb-header a,.fts-jal-single-fb-post a{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important;word-break:break-word;border:none!important}.fts-jal-fb-header h1{font-size:1.9em;margin:0!important;line-height:normal!important;padding:0!important}.widget .fts-jal-fb-header h1{font-size:1.8em;line-height:22px}.fts-jal-single-fb-post{width:100%;padding:15px 0 7px!important;margin-bottom:0;border-bottom:1px solid rgba(184,184,184,.3);position:relative;line-height:17px;text-align:left}.fts-slicker-facebook-posts .fts-jal-single-fb-post{width:auto;padding:10px 10px 8px!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px}.widget .fts-jal-single-fb-post{width:100%;padding:17px 0 10px!important}.fts-facebook-popup .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 0 0 20px!important}.fts-jal-fb-user-thumb,.fts-mashup-icon{height:50px;margin-right:11px;float:left}.fts-jal-fb-user-thumb{width:50px;margin-bottom:5px}.fts-mashup-icon{width:20px;margin-bottom:5px}.widget .fts-jal-fb-right-wrap{padding-left:0}.widget .fts-jal-fb-top-wrap{padding-bottom:5px;padding-left:0;margin-bottom:5px;min-height:50px}.fts-jal-fb-message{padding-top:10px;line-height:21px;word-wrap:break-word}.fts-jal-fb-link-wrap p,.fts-jal-fb-message p{padding:0!important;margin:0 0 10px!important}.fts-jal-fb-link-wrap p{line-height:19px!important}.fts-jal-fb-link-wrap{margin-top:0;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.jal-fb-description{word-wrap:break-word!important}.fts-jal-fb-picture{float:left;display:block;margin:10px 10px 4px 0}.fts-jal-fb-link-wrap img{margin:0}.fts-jal-fb-vid-picture{position:relative;float:left;height:auto!important;margin:10px 0 0;line-height:normal!important;cursor:pointer}.fts-jal-fb-description-wrap{float:left;padding:15px 12px 0 17px!important;color:#757575;font-size:13px!important;font-weight:400;text-align:left}.popup-gallery-fb .fts-jal-fb-description-wrap,.popup-video-gallery-fb .fts-jal-fb-description-wrap{padding:15px 0 0!important}.fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:15px 15px 0!important}.widget .fts-jal-fb-description-wrap{float:left;overflow:hidden;max-width:90%;line-height:19px!important;color:#999;font-size:12px!important;font-weight:400}.entry-content .fts-jal-fb-picture img,.fts-yt-videolist li img,.widget .fts-jal-fb-picture img,.widget a.fts-pin-board-wrap img,a.fts-pin-board-wrap img{max-width:100%}.fts-jal-fb-description{padding:5px 0 10px;line-height:17px!important;font-size:13px;color:#919191;word-wrap:break-word}.fts-jal-fb-description p{font-size:13px!important}.fts-jal-fb-top-wrap{margin-bottom:10px;text-align:left}.fts-jal-fb-user-name{font-weight:700;color:#888;display:block;padding-top:6px;padding-right:5px;font-size:16px;line-height:18px}.fts-slicker-facebook-albums .fts-jal-fb-user-name a{color:#fff}.fts-jal-fb-post-time{color:#999;padding-top:4px;font-size:12px;line-height:10px;display:block}.fts-jal-fb-name{font-weight:700;color:#c00;padding-bottom:5px;font-size:15px;display:inline-block;line-height:18px}.fts-events-list-wrap .fts-jal-fb-name{font-weight:400;color:#c52214;padding-bottom:5px;font-size:15px;display:block;line-height:21px}.fts-jal-fb-vid-play-btn{background:url(../images/video-play-btn.png) no-repeat;bottom:7px;height:26px;left:9px;position:absolute;width:35px}.fts-jal-fb-picture img,.fts-vid-div{width:100%}.fts-vid-div .fts-jal-fb-vid-play-btn,.fts-vid-div img{display:none}.fts-vid-div iframe{position:absolute;z-index:500}.fts-jal-fb-see-more .icon-file{font-size:10px}.fts-jal-fb-see-more{float:right;margin:10px 0 0;font-size:12px;width:100%;text-align:right;font-style:normal!important}.fts-fb-event-photo{float:left}.fts-fb-large-photo{margin-right:0!important;font-weight:inherit}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-likes-shares-etc-wrap,.fts-slicker-facebook-photos .slicker-facebook-album-photoshadow:hover .fts-jal-fb-see-more{display:block}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-jal-fb-top-wrap,.fts-slicker-facebook-photos .fts-fb-video-post-wrap .slicker-facebook-album-photoshadow:hover .fts-jal-fb-top-wrap{opacity:1}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap,.fts-slicker-facebook-photos .fts-jal-fb-description,.fts-slicker-facebook-photos .fts-jal-fb-see-more:hover,.fts-slicker-facebook-photos .fts-jal-fb-user-name a:hover{color:#fff}.fts-slicker-facebook-photos .fts-jal-fb-description-wrap{font-weight:inherit!important}.fts-slicker-facebook-photos *{-ms-box-sizing:border-box;box-sizing:border-box}.instagram-placeholder *,.slicker-instagram-placeholder *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:auto;z-index:600;cursor:pointer;width:auto;opacity:1!important;background-color:rgba(0,0,0,.6)!important;display:none}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow:before{content:'info';color:#fff;padding:5px 10px 7px;text-align:right;float:right;font-size:12px;display:none}.fts-fb-load-more,.fts-fb-spinner,.fts-instagram{text-align:center}.slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:100%;width:100%;z-index:100}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap .slicker-facebook-album-photoshadow:hover{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .slicker-facebook-album-photoshadow{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;display:block;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-jal-fb-right-wrap{padding:0!important}.fts-slicker-facebook-photos .fts-jal-fb-user-thumb{display:none}.fts-slicker-facebook-photos .fts-jal-fb-top-wrap{color:#fff!important;padding:12px 15px 0!important;z-index:600;position:absolute;width:100%;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.fts-slicker-facebook-photos .fts-jal-fb-message{padding:15px 0 0;color:#fff!important;position:relative;font-size:14px;z-index:100}.fts-slicker-facebook-photos .fts-jal-fb-post-time{color:#ddd;margin-top:0}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a:hover,.fts-slicker-facebook-albums .jal-fb-description a:hover,.fts-slicker-facebook-photos .jal-fb-description a:hover{color:#ccc}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{line-height:12px!important}.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap iframe{height:305px;width:305px}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap{word-wrap:break-word;width:100%}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a{float:left;width:100%;line-height:19px;padding:0!important}.fts-slicker-facebook-albums .jal-fb-description a,.fts-slicker-facebook-photos .jal-fb-description a{float:none!important}.fts-slicker-facebook-photos .fts-jal-single-fb-post{position:relative;float:none;z-index:0;overflow:hidden;border:none!important;padding:0!important;font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important;background:#000;vertical-align:top!important;display:inline-block!important}.fts-fb-get-directions:before,.slicker-instagram-image-likes:before,.slicker-instagram-placeholder .fts-instagram-icon:before{font-family:FontAwesomeSlick;-webkit-font-smoothing:antialiased}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{border:none!important;margin:0!important;width:100%;height:100%}.fts-album-photos-wrap img{vertical-align:middle!important;display:inline-block!important}.fts-slicker-facebook-photos.fts-slicker-facebook-albums .fts-jal-single-fb-post{height:auto}.fts-slicker-facebook-photos{margin:auto;text-align:center}.fts-slicker-facebook-photos .fts-jal-fb-picture{display:block;margin:0;padding:0;float:none;width:auto;left:0;right:0;top:0;position:absolute;background-size:cover;background-position:center center;background-repeat:no-repeat}div.fts-fb-location{letter-spacing:1px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:21),only screen and (min-device-pixel-ratio:2){.fts-jal-fb-vid-wrap iframe{height:130px}}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-instagram-fade .fts-fb-caption{display:block}.fts-view-album-photos-large:before,.fts-view-fb-videos-large:before,.fts-view-on-facebook-link:before,.view-on-facebook-albums-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased}.fts-fb-get-directions:before{content:"\f041 ";display:inline-block;margin:0 5px 0 2px}.instagram-placeholder,.slicker-instagram-placeholder{font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important}.fts-instagram-fade .fts-instagram-caption-content,.fts-instagram-fade .fts-jal-fb-description{color:#fff;padding:0;margin:0}.fts-instagram-fade .fts-fb-album-view-link{display:none}#facebook-sidebar .fts-fb-load-more-wrapper{max-width:100%!important;margin-top:-1px!important;z-index:9999;position:relative}.fb-social-btn-bottom{margin-top:15px!important}.fb-social-btn-top{display:block;margin-bottom:12px!important}.fb-social-btn-below-description{margin-top:5px!important;margin-bottom:5px!important}@media only screen and (max-width:640px){.fb-like.fb_iframe_widget,.fb-like.fb_iframe_widget>span,.fb-like.fb_iframe_widget>span>iframe{width:100%!important;position:relative!important}}.fts-events-list-wrap .fts-jal-fb-picture{float:left;display:block;margin:0}.fts-events-list-wrap a.fts-jal-fb-name{font-size:17px}.fts-events-list-wrap .fts-fb-event-time{font-size:15px}.fts-events-list-wrap .fts-fb-location{font-size:15px;display:block;margin:10px 0 5px}.fts-events-list-wrap .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0}.fts-events-list-wrap .fts-jal-fb-message{clear:both;font-size:15px}.fts-fb-get-directions{font-size:15px;padding:0 0 20px;color:#4595f0}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:rgba(240,240,240,.45);cursor:pointer;color:#111;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-fb-load-more:hover{background:rgba(240,240,240,.85)}.instagram-image,.widget .instagram-image{background-color:#000;z-index:1;display:block}.flip360-fts-load-more{-moz-animation:spinY .5s linear;-ms-animation:spinY .5s linear;-o-animation:spinY .5s linear;animation:spinY .5s linear;-webkit-animation-name:spinY;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-fill-mode:both;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-moz-animation-timing-function:cubic-bezier(.75,0,.175,1);-ms-animation-timing-function:cubic-bezier(.75,0,.175,1);-o-animation-timing-function:cubic-bezier(.75,0,.175,1);animation-timing-function:cubic-bezier(.75,0,.175,1)}@-moz-keyframes spinY{0%{-moz-transform:rotateY(0);transform:rotateY(0)}100%{-moz-transform:rotateY(360deg);transform:rotateY(360deg)}}@-webkit-keyframes spinY{0%{-webkit-transform:rotateY(0);transform:rotateY(0);-webkit-transform-style:preserve-3d}100%{-webkit-transform:rotateY(360deg);transform:rotateY(360deg);-webkit-transform-style:preserve-3d}}@-o-keyframes spinY{0%{-o-transform:rotateY(0);transform:rotateY(0)}100%{-o-transform:rotateY(360deg);transform:rotateY(360deg)}}@-ms-keyframes spinY{0%{-ms-transform:rotateY(0);transform:rotateY(0)}100%{-ms-transform:rotateY(360deg);transform:rotateY(360deg)}}@keyframes spinY{0%{-webkit-transform:rotateY(0);-moz-transform:rotateY(0);-ms-transform:rotateY(0);-o-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(360deg);-moz-transform:rotateY(360deg);-ms-transform:rotateY(360deg);-o-transform:rotateY(360deg);transform:rotateY(360deg)}}.clear{clear:both}.heart-comments-wrap li,ul.heart-comments-wrap{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important}.widget .instagram-placeholder li,.widget .instagram-placeholder ul{padding:0!important;margin:0!important;height:auto!important}.instagram-placeholder p{margin:0;padding:0}.instagram-placeholder{position:relative;z-index:0;display:inline-block;margin:0 20px 20px}.widget .instagram-placeholder{margin:-10px 9px 0 10px!important;width:104px!important;text-align:left!important}.instagram-image{width:150px;height:150px;position:relative}.widget .instagram-image{width:105px;height:100px;position:relative;background-size:100%!important}.instaG-photoshadow{background-color:rgba(0,0,0,.1);bottom:0;left:0;position:absolute;right:0;top:0;border:1px solid rgba(0,0,0,.12);z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;width:148px;height:148px}.widget .instaG-photoshadow{width:103px;height:98px}.instagram-placeholder:hover .instaG-photoshadow{background-color:transparent;-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12);width:148px;height:148px}.heart-comments-wrap li,.instagram-placeholder .date{color:#888;position:relative;z-index:1;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s;text-shadow:0 1px 0 rgba(255,255,255,.8);opacity:0;pointer-events:none}.widget .instagram-placeholder:hover .instaG-photoshadow{width:103px;height:98px}a.instaG-backg-link{position:relative;display:block}.instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:12px;height:20px;line-height:20px;font-weight:700;transition:all .15s ease-out .1s}.widget .instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:11px;height:15px;line-height:20px;font-weight:400!important}.instagram-placeholder .heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.widgets .instagram-placeholder .heart-comments-wrap ul{height:15px;margin:6px 0 0!important}.heart-comments-wrap li{display:inline-block;margin:10px 0 0 .5em!important;padding:0 0 0 16px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;transition:all .15s ease-out .1s}.instagram-placeholder .fts-backg,.slicker-instagram-placeholder .slicker-date{-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .heart-comments-wrap li{display:inline-block;margin:6px 0 5px 2px!important;pointer-events:none;padding:0 0 0 15px!important;line-height:10px!important;font-size:11px!important;border:none!important}.widget .instagram-placeholder .heart-comments-wrap .instagram-image-likes{margin-right:4px!important}.instagram-placeholder .fts-backg,.widget .instagram-placeholder .fts-backg{z-index:0;left:0;width:100%;margin:-5px;padding:5px;background:#fff;position:absolute}.instagram-placeholder .fts-backg{top:25px;height:150px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-backg{top:20px;height:100px;font-size:11px}.widget .date{font-size:11px}.instagram-placeholder:hover .fts-backg{margin:-28px -12px;padding:8px 12px;height:193px;-webkit-transition-delay:0;-moz-transition-delay:0;-o-transition-delay:0;transition-delay:0;-webkit-transition-duration:.1s;-moz-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2)}.widget .instagram-placeholder:hover .fts-backg{margin:-22px -10px;padding:5px 10px;height:135px}.instagram-image-likes{background:url(../images/hearts-instagram.jpg) no-repeat}.instagram-image-comments{background:url(../images/comments-instagram.jpg) no-repeat}.instagram-placeholder:hover .date,.instagram-placeholder:hover .instagram-image-comments,.instagram-placeholder:hover .instagram-image-likes{opacity:1;z-index:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.slicker-instagram-placeholder li,.slicker-instagram-placeholder ul{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important;width:auto!important;overflow:visible!important}.slicker-heart-comments-wrap{position:absolute;z-index:500;bottom:10px;right:12px}.slicker-instagram-placeholder p{margin:0;padding:0}.slicker-instagram-placeholder,.slicker-youtube-placeholder{position:relative;z-index:0;display:inline-block;overflow:hidden;background-size:cover;background-position:center center;background-repeat:no-repeat;vertical-align:top}.slicker-instagram-image{line-height:0!important;position:relative;z-index:1;background-color:#000;display:block}.slicker-instagram-image img{line-height:normal!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important;-webkit-box-shadow:0 0 0 rgba(0,0,0,.175)!important;-moz-box-shadow:0 0 0 rgba(0,0,0,.175)!important;box-shadow:0 0 0 rgba(0,0,0,.175)!important;margin:0!important;padding:0!important;border:none!important;width:100%}.slicker-instaG-photoshadow{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;vertical-align:middle}.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background-color:rgba(0,0,0,.7);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12)}a.slicker-instaG-backg-link{position:relative;display:block}.slicker-instagram-placeholder .fts-share-wrap,.slicker-instagram-placeholder .slicker-date{margin-bottom:5px;font-size:13px;line-height:20px;font-weight:400;position:absolute;transition:all .15s ease-out .1s;height:20px;color:#fff;opacity:0;text-align:center}.slicker-instagram-placeholder .fts-share-wrap{bottom:-10px;left:4px;z-index:50000000}.slicker-instagram-placeholder .slicker-date{top:10px;left:15px;z-index:500;pointer-events:none}.slicker-instagram-placeholder .slicker-heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li,.slicker-instagram-placeholder .slicker-heart-comments-wrap li{display:inline-block;margin:0!important;pointer-events:none;padding:0 0 0 10px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;color:#fff;text-align:center;position:relative;z-index:1;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}body .fts-mashup-count-wrap li{opacity:1!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-single-pin-like-count,.fts-mashup .fts-single-pin-repin-count,.fts-mashup a.ft-gallery-link-popup,body .fts-mashup-count-wrap a,body .fts-mashup-count-wrap li{color:#777!important}a.fts-slicker-backg{height:68px;width:68px;line-height:68px;font-size:68px;top:0;bottom:0;left:0;right:0;margin:auto;z-index:700;position:absolute;text-align:center;vertical-align:middle;opacity:0;color:rgba(255,255,255,.27)}.slicker-instagram-placeholder .fts-instagram-icon:before{content:"\f16d";font-size:100%;display:inline-block;-webkit-transition:all 1s ease-out 0;-moz-transition:all 1s ease-out 0;-o-transition:all 1s ease-out 0}.slicker-instagram-placeholder a.fts-slicker-backg:hover{opacity:1;color:rgba(255,255,255,.55);-webkit-transition:all 0 ease-out 0;-moz-transition:all 0 ease-out 0;-o-transition:all 0 ease-out 0}.slicker-instagram-image-likes:before{content:"\f004";margin-right:5px}.fts-slicker-instagram{margin:auto;text-align:center}.instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-share-wrap,.slicker-instagram-placeholder:hover .fts-slicker-backg,.slicker-instagram-placeholder:hover .slicker-date,.slicker-instagram-placeholder:hover .slicker-instagram-image-comments,.slicker-instagram-placeholder:hover .slicker-instagram-image-likes{opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.fts-comment-instagram:before{font-family:FontAwesomeSlick!important;content:"\f075"!important;-webkit-font-smoothing:antialiased;margin-right:5px;font-size:13px!important;display:inline-block;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:FlipH;position:relative;top:-1px;right:-4px}.fts-see-on-instagram div:before,.fts-view-on-instagram-link:before{content:"\f138 ";font-family:FontAwesomeSlick}.fts-see-on-instagram{position:absolute;bottom:11px;right:12px;opacity:0;z-index:750;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-see-on-instagram{position:absolute;top:19px;right:6px;z-index:750;display:none}.instagram-placeholder .fts-see-on-instagram{position:absolute;bottom:2px;right:6px;opacity:0;z-index:750}.fts-see-on-instagram div{display:inline-block;cursor:pointer;font-weight:400!important}.instagram-placeholder .fts-see-on-instagram div{display:block;cursor:pointer;font-weight:400!important}.widget .instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.instagram-placeholder .fts-see-on-instagram div:before{color:#888;font-size:13px}.slicker-instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.fts-see-on-instagram div:before{display:inline-block}.fts-view-on-instagram-link:before{display:inline-block;margin-right:6px}.fts-instagram-caption{display:none}.fts-instagram-fade .mfp-title p{color:#fff!important;margin:0 0 10px!important;padding:0!important}.fts-instagram-fade .mfp-title a{color:#fff;text-decoration:none!important}.fts-instagram-fade .mfp-title a:hover{color:#eee}.instagram-social-btn-bottom,.instagram-social-btn-top{text-align:center;font-size:14px!important;background:#517fa4;border-radius:4px;width:167px;color:#fff;line-height:15px;padding:7px 0!important}.instagram-social-btn-top{margin:0 auto 15px}.instagram-social-btn-bottom{margin:15px auto 0}.instagram-social-btn-bottom:hover,.instagram-social-btn-top:hover{opacity:.9}#fts-social-bar-icons-wrap .instagram-social-btn-bottom a,#fts-social-bar-icons-wrap .instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}#fts-social-bar-icons-wrap .instagram-social-btn-top a:hover{color:#fff!important}.instagram-social-btn-bottom a,.instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}.instagram-social-btn-bottom a:hover,.instagram-social-btn-top a:hover{color:#fff;font-weight:100!important}.instagram-social-btn-bottom:before,.instagram-social-btn-top:before{font-family:FontAwesomeSlick;content:"\f16d ";display:inline-block;margin-right:6px;font-size:16px!important;-webkit-font-smoothing:antialiased}.fts-pinterest-boards-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-yt-videolist *{box-sizing:border-box}.fts-pinterest-wrapper{text-align:center;margin:auto;position:relative}a.fts-pin-board-wrap:link{text-decoration:none!important;border-bottom:0}a.fts-pin-board-wrap{border-radius:10px!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;-moz-box-shadow:0 1px 3px 0 rgba(0,0,0,.33);display:inline-block;text-decoration:none;padding:10px 9px 10px 10px;margin:8px 8px 0;text-align:left}a.fts-pin-board-wrap:hover{background:#fff;border-radius:10px}.fts-pin-board-wrap .label,.fts-single-pin-description a,.fts-single-pin-pinned-to-wrap{text-decoration:none!important}h3.fts-pin-board-board_title,h3.fts-pin-board-board_title span{-webkit-font-smoothing:antialiased!important;display:block!important}.fts-pin-board-wrap:hover .hoverMask,.pinterest-single-thumb-wrap:hover .hoverMask{background:rgba(255,255,255,.1)}h3.fts-pin-board-board_title{width:210px;color:#555!important;font-size:16px!important;font-weight:700!important;margin:7px 0 5px 7px!important;padding:0!important;position:relative!important;font-family:"Helvetica Neue",arial,sans-serif!important;line-height:15px!important;clear:both}div.fts-pin-board-img-wrap,div.pinterest-single-thumb-wrap{background-size:cover;background-position:center center;background-repeat:no-repeat;position:relative;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}h3.fts-pin-board-board_title span{white-space:nowrap!important;overflow:hidden!important;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-transform:capitalize}a.fts-pin-board-wrap{-webkit-border-radius:0;overflow:hidden}div.fts-pin-board-img-wrap{vertical-align:top;border-radius:10px 10px 0 0!important;overflow:hidden;clear:both;height:115px;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset}.fts-pin-board-thumbs-wrap div:last-child{margin-right:0;border-bottom-right-radius:10px!important;border-bottom-left-radius:0!important}.fts-pin-board-wrap{max-width:254px;width:100%}.fts-pin-board-thumbs-wrap{min-height:50px}div.pinterest-single-thumb-wrap{margin-right:2px;margin-top:2px;height:108px!important;border-bottom-left-radius:10px!important;width:49.58%;display:inline-block}.fts-pin-board-img-wrap .hoverMask,.pinterest-single-thumb-wrap .hoverMask{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset;box-shadow:0 0 3px rgba(0,0,0,.33) inset;bottom:0;left:0;position:absolute;right:0;top:0}.fts-pin-board-wrap .fts-pin-board-pin-count{-webkit-font-smoothing:antialiased;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);-moz-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);text-shadow:0 -1px 0 rgba(0,0,0,.7);background-color:#000;background-color:rgba(68,68,68,.7);bottom:3px;color:#fff;padding:0 6px;position:absolute;left:3px;font-family:"Helvetica Neue",arial,sans-serif!important;font-size:12px!important;font-weight:700;line-height:21px}.fts-pin-board-pin-count:before{content:'';width:7px;height:9px;background:url(../images/pinterest-icons.png) -137px -87px no-repeat;display:inline-block;margin-right:3px}.fts-pin-board-wrap .label{font-weight:700;text-align:left!important;line-height:1.1em!important;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0!important;font-size:.7875rem;background:0 0!important;color:#fff}.widget .fts-pin-board-thumbs-wrap,.widget h3.fts-pin-board-board_title{display:none!important}.widget div.fts-pin-board-img-wrap{position:relative;overflow:hidden;clear:both;min-height:100px;height:auto;width:auto;border-radius:10px!important}.widget a.fts-pin-board-wrap{width:40%;padding:6px;margin:4px 4px 0!important;border-radius:1px!important}.widget div.fts-pin-board-img-wrap{-webkit-box-shadow:0 0 1px rgba(0,0,0,.11) inset!important;-moz-box-shadow:0 0 1px rgba(0,0,0,.11) inset;box-shadow:0 0 0 transparent inset!important;margin-bottom:0}.pinterest-single-thumb-wrap .hoverMask,.widget .fts-pin-board-img-wrap .hoverMask{-webkit-box-shadow:0 0 0 rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 0 rgba(0,0,0,.33) inset;box-shadow:0 0 0 rgba(0,0,0,.33) inset}.fts-single-pin-wrap{background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.22);box-shadow:0 1px 2px 0 rgba(0,0,0,.22);border-radius:6px;width:236px!important;margin:14px 7px 0;border:none!important;text-align:left;overflow:hidden}.fts-single-pin-description{margin:10px 15px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-size:13px;line-height:17px;word-wrap:break-word}.fts-single-pin-img-wrap img{-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-left-radius:6px;border-top-right-radius:6px;max-width:100%}.fts-single-pin-social-meta-wrap{font-family:Helvetica,sans-serif;font-size:11px;color:#999;font-style:normal;font-weight:400;-webkit-font-smoothing:antialiased;margin:-13px 10px 7px 15px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count{margin:10px 12px 0 0;display:inline-block;font-size:13px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count:before{font-family:FontAwesomeSlick;margin-right:5px;font-size:12px!important;content:"\f08d"}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count{font-size:13px!important}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count:before{font-family:FontAwesomeSlick;content:"\f086"!important;margin-right:5px;font-size:13px!important}.fts-single-pin-pinned-to-title,.fts-single-pin-pinned-to-wrap{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;overflow:hidden}.fts-single-pin-pinned-to-wrap{line-height:15px;padding:10px;border-radius:0 0 6px 6px;border:none!important;border-top:1px solid #e7e7e7!important}.fts-single-pin-pinned-to-wrap:hover{background:#eee;cursor:pointer}.fts-single-pin-pinned-to-wrap div{color:#999;display:block;font-weight:700;font-size:11px;font-family:Helvetica,sans-serif}.fts-single-pin-pinned-to-text{color:#999}div.fts-single-pin-pinned-to-title{color:#717171}.fts-single-pin-pinned-to-wrap img{position:relative;border-radius:2px;height:30px;margin-right:5px;width:30px;float:left}.fts-single-pin-pinned-to-title{border-radius:0 0 6px 6px}.fts-single-attribution-wrap{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;font-family:Helvetica,sans-serif;color:#666;margin:-2px 0 5px 15px!important;font-size:11px;display:block;border:none!important;line-height:1.6471}.fts-yt-vids-in-row1 .fts-yt-videolist ul li:first-child,.fts-yt-vids-in-row1 li .entriestitle{display:none}.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{font-size:85%!important;line-height:100%!important}.fts-single-attribution-wrap img{height:16px;margin-right:5px;position:relative;width:16px;float:left}.pinterest-social-btn-top{margin-bottom:0;text-align:center}.widget .pinterest-social-btn-top{margin-bottom:5px;text-align:center}.pinterest-social-btn-bottom{margin-top:5px;text-align:center}.fts-yt-videolist iframe{width:100%}.fts-yt-vids-in-row1 div.fts-yt-videolist p{padding-bottom:25px;clear:both}.fts-yt-first-video p{margin:10px 10px 25px!important}.fts-yt-videolist ul,.fts-yt-vids-in-row1 ul li{margin:0!important;padding:0!important}#secondary .front-widgets .fts-yt-large iframe{height:100%!important;max-height:300px!important;min-height:300px!important}.widget .fts-yt-videolist ul li{margin-bottom:0!important;list-style:none!important}.fts-yt-videolist ul{width:100%!important}.fts-yt-videolist ul li{list-style:none!important}.fts-yt-vids-in-row1 li{width:100%!important;margin-bottom:5%}.fts-yt-vids-in-row2 li,.fts-yt-vids-in-row3 li,.fts-yt-vids-in-row4 li{float:left;border:none;position:relative;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;padding:1%!important;margin:0!important}.fts-yt-vids-in-row1 li iframe{width:100%}.fts-yt-vids-in-row2 li{width:50%!important}.fts-yt-vids-in-row3 li{width:33.3%!important}.fts-yt-vids-in-row4 li{width:25%!important}.fts-yt-vids-in-row2 li .entriestitle,.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{padding:0 5px;position:absolute;left:0;top:20%;opacity:0;width:87.5%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.fts-yt-vids-in-row2 li:hover .entriestitle,.fts-yt-vids-in-row3 li:hover .entriestitle,.fts-yt-vids-in-row4 li:hover .entriestitle{background:#000;border-radius:0;color:#fff;padding:5% 6%;opacity:.9;z-index:100;right:0;line-height:18px;font-size:90%;font-weight:700;box-shadow:0 4px 8px #333;display:block}.fts-yt-vids-in-row2 li:hover,.fts-yt-vids-in-row3 li:hover,.fts-yt-vids-in-row4 li:hover{background-color:rgba(0,0,0,.9);box-shadow:0 1px 10px #333;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-yt-overlay-wrap{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1!important;background-color:rgba(0,0,0,.75);text-align:center;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out;pointer-events:none;box-shadow:0 2px 500px #000}body .fts-yt-overlay-wrap.fts-yt-target{display:block;opacity:1;z-index:9999999!important;-webkit-transition:opacity .5s ease-in;-moz-transition:opacity .5 ss ease-in;transition:opacity .5s ease-in;pointer-events:auto}.fts-fb-video-icon,.fts-watermark-inside{pointer-events:none}.fts-yt-overlay{max-width:775px;opacity:1;z-index:300;position:absolute;top:0;bottom:0;right:0;left:0;max-height:472px;padding:10px;background:#444;margin:auto!important;box-shadow:0 2px 200px #000}.fts-yt-overlay-wrap iframe{margin:0;min-height:343px;background:#000!important;margin-bottom:0!important}.fts-yt-popup-close{display:block;position:absolute;top:-19px;right:0;background:#444;color:#fff!important;text-decoration:none;font-size:85%;font-family:verdana;font-weight:400;padding:.5% 2.5% 0;line-height:20px}.widget .fts-yt-first-video p{font-size:12px!important;margin-bottom:10px!important;margin-top:5px}.widget .fts-yt-videolist li{margin:0!important;line-height:0!important}.widget .fts-yt-videolist ul{padding-bottom:15px!important;float:left}.fts-yt-vids-in-row1 ul li iframe{margin-bottom:12px!important}@media only screen and (max-width:775px){.fts-yt-overlay{background:0 0;box-shadow:0 0 0 #000}.fts-yt-popup-close{background:0 0}}.widget .fts-yt-large .fts-yt-first-video iframe,.widget .fts-yt-vids-in-row1 li iframe{width:100%;height:0!important;min-height:100%!important;max-height:160px!important;padding:0}.fts-fluid-videoWrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.fts-fluid-videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;min-height:100%;background:#000;border:none}.fts-fluid-videoWrapper video{background:#000}.fts-jal-fb-vid-wrap{margin-top:10px;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-jal-fb-vid-wrap iframe,.widget .fts-jal-fb-vid-wrap iframe{width:100%;margin:0!important;padding:0!important}.fts-vine-thumbnail .fts-vine-logo:before,.fts-vine-thumbnail-cover,.popup-video-gallery-fb span.fts-fb-video-icon:before{-webkit-transition:all .5s ease-out 0;-moz-transition:all .5s ease-out 0;-o-transition:all .5s ease-out 0;-webkit-font-smoothing:antialiased}.widget .fts-jal-fb-vid-wrap iframe{height:50%}.fts-yt-first-video h2{margin:0 0 7px!important}.youtube-social-btn-top{margin:0 0 5px!important}.youtube-social-btn-bottom{padding:10px 0 0 6px;clear:both}@keyframes fade{from,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes fade{from,to{opacity:1}50%{opacity:.5}}.fts-vine-wrapper{text-align:center}.fts-vine-video-wrap{text-align:left;display:inline-block;max-width:290px;vertical-align:top}.fts-vine-video-wrap a.fts-vine-author{display:block;margin:5px 0 0;padding:0}.fts-vine-white-popup .mfp-close{margin-top:-40px;font-size:35px;margin-right:-10px;color:#fff!important}.fts-vine-white-popup{position:relative;background:#fff;padding:20px;width:auto;max-width:640px;margin:30px auto}.fts-iframe-vine{padding-top:262px}.fts-vine-author{font-size:18px;line-height:24px}.fts-vine-text{font-size:13px;line-height:18px;padding:0 15px 15px 0}.fts-vine-thumbnail{display:block;position:relative;background:0 0!important}.fts-vine-thumbnail-cover{position:absolute;z-index:100;left:0;top:0;width:100%;height:100%;opacity:0;display:inline-block;cursor:pointer}.fts-vine-logo{font-size:27px}.fts-vine-thumbnail .fts-vine-logo:before,.popup-video-gallery-fb span.fts-fb-video-icon:before{font-family:FontAwesomeSlick;font-size:100%}.fts-vine-thumbnail .fts-vine-logo:before{content:"\f1ca"!important;display:inline-block;position:absolute;z-index:200;right:12px;top:5px;line-height:1.5;color:#00bf8f}.fts-vine-thumbnail-cover:hover{opacity:.3;background:#000}.fts-vine-thumbnail:hover .fts-vine-logo:before{color:#fff;text-shadow:2px 1px #555;-webkit-animation:wiggle .5s ease;animation:wiggle .5s ease}@-webkit-keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@media only screen and (max-device-width:736px){.fts-iframe-vine{padding-bottom:14%!important}.fts-vine-white-popup{padding:0}}.post-5593 .entry-content{text-align:center}.fts-fb-video-popup{position:relative;background:0 0;padding:20px 60px;width:auto;max-width:1400px;margin:30px auto}.fts-fb-video-popup .mfp-close{color:#fff!important;right:47px!important;top:-19px!important}@media only screen and (min-device-width:375px) and (max-device-width:667px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:414px) and (max-device-width:736px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){.fts-fb-video-popup video{min-height:400px}.fts-fb-video-popup{padding:10px!important}.fts-fb-video-popup .mfp-close{right:-2px!important;top:-25px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){.fts-fb-video-popup video{min-height:600px}}.fts-view-fb-videos-largeeee:before{content:"";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;background:url(../images/fb-play-btn.png);height:80px;width:80px}.fts-fb-photo-post-wrap:hover a.fts-slicker-backg{opacity:1;outline:0!important;color:#fff}.popup-video-gallery-fb span.fts-fb-video-icon:before{content:"\f144"!important;display:inline-block!important;opacity:.5!important;color:#fff;outline:0!important}.popup-video-gallery-fb span.fts-fb-video-icon:hover:before{opacity:.8!important;color:#fff}.popup-video-gallery-fb a.visible-video-button{opacity:9!important;outline:0!important;z-index:1500}.popup-video-gallery-fb .fts-fb-load-more{max-width:340px;margin:20px auto}.fts-fb-social-btn-center,.popup-video-gallery-align-center{text-align:center;font-size:0}.fts-fb-social-btn-right,.popup-video-gallery-align-right{text-align:right}.fts-fb-social-btn-left,.popup-video-gallery-align-left{text-align:left}.cycle-slideshow .fts-jal-fb-picture{max-width:100%!important}.popup-video-gallery-fb .fts-fb-photo-post-wrap{vertical-align:top!important;display:inline-block!important;float:none;text-align:left;border-radius:0;max-width:100%;max-height:100%;box-sizing:border-box}.popup-video-gallery-fb .fts-fb-photo-post-wrap .fts-jal-fb-user-name{padding-top:0!important}.fts-review-star,.fts-reviews-star{background:#4791ff;color:#fff;font-weight:400;padding:2px 12px;border-radius:15px;border:none!important}.fts-review-details-master-wrap .fts-review-star{background:#4791ff;color:#fff;font-weight:400;padding:11px 12px 9px 17px;border-radius:30px;margin:0 12px 0 0;font-size:20px;float:left;vertical-align:top;line-height:22px}.fts-review-star{font-size:13px;font-style:normal;white-space:nowrap}.fts-review-star a{background:#4791ff;color:#fff}.fts-reviews-feed .fts-jal-fb-post-time{padding-top:10px!important}.fts-review-star:after{content:"";font-size:14px}.fts-reviews-feed .fts-jal-fb-message{margin-top:5px}.fts-reviews-feed .fts-jal-fb-user-name{margin-top:0;font-size:14px}.fts-jal-fb-vid-picture .fts-fluid-videoWrapper-html5{display:none}.fts-fluid-videoWrapper .fluid-width-video-wrapper{position:initial}.fts-jal-fb-user-thumb img{width:50px;max-width:100%}.fts-jal-fb-description p{line-height:17px!important;white-space:normal!important}.fts-checked-in-text-link{display:inline-block;padding-bottom:0}.fts-checked-in-img{float:left;margin-right:10px;max-width:160px}.fts-checked-in-get-directions{margin-top:5px}.fts-instagram-fade .mfp-title,.fts-instagram-fade .mfp-title a{font-size:13px}.fts-fluid-videoWrapper-html5{margin-top:10px;width:100%}.fts-fb-slideshow.slideshow .fts-fb-photo-post-wrap{position:relative!important;float:none;display:inline-block}.fts-fb-slideshow{width:100%;padding:0;overflow:hidden}.fts-fb-slideshow>a{position:absolute;top:0;left:0;width:100%;padding:0;background-color:#222;display:block}.fts-fb-slideshow>a>img{width:100%;position:static;display:block}.fts-fb-slideshow>div{position:absolute;top:0;left:0;padding:0}.composite-example>div{background:#fff}.composite-example>div>img{display:block}.composite-example>div .cycle-overlay{color:#fff;background:#000;opacity:.6;position:absolute;bottom:0;width:100%;padding:0}.fts-slider-center{text-align:center;padding:2px 0;background:#171717;position:relative;display:block;min-height:35px;font-size:15px;line-height:30px}.fts-slider-center span{display:inline-block;position:absolute;-webkit-text-size-adjust:none}.fts-cycle-slide p{margin:0;padding:0}.fts-prevControl-icon:before{content:'\f0a8';font-family:FontAwesomeSlick!important;font-size:24px}.fts-custom-caption{text-align:center;position:absolute;width:100%;left:0;top:2px;font-size:13px!important;line-height:30px;font-weight:700;z-index:0;letter-spacing:1px}.fts-nextControl-icon:before{font-size:24px;content:'\f0a9';font-family:FontAwesomeSlick!important}.fts-prevControl-icon{left:8px;z-index:1;cursor:pointer}.fts-nextControl-icon{right:7px;z-index:1;cursor:pointer}.fts-nextControl-icon:hover,.fts-prevControl-icon:hover{opacity:.8!important}.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-instagram-fade.mfp-ready .mfp-figure{opacity:1!important}.page-id-6026 #main-header{display:none}.page-id-6026 #page-container{padding-top:0!important}.page-id-6026 .container{margin:0 auto!important;max-width:100%!important;width:100%!important}.fts-slider-icons-center{display:block;line-height:30px}.fts-pager-option{top:10px;position:relative}.fts-pager-option-top{bottom:0;position:relative;top:5px}.fts-pager-option,.fts-pager-option-top{text-align:center;width:100%;z-index:500;display:block}.fts-pager-option span{font-size:47px;width:15px;height:15px;line-height:10px;display:inline-block}.fts-pager-option span.cycle-pager-active,.fts-pager-option span:hover{opacity:.5}.fts-pager-option>*{cursor:pointer}.fts-fb-vid-popup .mfp-iframe-holder .mfp-close,.fts-fb-vid-popup .mfp-inline-holder .mfp-close{top:-50px!important;font-size:54px!important;font-weight:100;font-family:inherit}.fts-facebook-popup.mfp-bg,.fts-vine-vid-popup.mfp-bg{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-bg.mfp-ready{opacity:.8;z-index:99999990}.fts-facebook-popup.mfp-bg.mfp-removing{opacity:0}.fts-facebook-popup.mfp-wrap .mfp-content{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-wrap.mfp-ready .mfp-content{opacity:1}.fts-facebook-popup.mfp-wrap.mfp-removing .mfp-content{opacity:0}.fts-facebook-popup .mfp-close{left:0!important;margin-left:4px!important;background:0 0!important;cursor:zoom-out!important;border:none!important;box-shadow:none!important;font-size:27px!important;font-family:'Open Sans',Arial,sans-serif!important;font-weight:600!important;top:-42px!important;opacity:.5!important}.fts-facebook-popup .mfp-close:before{display:none!important}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{max-width:1400px}.fts-facebook-popup .mfp-iframe-scaler iframe,.fts-facebook-popup .mfp-iframe-scaler video{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:none!important;background:#000;right:0;margin:auto}.fts-facebook-popup .mfp-title{padding:20px;background:rgba(255,255,255,.11);margin-top:21px}.fts-facebook-popup .fts-popup-wrap{max-width:1400px;margin:0 auto;padding:0;vertical-align:middle;width:100%;position:relative}.fts-facebook-popup .fts-popup-half{width:75%;float:left;background:#000;text-align:center;vertical-align:middle;height:100%;position:relative;z-index:88888888}.fts-facebook-popup .fts-popup-second-half{height:100%;width:25%;position:relative;float:left}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto}.fts-facebook-popup .fts-popup-wrap img.mfp-img{width:auto;max-width:100%;display:initial;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;vertical-align:middle}.fts-facebook-popup .fts-popup-wrap .mfp-counter{position:relative;bottom:0;text-align:right;right:10px;color:#c1c1c1!important;font-size:12px;line-height:18px;white-space:nowrap;display:inline-block;float:right;top:initial;margin:5px 0}.fts-facebook-popup .fts-position-helper{display:inline-block;height:100%;vertical-align:middle}.fts-facebook-popup .fts-popup-image-position{min-height:527px;width:100%;background:#000;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none}.fts-facebook-popup .fts-popup-wrap .mfp-title{padding:0;background:rgba(255,255,255,.11);margin:0}.fts-facebook-popup .fts-popup-second-half .mfp-title a{color:#0f6fad;text-decoration:none!important}.fts-youtube-popup .fts-popup-second-half .mfp-title a{color:#0f6fad!important}.fts-facebook-popup .mfp-figure:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#fff}.fts-facebook-popup .fts-popup-wrap .mfp-title p,.fts-instagram-caption-content .fts-popup-wrap .mfp-title p{color:#000!important;margin:0 0 10px!important;padding:0!important}.fts-facebook-popup .mfp-image-holder .mfp-content{max-width:1400px;width:100%}.fts-facebook-popup .fts-jal-fb-user-name{font-size:14px;margin-top:20px;padding-left:82px;display:block;padding-right:15px}.fts-facebook-popup .fts-fb-caption,.fts-facebook-popup .fts-non-popup-text,.hide-date-likes-comments-etc{display:none!important}.fts-facebook-popup .fts-jal-fb-post-time{padding-left:82px}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{padding:10px 20px 0}.fts-facebook-popup .fts-fb-caption a{font-size:13px}.fts-facebook-popup i:before{margin-left:0!important;font-style:normal!important;font-size:15px!important}.fts-facebook-popup .icon-file:before{font-size:15px!important}#fts-photo-next:hover:after,#fts-photo-prev:hover:after,.fts-popup-half:hover #fts-photo-next:after,.fts-popup-half:hover #fts-photo-prev:after{opacity:1!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}#fts-photo-next:after,#fts-photo-prev:after{font-family:FontAwesomeSlick;font-size:58px!important;font-weight:100;opacity:0;color:#fff;border:none!important;margin-top:-20px!important}#fts-photo-next:after{content:"\f105"}#fts-photo-prev:after{content:"\f104"}.fts-facebook-popup .mfp-arrow{background:0 0!important;width:48px!important;height:28px!important;line-height:normal!important;margin:-32px 0!important}.fts-facebook-popup .mfp-arrow:after{margin:0!important;top:0!important;border:none!important;width:48px!important;height:24px!important}.twitter-followers-fts.fts-tweets-first,.twitter-followers-fts:hover{border-bottom:4px solid #1b95e0!important}.fts-facebook-popup .mfp-arrow-left{left:5px!important}.fts-facebook-popup .mfp-arrow-right{right:5px!important}.fts-facebook-popup .fts-jal-fb-description.fts-jal-fb-description-popup,.fts-facebook-popup .hide-date-likes-comments-etc{display:inline-block!important}.fts-facebook-popup .mfp-arrow:before,.fts-iframe-popup-element,.fts-video-popup-element{display:none}.fts-jal-fb-description-popup{color:#444}.fts-facebook-popup .fts-jal-fb-description-wrap{max-height:300px;overflow:auto;max-width:100%;padding-left:20px!important;width:100%}.fts-facebook-popup *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}body .fts-facebook-popup a.fts-powered-by-text{margin:2px 20px!important;text-align:left!important;float:left!important;font-size:12px;color:#c1c1c1!important;width:auto!important;font-weight:400!important;line-height:18px!important;text-decoration: none !important;}.fts-powered-by-text-popup a.fts-powered-by-text{display:block!important}.fts-facebook-popup .mfp-iframe-holder .mfp-bottom-bar,.fts-facebook-popup .mfp-inline-holder .mfp-bottom-bar{overflow:auto}.fts-fb-comments-content{float:left;width:100%;max-width:100%;background:#f6f7f9;padding:0 20px 20px}.fts-facebook-popup .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0;color:#333}.ft-gallery-share-wrap .fa,.fts-share-wrap i{font-style:normal!important}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{clear:both;font-size:15px;color:#333}.fts-facebook-popup .fts-fb-get-directions{font-size:15px;display:inline-block;padding:0 0 20px;color:#4595f0!important}.fts-facebook-popup .fts-fb-ticket-info{color:#4595f0!important}.fts-event-title-wrap{font-size:24px;line-height:24px}.fts-fb-comments-wrap{display:none!important}.fts-fb-comment{clear:both;float:left;width:100%;color:#222;margin:0;padding:15px 0 0;font-size:13px}.fts-fb-comment-user-pic{float:left;width:32px;height:32px;margin:0;border-radius:50px}.fts-fb-comment-msg{padding-left:42px;font-size:12px}.fts-fb-comment-user-name{font-weight:700;display:inline-block;font-size:12px}@media all and (max-width:900px){.fts-facebook-styles-popup .fts-popup-half,.fts-facebook-styles-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:none}.fts-facebook-styles-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500}.fts-facebook-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-styles-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-styles-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (max-width:640px){.fts-instagram-styles-popup .fts-popup-half,.fts-instagram-styles-popup .fts-popup-second-half{height:100%;width:100%!important;position:relative;float:none}.fts-instagram-styles-popup .fts-popup-half{background:#fff;text-align:center;vertical-align:middle;z-index:500}.fts-instagram-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-instagram-styles-popup .mfp-iframe-holder .fts-popup-image-position{height:auto!important}.fts-instagram-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-instagram-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (min-width:1900px){.fts-facebook-popup .fts-popup-second-half.fts-instagram-popup-second-half{float:left!important}.fts-facebook-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:left}.fts-facebook-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500;width:100%}.fts-facebook-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important;min-height:auto!important}}.fts-twitter-backg-image,.fts-twitter-backg-image img{margin:0!important;padding:0!important;position:relative;z-index:99}.fts-instagram .image-overlay,.fts-instagram .image-overlay-inside,.fts-instagram .image-overlay.overlay-type-extern,.fts-jal-fb-group-display .image-overlay-inside,.fts-jal-single-fb-post .image-overlay,.fts-jal-single-fb-post .image-overlay-inside,.fts-jal-single-fb-post .image-overlay.overlay-type-extern,.fts-mashup .image-overlay,.fts-mashup .image-overlay.overlay-type-extern,.fts-pinterest-wrapper .image-overlay,.fts-pinterest-wrapper .image-overlay-inside,.fts-pinterest-wrapper .image-overlay.overlay-type-extern,.fts-profile-pic a .image-overlay,.fts-profile-pic a .image-overlay-inside,.fts-profile-pic a .image-overlay.overlay-type-extern,.fts-slicker-facebook-photos .image-overlay,.fts-slicker-facebook-photos .image-overlay-inside,.fts-slicker-facebook-photos .image-overlay.overlay-type-extern,.fts-tweeter-wrap .image-overlay,.fts-tweeter-wrap .image-overlay-inside,.fts-tweeter-wrap .image-overlay.overlay-type-extern,.fts-vine-content .image-overlay,.fts-vine-content .image-overlay-inside,.fts-vine-content .image-overlay.overlay-type-extern,.fts-yt-videolist .image-overlay,.fts-yt-videolist .image-overlay-inside,.fts-yt-videolist .image-overlay.overlay-type-extern{display:none!important}.fts-facebook-popup.mfp-ready .mfp-figure{opacity:1}ul.fts-sidebar-menu ul.fts-social-bar-icons-wrap ul li{margin:0!important}.fts-instagram-inline-block-centered{text-align:center;font-size:0;margin:auto}#facebook-sidebar .fts-fb-comments-wrap{display:none}.fts-twitter-backg-image img{display:block!important;width:100%}.fts-twitter-backg-image .twitter-social-btn-top{position:absolute!important;bottom:5px;left:10px;z-index:100}.fts-twitter-followers-wrap{background:#fff;padding:1px 5px 0 0;margin-bottom:10px;text-align:center;color:#1b95e0!important}.twitter-followers-fts{text-align:center;display:inline-block;padding:5px 15px;font-size:18px;font-weight:600!important}.twitter-followers-fts a,.twitter-followers-fts-singular a{font-weight:400!important;letter-spacing:.02em;text-transform:uppercase}.twitter-followers-fts a{display:block;color:#66757f!important;font-size:11px;transition:color .15s ease-in-out}.twitter-followers-fts:hover{transition:border .15s ease-in-out}.fts-tweets-first,.fts-tweets-first a,.twitter-followers-fts:hover a{color:#1b95e0!important}.fts-tweet-reply-left{float:left;display:inline-block}.fts-twitter-reply-wrap a{/* color:rgba(144,147,148,.71) */}body .fts-twitter-favorites-wrap:hover{color:#c32525!important}.fts-twitter-favorites-wrap{margin-left:20px}body .fts-twitter-reply-wrap.fts-twitter-full-width{margin-left:0!important;margin-top:0}.twitter-followers-fts-singular{font-size:15px;padding:5px 0 0}.twitter-followers-fts-singular a{color:#66757f!important;font-size:11px}.twitter-social-btn-top a,.twitter-social-btn-top iframe{color:#fff!important}@media (max-width:400px){.twitter-followers-fts{padding:5px 10px;font-size:15px!important;font-weight:500!important}}.fts-twitter-full-name{font-size:14px!important;font-weight:700}a.fts-twitter-at-name{font-size:13px!important;color:#999!important;font-weight:400!important;display:inline-block;margin-top:3px}.fts-profile-wrap{clear:both;display:block}.fts-clear{clear:both}.fts-profile-pic{float:left;margin:0 25px 20px 0;max-width:125px}.fts-profile-pic a:hover{opacity:.8}.fts-isnta-full-name{padding:0 0 10px;float:left;margin:4px 20px 0 0}.fts-profile-name-wrap .fts-follow-header-wrap{font-size:14px;display:inline-block;letter-spacing:0;padding:7px 10px;border-radius:4px;border:1px solid #5dba00;line-height:18px}.fts-profile-description{font-size:15px;line-height:22px}.fts-profile-name-wrap{font-size:32px;margin-bottom:18px;letter-spacing:2px;line-height:28px}.fts-profile-pic img{border-radius:50%;max-width:100%}.fts-profile-stats{margin:0 0 5px}.fts-profile-stats span{font-weight:700;display:inline-block}.fts-profile-stats div{font-size:15px;display:inline-block;margin-right:20px;margin-bottom:10px}.fts-profile-wrap{max-width:630px;margin:auto;padding:0 0 20px}.fts-facebook-popup .fts-instagram-caption-content a{color:#003569!important}.fts-facebook-popup a.ft-gallery-link-popup,.fts-facebook-popup a.fts-jal-fb-see-more{font-size:12px;text-align:right;margin-top: 16px;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:13px 20px 11px 40px;background:#f6f7f9;display:block!important;width:100%!important}.fts-instagram-popup-profile-wrap{display:none}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic{display:block;padding:15px 10px 0 15px;margin:0}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic img{display:block;width:40px}.fts-facebook-popup.fts-instagram-styles-popup .fts-isnta-full-name{font-size:17px;letter-spacing:normal;color:#333}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-name-wrap{padding-top:15px}.fts-follow-header-wrap{margin-right:15px;color:#5dba00}.fts-follow-header-wrap a{color:#5dba00!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-insta-date-popup-grab{clear:both;text-align:right;margin:55px 15px -8px!important;color:#999;border-top:1px solid #eee;padding-top:12px;font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup a.fts-view-on-instagram-link{margin:20px 15px 0;padding:10px 0!important;color:#9f9f9f!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-view-on-instagram-link:before{font-size:15px;top:1px;position:relative;margin-left:5px}.fts-facebook-popup.fts-instagram-styles-popup .fts-follow-header-wrap{float:right;margin:0 40px 20px 15px;color:#5dba00;font-size:12px;top:-7px;position:relative}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap{position:relative;color:#444!important;margin:0 0 0 15px!important;font-size:14px;width:auto!important;left:0}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap li,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap li{display:inline-block;margin-right:15px!important;margin-top:-5px!important;opacity:1}.fts-facebook-popup.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-half.fts-instagram-popup-half{width:64%}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half.fts-instagram-popup-second-half{width:36%}.fts-facebook-popup.fts-instagram-styles-popup .fts-instagram-popup-half .fts-popup-image-position{min-height:auto!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto;min-height:200px}.fts-facebook-popup.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-image-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{max-width:1000px;width:100%}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap{margin:-18px 0 0 15px!important}.fts-facebook-popup a.fts-view-on-instagram-link{font-size:12px;text-align:left;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555!important;padding:10px 20px;background:#fff;display:block}.fts-mashup-post-wrap{padding:0!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px;margin-bottom:10px;position:relative;display:inline-block;width:100%}.fts-mashup-type-name{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:10px;box-shadow:1px 1px 0 #ddd}.fts-mashup-type-name span{display:block;padding:0 7px 3px 0;text-align:right;font-size:10px;color:#bfbfbf;line-height:14px}.fts-mashup-count-wrap{width:100%;clear:both;display:block;padding-top:12px;text-align:left;margin-bottom:6px;float:left}.fts-mashup-count-wrap a{display:inline-block;font-size:13px}.fts-mashup-count-wrap .fts-tweet-reply-left{float:none;display:inline-block}.fts-mashup-description-wrap{clear:both;padding-top:5px;line-height:18px}.fts-jal-fb-post-time{margin-bottom:8px}.twitter-video{min-width:200px!important}.fts-mashup .fts-mashup-image-and-video-wrap{margin-top:8px;position:relative;line-height:0}.fts-mashup-count-wrap .slicker-heart-comments-wrap{position:relative;top:inherit;bottom:inherit;margin:0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li.slicker-instagram-image-likes{padding-left:0!important}.fts-mashup .fts-twitter-description-image{margin-top:0!important}.fts-mashup .fts-single-pin-social-meta-wrap{margin:0}.fts-mashup .fts-single-pin-social-meta-wrap span{margin-top:0;font-size:14px}.fts-mashup .fts-youtube-title{font-weight:700;font-size:12px;padding:8px 0 0;line-height:14px}.fts-mashup-post-wrap .fts-jal-single-fb-post{padding-top:0!important}.fts-mashup .fts-jal-single-fb-post{border-bottom:none}.fts-mashup .fts-jal-fb-picture,.fts-mashup .fts-jal-fb-vid-picture{margin-top:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before,.fts-mashup-instagram-icon a:before,.fts-mashup-pinterest-icon a:before,.fts-mashup-twitter-icon a:before,.fts-mashup-wp_gallery-icon a:before,.fts-mashup-youtube-icon a:before{font-family:FontAwesomeSlick;font-size:32px;font-weight:100!important}.fts-mashup-instagram-icon a:before{content:"\f16d";font-size:37px;top:2px;position:relative}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:"\f09a";top:2px;position:relative;left:8px;font-size:30px}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:""}.fts-mashup-twitter-icon a:before{content:"\f099";top:0;position:relative;left:3px}.fts-mashup-pinterest-icon a:before{content:"\f231";position:relative;top:3px;left:5px}.fts-mashup-youtube-icon a:before{content:"\f167";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{top:0;left:2px}.slicker-instagram-placeholder .ft-text-for-popup-content{padding:5px 15px;opacity:0;z-index:10;position:relative;color:#fff}.slicker-instagram-placeholder .fts-mashup-count-wrap{opacity:0;z-index:10;position:absolute;bottom:-5px;left:5px;color:#fff}.slicker-instagram-placeholder:hover .fts-mashup-count-wrap a{color:#fff!important;font-size:12px}.slicker-instagram-placeholder .fts-mashup-count-wrap a{color:#fff;font-size:12px}.slicker-instagram-placeholder:hover .ft-text-for-popup-content,.slicker-instagram-placeholder:hover .fts-mashup-count-wrap{opacity:1;color:rgba(255,255,255,.88)}.slicker-instagram-placeholder .ft-gallery-link-popup{font-size:14px;position:absolute;bottom:10px;left:10px}.ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f14d ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;font-size:16px;margin-top:1px;margin-left:1px}.fts-mashup-wp_gallery-icon a:before{content:"\f19a";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-wp_gallery-icon a:before{top:0;left:2px}.fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-top:3px;margin-right:5px}.slicker-instagram-placeholder .ft-wp-gallery-icon{margin-top:-12px;margin-right:0}.fts-mashup-icon-wrap-left.fts-mashup-twitter-icon a:before{top:0;left:3px}.fts-mashup-type-icon-spacer{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:2px}.fts-feed-type-wp_gallery .fts-mashup-description-wrap{margin:0 0 15px}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-thumb.fts-feed-type-facebook .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook .fts-mashup-icon-wrap-left a:before,.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{content:"\f09a";top:2px;position:relative;left:9px;font-size:28px!important}.fts-mashup-type-icon{float:left;height:40px;margin:15px 10px 0 0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:40px;height:45px;float:left;margin:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a,.fts-mashup-icon-wrap{float:left;height:45px;width:40px;padding-top:13px;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{float:left;height:50px;width:50px;padding-top:0;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 15px 0 0}.fts-mashup .fts-jal-fb-message{line-height:18px;padding-top:5px}.fts-mashup-count-wrap a,.fts-mashup-icon-wrap a{text-decoration:none!important}.fts-mashup .fts-jal-fb-post-time{padding-top:3px}.fts-mashup .fts-likes-shares-etc-wrap{float:left;width:100%;padding:0}.fts-mashup .icon-thumbs-up:before,.fts-single-pin-social-meta-wrap,.fts-tweet-reply-left{margin-left:5px!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-mashup-count-wrap .slicker-heart-comments-wrap li,.fts-mashup .slicker-instagram-placeholder .slicker-heart-comments-wrap li{font-size:12px!important}.fts-mashup .fts-comment-instagram:before,.fts-mashup .fts-jal-fb-see-more .icon-comments:before,.fts-mashup .fts-jal-fb-see-more .icon-file-up:before,.fts-mashup .fts-jal-fb-see-more .icon-thumbs-up:before{font-size:14px}.fts-mashup-icon-wrap-right{float:right}.fts-mashup-icon-wrap-right a{text-decoration:none!important;font-size:12px}.fts-mashup-icon-wrap-left a:before,.fts-mashup-icon-wrap-right a:before{font-family:FontAwesomeSlick;font-weight:100!important;top:12px}.fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:relative;right:18px;top:13px;z-index:1}.fts-mashup-hide-fb-icon.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{font-size:30px!important}.fts-mashup-icon-wrap-left{float:left;margin:16px 12px 0 0}.fts-feed-type-pinterest .fts-mashup-icon-wrap-left a:before{left:4px;top:0}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{font-family:FontAwesomeSlick!important;content:"\f09a"!important;top:2px!important;position:relative!important;left:8px!important;font-size:29px!important}.fts-mashup .fts-mashup-icon-left .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb,.fts-mashup .fts-mashup-hide-fb-icon-and-thumbnail.fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-icon-and-thumbnail .fts-jal-fb-user-thumb,.fts-mashup-icon-left .fts-jal-fb-user-thumb img{display:none!important}.fts-mashup-icon-left .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{content:''!important}.fts-mashup-icon-left.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb{display:block!important}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb a:before{display:none}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb{width:50px!important;height:50px!important;margin-right:10px!important;margin-bottom:10px!important}body .fts-mashup .fts-mashup-hide-fb-thumbnail-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{width:50px!important;height:50px!important;margin-top:0!important;padding:0!important}.fts-mashup .fts-likes-shares-etc-wrap a{color:#777}.fts-mashup-error-notice{margin-bottom:25px}.fts-mashup-icon-left .fts-mashup-error-notice{margin-left:45px}.fts-mashup-icon-wrap-left a{text-decoration:none!important}.fts-mashup-icon-wrap-right.fts-mashup-youtube-icon a:before{left:-2px!important;top:15px}.fts-mashup-icon-wrap-right.fts-mashup-twitter-icon a:before{left:-2px!important}.fts-mashup-icon-wrap-right.fts-mashup-pinterest-icon a:before{left:0!important}.fts-mashup .fts-jal-fb-user-name{margin-right:23px}.fts-mashup-media-top.fts-mashup-post-wrap .fts-jal-fb-user-name{margin-left:10px;padding-top:0}.fts-mashup-media-top .fts-jal-fb-user-name{margin-left:10px}.fts-mashup .fts-jal-fb-message p,.fts-mashup-description-wrap p{margin:4px 0 5px!important}.fts-single-pin-meta-wrap .fts-single-pin-social-meta-wrap{margin-left:15px!important}.fts-review-details-wrap{margin-top:0}.fts-review-details-master-wrap{display:block;clear:both;padding:10px 10px 15px;background:#fff;border-bottom:1px solid rgba(184,184,184,.3)}.fts-reviews-overall-rating-stars{margin:auto}.fts-review-details-wrap{padding:5px 0 0;line-height:17px}.fts-review-details-master-wrap-no-background-or-border{background:0 0!important;border:none!important}.fts-slicker-twitter-posts .fts-tweeter-wrap .tweeter-info{padding:11px 0 7px}.fts-slicker-twitter-posts .fts-twitter-image{margin-left:11px!important}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width{padding:0 10px 10px}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width.fts-twitter-reply-wrap{padding:0 10px 2px}.tweeter-info .twitter-video{margin:0 -8px -5px!important}.fts-fb-get-directions,.fts-fb-ticket-info{display:inline-block}.fts-fb-ticket-info:before{content:'|';margin-left:10px;margin-right:10px}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time,.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name,.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{padding-right:15px}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{margin-top:20px;margin-bottom:25px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name{margin-top:12px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time{padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-right:20px!important;margin-top:-1px}.fts-facebook-popup a.ft-gallery-link-popup{font-size:12px;text-align:left;margin-top:15px;border-top:0 solid #eee;border-bottom:0 solid #eee;padding:14px 20px 10px;background:0 0;display:inline-block;float:left}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap p{padding-top:0;line-height:21px;word-wrap:break-word;font-size:15px;color:#333}.ft-text-for-popup-content{text-align:left}.fts-slicker-facebook-photos .ft-text-for-popup-content .fts-jal-fb-post-time{color:#9d9d9d!important;margin-top:0}.ft-image-overlay{position:absolute;top:0;left:0;height:100%;width:100%}.fts-popup-second-half .fts-watermark-inside{display:none!important}.fts-watermark-inside-center{position:absolute;top:50%;text-align:center;transform:translateY(-50%);width:100%}.fts-watermark-inside-top-center{position:absolute;text-align:center;top:0;width:100%}.fts-watermark-inside-bottom-center{position:absolute;bottom:0;text-align:center;width:100%}.fts-watermark-inside-bottom-left{position:absolute;bottom:0}.fts-watermark-inside-bottom-right{position:absolute;text-align:right;bottom:0;width:100%}.fts-watermark-inside-top-right{position:absolute;width:100%;top:0;text-align:right}.fts-watermark-inside-top-left{position:absolute;text-align:left;top:0;width:100%}.fts-watermark-inside img{max-width:100%;height:auto;display:inline-block;margin:0}.fts-mashup-image-and-video-wrap .fts-watermark-inside img{max-width:75%!important}.ft-gallery-share-wrap{display:none;margin-top:0;position:absolute;left:20px;background:#fff;top:-8px;min-width:116px;box-shadow:2px -2px 3px 0 rgba(187,187,187,.8);width:100%;z-index:1;text-align:left}.fts-popup-second-half .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.ft-gallery-share-wrap a{display:inline-block!important}.fts-share-wrap{padding:0;float:left;width:auto;margin:9px 0 0;display:inline-block;position:relative;z-index:1}a.fts-jal-fb-see-more{width:auto!important;display:inline-block!important;text-align:left}.ft-gallery-share-wrap .fa,.fts-twitter-logo .fa{display:inline-block!important;font-family:FontAwesomeSlick!important;font-weight:400!important;line-height:1!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ft-gallery-share-wrap .fa-facebook-square:before{content:"\f082";font-size:17px!important}.ft-gallery-share-wrap .fa-linkedin:before{content:"\f0e1";font-size:16px!important}.ft-gallery-share-wrap .fa-google-plus:before{content:"\f0d5";font-size:16px!important}.ft-gallery-share-wrap .fa-pinterest-plus:before{content:"\f0d2";font-size:15px!important}.ft-gallery-share-wrap .fa-twitter:before,.fts-twitter-logo .fa-twitter:before{content:"\f099";font-size:19px!important;top:1px;position:relative}.ft-gallery-share-wrap .fa-envelope:before{content:"\f0e0";font-size:16px!important}.ft-gallery-link-popup{margin:5px 0 0!important}.ft-gallery-share-wrap a:hover{opacity:.8;}.fts-slicker-facebook-photos .fts-share-wrap a{color:#fff!important}.fts-slicker-facebook-photos .fts-mashup-count-wrap{clear:both;display:block!important;top:-21px;left:16px}.fts-slicker-facebook-photos .fts-likes-shares-etc-wrap{outline:0;z-index:5000!important;color:#fff;position:absolute;bottom:10px!important;display:none;width:100%;text-align:left}.fts-slicker-facebook-photos .fts-jal-fb-see-more{bottom:0!important;position:absolute;left:10px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap{margin:10px 3px 0 0;padding:0}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap a.ft-gallery-link-popup{margin:0!important}.fts-mashup-post-wrap.fts-feed-type-facebook .ft-gallery-share-wrap{top:-7px}.fts-mashup-count-wrap.fts-share-wrap .ft-gallery-link-popup{margin-top:0!important}.fts-twitter-reply-wrap{float:left}.fts-instagram-reply-wrap-left,.fts-pinterest-reply-wrap-left,.fts-youtube-reply-wrap-left{float:right}.fts-tweeter-wrap .fts-share-wrap{padding:7px 0 0;margin-top:10px}.ft-gallery-share-wrap a{margin:7px 5px;font-size:13px}.fts-tweeter-wrap .ft-gallery-share-wrap{top:-6px}.fts-tweeter-wrap .fts-mashup-count-wrap a{display:inline-block;margin:7px 5px;font-size:13px}body .fts-slicker-facebook-photos .fts-tweeter-wrap .ft-gallery-share-wrap{max-width:132px!important;width:100%!important}.fts-tweeter-wrap .ft-gallery-link-popup{font-size:13px}.fts-twitter-reply-wrap-left{float:right;padding:10px 0 0;margin-top:5px}.fts-tweet-others-right a{display:inline-block}.fts-twitter-reply-wrap .fts-share-wrap{margin-top:10px;padding:0}.fts-share-wrap .fts-share-wrap{margin-top:10px}.fts-twitter-reply-wrap .fts-share-wrap a.ft-gallery-link-popup{margin-top:0!important}.fts-slicker-twitter-posts .fts-twitter-reply-wrap-left{padding:0!important;margin:15px 0 0!important}.ft-galleryfacebook-icon{margin-left:11px!important}.fts-mashup-post-wrap .fts-tweet-reply-left{margin-right:35px;padding:0 5px}.fts-mashup-post-wrap .fts-twitter-reply-wrap-left{padding:0;margin-top:0}.fts-share-wrap .ft-gallery-link-popup{margin:0!important;font-size:12px}.fts-mashup-count-wrap .fts-share-wrap{margin:0!important}.fts-instagram-reply-wrap-left{margin-right:8px}.fts-popup-second-half .fts-share-wrap{margin:15px 0 -64px}.fts-popup-second-half .mfp-title .ft-gallery-share-wrap a{color:#137fc4}.fts-instagram-styles-popup .fts-share-wrap .ft-gallery-share-wrap a,.fts-instagram-styles-popup .fts-share-wrap a.ft-gallery-link-popup{color:#444}.fts-youtube-reply-wrap-left a{font-size:12px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-jal-fb-see-more{margin-bottom:-1px;text-transform:none!important}.fts-instagram-styles-popup .ft-gallery-link-popup,.fts-instagram-styles-popup .fts-share-wrap{margin:0!important;padding:0!important}.fts-instagram-styles-popup .fts-instagram-reply-wrap-left{float:left;margin-left:20px}.fts-instagram-styles-popup .fts-share-wrap{background:#fff;top:-11px;left:19px;position:relative;z-index:1000}.fts-instagram-styles-popup .ft-gallery-share-wrap{top:-6px;left:25px;background:#fff}.fts-instagram-styles-popup .ft-gallery-link-popup:before{content:"\f064";margin-right:10px}.slicker-instagram-placeholder .ft-gallery-link-popup:before{content:"\f064";color:#fff;font-size:15px;position:relative;top:2px}.slicker-instagram-placeholder .ft-gallery-share-wrap{top:-19px;left:35px;box-shadow:2px -2px 3px 0 #222!important;background:#000}.slicker-instagram-placeholder .ft-gallery-share-wrap a{color:#fff}.fts-facebook-popup .ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f064 ";margin-left:8px}.fts-mashup-count-wrap .fts-instagram-reply-wrap-left{margin-right:-8px}.fts-facebook-thumb-one,.fts-facebook-thumb-zero{margin-right:1px!important;display:inline-block;margin-bottom:1px!important}a.fts-facebook-thumbs-wrap{display:inline-block;max-width:515px}.fts-facebook-thumb-two{display:inline-block}.fts-image-count-tint-underlay{position:absolute;top:0;bottom:0;right:0;left:0;background:rgba(0,0,0,.5)}.fts-fb-thumbs-wrap,.fts-more-photos-auto-width .fts-fb-thumbs-wrap{position:relative;background-size:cover!important;background-position:center center!important;display:inline-block!important;overflow:hidden}.fts-fb-thumbs-wrap{margin-right:.233333%!important}.fts-2-photos.fts-fb-thumbs-wrap,.fts-more-photos-3-photos .fts-fb-thumb-two-wrap{margin-right:0!important}.fts-3-photos{max-width:33.1%}.fts-2-photos{max-width:49.77%}.fts-fb-more-photos-wrap .fts-jal-fb-picture{margin-bottom:1px!important}.fts-more-photos-auto-width{float:none!important;margin:10px 0 4px}.fts-more-photos-auto-width a{width:49.84%;margin:0!important}.fts-more-photos-auto-width .fts-fb-thumbs-wrap{max-width:100%;margin-right:0!important;margin-left:.2333333333%!important;margin:0 0 4px;z-index:0;background-repeat:no-repeat;vertical-align:top}.fts-more-photos-auto-width .fts-jal-fb-picture{float:none!important;display:inline-block!important;margin:0!important}.fts-more-photos-three-photo-wrap .fts-fb-thumbs-wrap{display:inline-block!important;max-width:100%;margin-right:.233333333%!important;margin:0 0 4px;width:49.887%;overflow:hidden;max-height:240px}.fts-fb-scrollable,.fts-twitter-scrollable,.fts-youtube-scrollable{overflow:auto}.ft-text-for-popup,.fts-slicker-facebook-albums .fts-fb-load-more-output,.fts-slicker-facebook-albums .fts-share-wrap,.fts-slicker-facebook-photos .fts-share-wrap,.fts-twitter-reply-wrap-left p{display:none}.fts-more-photos-three-photo-wrap .fts-fb-thumb-one-wrap{margin-right:0!important}.fts-image-count{position:absolute;bottom:50%;width:100%;top:50%;text-align:center;font-size:36px;color:#fff;line-height:36px;height:36px;transform:translate(0,-50%)}.fts-image-count span{position:relative;bottom:0;font-size:35px}.fts-fb-more-photos-wrap{width:100%}@media (max-width:375px){.fts-image-count,.fts-image-count span{font-size:20px}}@media (max-width:667px){.fts-image-count,.fts-image-count span{font-size:34px}}.ft-gallery-buy-now{margin:0 12px}.fts-mashup-post-wrap .fts-share-wrap,.fts-slicker-facebook-albums.ft-wp-gallery .fts-share-wrap{display:block}.fts-mashup-count-wrap .fts-twitter-reply-wrap.fts-twitter-no-margin-left,.fts-mashup-hide-date .fts-jal-fb-post-time,.fts-mashup-hide-name .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-description-wrap,.fts-mashup-media-top .fts-mashup-type-icon-spacer{display:none}.ft-wp-gallery .fts-share-wrap a{color:#777!important}.fts-slicker-facebook-posts img{max-width:100%}.fts-twitter-no-margin-left{clear:both}.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px!important}.fts-smallerthan-180 .fts-instagram-link-target{padding-left:50%;padding-bottom:50%;padding-top:50%}.fts-smallerthan-180 .fts-instagram-link-target span:before{content:''!important}.fts-smallerthan-180 .fts-instagram-link-target:hover,.fts-smallerthan-180.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background:0 0!important}.fts-instagram,.fts-instagram-scrollable{margin:auto}.fts-mashup-hide-name .fts-mashup-description-wrap,.fts-mashup-hide-name.fts-mashup-hide-date .fts-jal-fb-message{padding-top:0!important}.fts-mashup-description-wrap a{word-wrap:break-word}.fts-mashup-image-and-video-wrap.popup-gallery-twitter .twitter-video{margin:-8px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin-top:0}.fts-mashup-media-top .fts-likes-shares-etc-wrap,.fts-mashup-media-top .fts-mashup-description-wrap,body .fts-mashup-post-wrap.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-youtube-title{padding:10px 10px 0;display:none}.fts-mashup-post-wrap .fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:5px 10px 0!important}.fts-mashup-media-top .fts-mashup-count-wrap{padding:8px 10px 7px!important;margin-bottom:0;margin-top:4px}.fts-mashup-media-top .fts-likes-shares-etc-wrap{padding:7px 10px 8px!important;margin-bottom:0;margin-top:10px}.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:0!important}.fts-mashup-media-top .fts-jal-fb-post-time{padding:5px 10px 7px!important}.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-fb-user-name,.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-jal-fb-see-more,.fts-mashup-media-top .fts-share-wrap{margin-top:0}.fts-mashup-media-top .fts-mashup-youtube-icon a:before{margin-right:8px!important;top:10px}.fts-mashup-media-top .fts-mashup-twitter-icon a:before{margin-right:8px!important;top:5px}.fts-mashup-media-top .fts-mashup-pinterest-icon a:before{margin-right:8px!important;top:9px}.fts-mashup-media-top .fts-mashup-instagram-icon a:before{margin-right:9px!important;top:9px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:unset;right:unset;top:unset;z-index:1;float:right!important}.fts-mashup-media-top .fts-jal-fb-top-wrap{display:none!important}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-top-wrap,.fts-mashup-hide-thumbnail .fts-jal-fb-user-thumb,.slicker-youtube-placeholder .entriestitle{display:none}.fts-mashup-media-top .fts-jal-fb-link-wrap,.fts-mashup-media-top .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px;text-align:center}.fts-mashup-media-top .fts-jal-fb-link-wrap .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-wrap{float:none}.fts-mashup-media-top .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-bottom:0!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left{margin-left:10px;margin-right:5px;margin-top:3px;top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon,.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-pinterest-icon{margin-top:2px;min-height:40px}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-right:0;margin-top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{margin-right:8px!important;top:6px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{margin-right:20px!important;margin-top:4px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-facebook-icon{margin-top:8px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon{margin-top:5px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap{margin-bottom:12px}.fts-mashup-media-top.fts-feed-type-facebook .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin:0}.fts-feed-type-facebook .fts-mashup-icon-wrap-left{margin-top:17px;margin-right:20px}.fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-top:3px}.fts-mashup-icon-wrap-left,.fts-mashup-icon-wrap-right{min-height:35px}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:6px!important;border:none;margin-bottom:10px;background:#fff;margin-top:0!important;padding-top:0!important}.fts-mashup-media-top .fts-jal-fb-link-wrap a,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-top:0!important;line-height:0!important}.fts-mashup-media-top.fts-slicker-facebook-posts .fts-jal-single-fb-post{padding:0 0 8px!important}.fts-mashup-media-top .fts-jal-fb-user-thumb{margin-left:10px;margin-bottom:12px}.fts-yt-open{display:block;width:100%;height:100%;position:absolute}.fts-master-youtube-wrap .slicker-instagram-placeholder{position:relative;background-size:cover}.fts-facebook-popup.mfp-ready{z-index:99999999999999}.fts-youtube-popup h3{color:#111;padding:20px 40px 0 20px!important;margin-bottom:2px;font-size:24px;margin-top:0}.fts-youtube-popup h4{color:#222;padding:0 20px 4px!important;font-size:17px}.fts-youtube-description-popup{padding:0 20px 20px;color:#000}.fts-youtube-date{color:#9a9a9a;padding: 0 20px 25px!important;font-size:13px;line-height: normal;}.fts-yt-open:hover{background:rgba(0,0,0,.5);cursor:pointer;line-height: 100%;}.fts-master-youtube-wrap .slicker-youtube-placeholder{min-height:100px}.fts-youtube-popup-gallery,.fts-youtube-scrollable{clear:both;display:block}.fts-yt-open:hover:before{font-family:FontAwesomeSlick;content:"\f04b";display:block;font-size:32px;color:rgba(255,255,255,.54);position:absolute;top: 43%;right:45%;left:43%;}.fts-youtube-smallerthan-180 .fts-yt-open:hover:before{content:""}.fts-jal-fb-vid-picture a{margin:0}.fts-facebook-popup .mfp-inline-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.fts-more-photos-4-photos a{max-height:150px;display:inline-block;width:auto}.fts-more-photos-2-photos a{max-height:250px}.fts-youtube-scrollable .fts-fb-autoscroll-loader{background:0 0}.fts-yt-large.fts-youtube-thumbs-wrap{float:left}.fts-youtube-scrollable.fts-youtube-thumbs-wrap{float:right;clear:none}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-left{float:left;clear:none}.fts-yt-large.fts-youtube-thumbs-wrap-left{float:right}.fts-yt-large.fts-youtube-thumbs-wrap-option-80-20{width:80%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-80-20{width:20%}.fts-yt-large.fts-youtube-thumbs-wrap-option-60-40{width:60%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-60-40{width:40%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-50-50,.fts-yt-large.fts-youtube-thumbs-wrap-option-50-50{width:50%}.fts-fb-comment .image-overlay-inside{display:none}.fts-youtube-popup .fts-fb-comment img{border-radius:30px}.fts-youtube-popup span.fts-fb-comment-date{color:#a6a6a6;padding-left:2px;font-size:12px!important}.fts-youtube-popup .fts-popup-second-half .mfp-title .fts-fb-comment-user-name a{color:#333!important}.youtube-comments-wrap{background:#fff;text-align:left;color:#2d2d2d!important}.youtube-comments-wrap .fts-share-wrap{margin:15px 0 -64px}.youtube-comments-wrap .fts-youtube-description-popup{display:block;position:relative!important;margin-bottom:-25px;padding-bottom:30px}.youtube-comments-wrap .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.fts-facebook-popup .mfp-bottom-bar a.ft-gallery-link-popup,.fts-facebook-popup .mfp-bottom-bar a.fts-jal-fb-see-more{color:#137fc4}.fts-youtube-scrollable .youtube-comments-wrap #___ytsubscribe_0{margin:20px 20px 10px!important}.mfp-title .fts-master-youtube-wrap-close{display:none}.fts-master-youtube-wrap-close{color:#636363;right:3px;top: 0px;text-align:right;padding:15px;width:50px;font-size:24px;font-weight:700;position:absolute;line-height: normal;cursor: pointer;}.fts-master-youtube-wrap-close:before{content:"X"}.youtube-comments-wrap{overflow:auto;display:none;position:relative}.youtube-comments-wrap h3{padding-top:18px!important}.fts-scrollable-function{height:auto}.fts-youtube-description-popup{font-size:14px!important}.fts-youtube-no-thumbs-gallery{padding:0!important}.fts-youtube-noscroll .youtube-comments-wrap{overflow:visible}.fts-youtube-smallerthan-550-stack{width:100%!important}.fts-jal-fb-user-thumb img{border-radius:50px!important}.fts-twitter-username img.twitter-image{border-radius:50px;margin-right:10px}.fts-youtube-second-video-margin-btm{margin-bottom:35px}.fts-share-wrap [class*=fa-]{width:auto;height:auto}.fts-popup-half .mfp-arrow-left,.fts-popup-half .mfp-arrow-right{height:auto;width:auto;border:none!important;margin-top:0!important}.fts-popup-half .mfp-arrow-left:after,.fts-popup-half .mfp-arrow-right:after{background:0 0!important;height:auto!important;top:0!important;left:0!important;margin:0!important;padding:0!important;cursor:pointer;transform:none!important;transition:none!important;-webkit-transition:none!important}.fts-popup-half audio,.fts-popup-half video{visibility:visible!important}.fts-album-photos-wrap{text-align:center}.fts-fb-more-photos-wrap,.fts-more-photos-4-photos{position:relative;top:-3px}#wp-admin-bar-feed_them_social_admin_bar_set_cache{padding-bottom:17px!important;line-height:0!important}#wp-admin-bar-feed_them_social_admin_bar_set_cache span{line-height:10px;display:block;color:rgba(221,221,221,.57)}#wp-admin-bar-feed_them_social_admin_bar_set_cache:hover span{line-height:10px;display:block;color:#fff}.fts-mashup-media-top.fts-mashup-hide-thumbnail .fts-jal-fb-user-name{margin-left:0!important}.fts-steemit-username{display:inline-block;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border-radius:50%;width:48px;height:48px;margin-bottom:5px}.fts-steemit-div .steemit-info img{margin:0!important}.steemit-info .fts-uppercase{margin:14px 0 10px 10px}.fts-steemit-title{font-size:18px;margin-bottom:10px;letter-spacing:1px;font-weight:400;line-height:21px;color:#0084b4}.fts-steemit-div .fts-twitter-retweet:before{content:"\f27a"!important;font-size:15px!important;top:1px}.fts-steemit-div .fts-twitter-favorites:before{content:'Votes:'!important;font-family:arial!important;font-size:14px!important;margin-right:3px!important;top:0;font-weight:700}.fts-steemit-div .fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f06e'!important;position:relative;top:2px;font-size:19px}.fts-twitter-quoted-text-wrap{border:1px solid #efe8e8!important;margin-top:10px;font-size:inherit;text-align:left;border-radius:12px;overflow:hidden;background:#fff}.fts-twitter-quoted-text-wrap a{font-size:14px!important;display:block}.fts-twitter-quoted-text-wrap .twitter-video-rendered{margin:auto!important}.fts-fluid-videoWrapper{margin-top:8px}.fts-twitter-quoted-text-wrap .fts-twitter-link-image img,.fts-twitter-quoted-text-wrap img{margin-top:0!important}.fts-twitter-quoted-text{display: block;padding:8px 10px 0;line-height:18px;}.fts-twitter-quoted-video .fts-twitter-quoted-text{padding-top:0!important}.fts-twitter-quoted-image{padding:8px}.fts-twitter-quoted-image .fts-twitter-quoted-text{padding:8px 2px 2px!important}.fts-fb-more-photos-wrap a:last-child{margin-right:0!important}.fts-fb-more-photos-wrap a:first-child{margin-left:0!important}.fts-yt-first-video .fts-fluid-videoWrapper{margin-top:0}.fts-twitter-quoted-video .fts-fluid-videoWrapper-html5,.fts-twitter-quoted-video .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px}.fts-fb-location-wrap{text-align:center;padding:15px}.fts-fb-location-img{display:block;margin-bottom:9px;height:20px}.fts-fb-location-img:before{content:"\f024";font-family:FontAwesomeSlick;font-size:28px;display:block}.fts-fb-location-link{margin-bottom:5px;display:block;font-size:16px}.fts-popup-second-half .fts-fb-location-wrap{color:#444}.fts-fb-embed-iframe-check-used-for-popup,.greater-than-or-equal-width-height{display:none!important}.fts-fb-video-on-page.fts-fluid-videoWrapper{padding-bottom:56%;padding-top:0;width:100%!important;height:auto!important}.fts-fb-video-on-page.fts-fluid-videoWrapper iframe{width:100%!important;height:auto!important}.fts-greater-than-width-height.fts-fb-video-on-page{margin-top:18px}.fts-greater-than-width-height.fts-fb-video-on-page iframe{padding-bottom:100%}.fts-equal-width-height{max-width:100%;padding-bottom:100%!important}.fts-comment-star:before{font-family:FontAwesomeSlick;content:"\f075";font-size:14px;margin:0 6px 0 -2px!important;padding:0!important;display:inline-block!important;border:none!important}.fts-mashup-error-notice-strong{display:block;font-size:16px;padding-bottom:5px}.fts-mashup-error-bottom-padding{padding-bottom:20px;display:block}.fts-mashup-error-check .fts-mashup-image-and-video-wrap{display:none}.fts-review-name span{margin-right:5px}.fts-mashup.masonry .fts-fluid-videoWrapper-html5{margin-top:0}.fts-child-media-hide{display:none}.fts-instagram-styles-popup .fts-carousel-image{position:absolute;right:25px;top:32px;text-align:right;font-size:21px;color:#fff;z-index:1}.fts-carousel-image-wrapper,.fts-instagram-video-image-wrapper{position:relative;right:18px;top:18px;text-align:right;font-size:20px;color:#fff;width:auto;float:right}.fts-carousel-image:before{font-family:FontAwesomeSlick;content:'\f24d'}.fts-instagram-video-image:before{font-family:FontAwesomeSlick;content:'\f03d'}.fts-instagram-popup-second-half .fts-carousel-image{display:none}.fts-child-media-popup .fts-carousel-image{display:block}.fts-carousel-image-wrapper,.fts-instagram-video-image-wrapper{position:relative;z-index:2}.slicker-instagram-placeholder a:focus{outline:auto!important}.fts-instagram-icon:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;content:"\f16d"}.slicker-instagram-placeholder{height:0;width:0}.fts-fb-album-additional-pics-description-wrap,.fts-popup-wrap .fts-fb-album-name-and-count{display:none}.fts-fb-album-description-content{padding-top:5px!important}.fts-facebook-styles-popup .fts-fb-album-hide,a.ft-gallerygoogle-icon{display:none!important}.fts-facebook-popup .fts-fb-album-description-content .fts-jal-fb-user-name{padding-left:60px!important;margin-top:0!important}.fts-facebook-popup .fts-fb-album-description-content .fts-fb-album-date-wrap{padding-left:60px!important;color:#999}.fts-facebook-popup .fts-fb-album-description-content .fts-jal-fb-user-thumb{margin-left:0!important}.fts-fb-album-date-wrap{margin-bottom:25px}.fts-albums-hide-main-album-link-in-popup{display:none}.fts-likes-shares-etc-wrap .fts-albums-hide-main-album-link-in-popup{display:block}@media (min-width:900px){html .mfp-wrap.fts-facebook-popup .mfp-close{top:0!important;left:-10px!important;color:#137fc4;opacity:1!important;cursor:pointer!important;z-index:100;margin-bottom:0;padding-bottom:0;height:25px}}.fts-albums-single-image .fts-jal-fb-see-more{color:#fff}.fts-instagram-popup-second-half .fts-follow-header-wrap{display:none}div.cycle-carousel-wrap div.fts-jal-fb-top-wrap{white-space:normal!important}.fts-twitter-logo .fa.fa-twitter{color:#e7e7e7!important}.fts-twitter-retweet-feed{font-size:14px;top:1px}.fts-tweeter-wrap:hover i:before{color:#1d9bf0;transition:.5s}.fts-twitter-svg-addition .fts-tweet-reply-left{float:none;display:inline-block}.fts-twitter-reply-wrap .fts-share-wrap svg.svg-inline--fa{display:inline-block!important;width:17px;top:3px;position:relative;z-index:2;transform:rotate(90deg);fill:currentcolor}.fts-share-wrap svg.svg-inline--fa{display:none!important}.fts-twitter-reply-wrap .fts-share-wrap a:before{display:none}.fts-twitter-reply-feed svg.svg-inline--fa{display:inline-block!important;width:14px;top:2px;margin-left:17px;position:relative}.fts-twitter-retweet-feed svg.svg-inline--fa{display:inline-block!important;width:20px;top:3px;margin-right:5px;position:relative}.fts-twitter-favorites-feed svg.svg-inline--fa{display:inline-block!important;width:15px;top:3px;margin-right:5px;position:relative}.fts-twitter-logo{float:right;color:rgb(227 227 227);padding: 5px 0 0 5px;}.fts-twitter-logo .fa-twitter:before{font-size:25px!important}.fts-twitter-name-wrap{display:inline-block;padding-top:7px;line-height:14px}.fts-twitter-username{float:left}.fts-twitter-external-backg-image{background:0 0}.fts-twitter-wrap-below-width-450 .fts-twitter-external-backg-image{background-size:cover;background-position:center center;background-repeat:no-repeat;display:block;height:110px;min-height:110px!important}.fts-twitter-wrap-below-width-450 .fts-twitter-external-backg-image img{display:none!important}.fts-twitter-quoted-text-wrap img,.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap{padding:0}.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap a{width:22%;display:inline-block;margin-bottom:-2px}.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap img{width:100%;display:inline-block;overflow:hidden}.fts-twitter-wrap-below-width-450 .fts-retweet-text-specific{width:95%}.fts-twitter-wrap-below-width-450 .fts-twitter-image-visible,.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap .fts-external-link-specific{display:inline-block;vertical-align:top;width:70%}.fts-twitter-wrap-below-width-450 .fts-twitter-quoted-text-wrap .fts-twitter-quoted-text a{display: block;width: 100%;}.fts-twitter-domain-name{position:relative;top:-3px;font-size:13px;padding-top:5px;display:block;color:#555}.fts-twitter-domain-name svg{max-width:15px;display:inline-block;margin-right:3px;position:relative;top:3px}.fts-twitter-quoted-text svg.r-4qtqp9{max-width:15px;fill:currentcolor;color:rgb(122 122 122)}.fts-twitter-quoted-text{padding:10px 15px 10px 15px}.fts-twitter-quoted-text a{color:#141414;word-break:break-word}.fts-twitter-quoted-title{font-weight:700;display:block;clear:both;font-size:14px}.fts-twitter-quoted-description{padding-top:3px;display: block;margin-bottom:5px;word-break:break-word;color: #606060;width: 100%;}.fts-twitter-quoted-text-wrap img{margin:0}.fts-twitter-quoted-text .fts-twitter-quoted-text{margin-top:0}.fts-twitter-quoted-text svg.r-1cvl2hr{max-width:15px;margin:0 3px;position:relative;top:3px;fill:currentcolor;display:inline-block;color:#1d9bf0}.fts-fluid-videoWrapper-html5 video{height:auto!important;width:100%!important;max-width:100%!important}@media(max-width:400px){.fts-twitter-logo,.twitter-image{display:none}}.fts-twitter-image-visible {display:inline-block;}.fts-twitter-quoted-video .fts-twitter-quoted-text a {display: revert !important;}.fts-master-youtube-wrap-close:hover {opacity:.7;}
feeds/facebook/class-fts-facebook-feed.php CHANGED
@@ -2152,7 +2152,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
2152
  echo 'if(jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {';
2153
  } else {
2154
  // this is where we do CLICK function to LOADMORE if = button in shortcode.
2155
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").click(function() {';
2156
  }
2157
  echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").addClass("fts-fb-spinner");';
2158
  echo 'var button = jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("<div class=\'bounce1\'></div><div class=\'bounce2\'></div><div class=\'bounce3\'></div>");';
@@ -2196,9 +2196,11 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
2196
  }
2197
 
2198
  echo ' jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2199
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
2200
  echo '}';
 
2201
  } else {
 
2202
  if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
2203
  echo 'var result = jQuery(data).insertBefore( jQuery("#output_' . esc_js( $fts_dynamic_name ) . '") );';
2204
  echo 'var result = jQuery(".feed_dynamic_' . esc_js( $fts_dynamic_name ) . '_album_photos").append(data).filter("#output_' . esc_js( $fts_dynamic_name ) . '").html();';
@@ -2214,7 +2216,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
2214
  echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_posts_text ) . '</div>\');';
2215
  }
2216
  echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2217
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
2218
  echo '}';
2219
 
2220
  }
2152
  echo 'if(jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {';
2153
  } else {
2154
  // this is where we do CLICK function to LOADMORE if = button in shortcode.
2155
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").off().click(function() {';
2156
  }
2157
  echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").addClass("fts-fb-spinner");';
2158
  echo 'var button = jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("<div class=\'bounce1\'></div><div class=\'bounce2\'></div><div class=\'bounce3\'></div>");';
2196
  }
2197
 
2198
  echo ' jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2199
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").off("scroll");';
2200
  echo '}';
2201
+
2202
  } else {
2203
+
2204
  if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
2205
  echo 'var result = jQuery(data).insertBefore( jQuery("#output_' . esc_js( $fts_dynamic_name ) . '") );';
2206
  echo 'var result = jQuery(".feed_dynamic_' . esc_js( $fts_dynamic_name ) . '_album_photos").append(data).filter("#output_' . esc_js( $fts_dynamic_name ) . '").html();';
2216
  echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_posts_text ) . '</div>\');';
2217
  }
2218
  echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2219
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").off("scroll");';
2220
  echo '}';
2221
 
2222
  }
feeds/instagram/class-fts-instagram-feed.php CHANGED
@@ -363,14 +363,40 @@ class FTS_Instagram_Feed extends feed_them_social_functions {
363
  $pics_count = '10';
364
  }
365
 
366
- wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
367
- $instagram_data_array = array();
368
-
369
- $fts_business_or_hashtag_check_token_type = '' === $access_token ? $this->data_protection->decrypt( get_option( 'fts_facebook_instagram_custom_api_token' ) ) : $access_token;
370
  $fts_check_token_type = '' === $access_token ? $this->data_protection->decrypt( get_option( 'fts_instagram_custom_api_token' ) ) : $access_token;
371
  $fts_instagram_access_token = 'hashtag' === $type || 'business' === $type ? $fts_business_or_hashtag_check_token_type : $fts_check_token_type;
372
  $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
373
  $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
375
  $instagram_load_more_text = get_option( 'instagram_load_more_text' ) ? get_option( 'instagram_load_more_text' ) : __( 'Load More', 'feed-them-social' );
376
  $instagram_no_more_photos_text = get_option( 'instagram_no_more_photos_text' ) ? get_option( 'instagram_no_more_photos_text' ) : __( 'No More Photos', 'feed-them-social' );
@@ -592,52 +618,22 @@ class FTS_Instagram_Feed extends feed_them_social_functions {
592
  // This only returns the next url and a list of media ids. We then have to loop through the ids and make a call to get each ids data from the API.
593
  $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://graph.instagram.com/' . $instagram_id . '/media?limit=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
594
 
595
- // First we make sure the feed is not cached already before trying to run the Instagram API.
596
- if ( false === $this->fts_check_feed_cache_exists( $basic_cache ) ) {
597
- $instagram_basic_response = $this->fts_get_feed_json( $instagram_data_array );
598
-
599
- $instagram_basic = json_decode( $instagram_basic_response['data'] );
600
-
601
- // We loop through the media ids from the above $instagram_basic_data_array['data'] and request the info for each to create an array we can cache.
602
- $instagram_basic_output = (object) [ 'data' => [] ];
603
- foreach ( $instagram_basic->data as $media ) {
604
- $media_id = $media->id;
605
- $instagram_basic_data_array['data'] = 'https://graph.instagram.com/' . $media_id . '?fields=caption,id,media_url,media_type,permalink,thumbnail_url,timestamp,username,children{media_url}&access_token=' . $fts_instagram_access_token_final;
606
- $instagram_basic_media_response = $this->fts_get_feed_json( $instagram_basic_data_array );
607
- $instagram_basic_media = json_decode( $instagram_basic_media_response['data'] );
608
- $instagram_basic_output->data[] = $instagram_basic_media;
609
- }
610
-
611
- $insta_data = (object) array_merge( (array) $instagram_basic, (array) $instagram_basic_output );
612
 
 
 
613
 
614
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
615
- $this->fts_create_feed_cache( $basic_cache, $insta_data );
616
- }
617
- }
618
-
619
- else {
620
- $insta_data = $this->fts_get_feed_cache( $basic_cache );
621
-
622
- $insta_data = json_decode( $insta_data );
623
-
624
- // Used for Testing Only.
625
- if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
626
- esc_html_e( 'Array Check Cached', 'feed-them-social' );
627
- echo '<br/><pre>';
628
- print_r( $insta_data );
629
- echo '</pre>';
630
- }
631
- }
632
 
633
- // echo '<br/>asdfasdfasdf<pre>';
634
- // print_r( $insta_data );
635
- // echo '</pre>zzzz';
636
- // $instagram_data_array['user_info'] = 'https://graph.instagram.com/me?fields=id,username,media_count,account_type&access_token=' . $fts_instagram_access_token_final;
637
  }
638
 
639
-
640
- $cache = 'instagram_cache_' . $instagram_id . '_num' . $pics_count . '';
641
  // First we make sure the feed is not cached already before trying to run the Instagram API.
642
  if ( false === $this->fts_check_feed_cache_exists( $cache ) ) {
643
  $response = $this->fts_get_feed_json( $instagram_data_array );
@@ -652,7 +648,7 @@ class FTS_Instagram_Feed extends feed_them_social_functions {
652
  print_r( $error_check );
653
  echo '</pre>';
654
  }
655
- }
656
 
657
  /*//$spencer_testing = 'true';
658
  if ( 'hashtag' === $type || 'user' === $type || !isset( $type ) ) {
@@ -1251,12 +1247,18 @@ if ( isset( $profile_description, $type ) && 'yes' === $profile_description &&
1251
  // $scroll_more = load_more_posts_style shortcode att.
1252
  if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
1253
  ?>
1254
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").bind("scroll", function () {
1255
- if (jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {
1256
- <?php
1257
- } else { // this is where we do CLICK function to LOADMORE if = button in shortcode.
1258
- ?>
1259
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").click(function () {
 
 
 
 
 
 
1260
  <?php } ?>
1261
  jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
1262
  var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
@@ -1286,10 +1288,10 @@ if ( isset( $profile_description, $type ) && 'yes' === $profile_description &&
1286
  success: function (data) {
1287
  console.log('Well Done and got this from sever: ' + data);
1288
  jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
1289
- if (!nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> || nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> === 'no more') {
1290
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $instagram_no_more_photos_text ); ?></div>');
1291
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
1292
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").unbind('scroll');
1293
  }
1294
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $instagram_load_more_text ); ?>');
1295
  jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").removeClass('fts-fb-spinner');
@@ -1301,18 +1303,18 @@ if ( isset( $profile_description, $type ) && 'yes' === $profile_description &&
1301
  slickremixImageResizing(); // Reload our imagesizing function so the images show up proper
1302
  }
1303
  }); // end of ajax()
1304
- return false;
1305
- <?php
1306
- // string $scroll_more is at top of this js script. exception for scroll option closing tag.
1307
- if ( 'autoscroll' === $scroll_more ) {
1308
- ?>
1309
- }; // end of scroll ajax load
1310
- <?php } ?>
1311
- }
1312
- ); // end of document.ready
1313
- }); // end of form.submit </script>
1314
- <?php
1315
- }//End Check.
1316
  }
1317
  }
1318
  // main closing div not included in ajax check so we can close the wrap at all times.
363
  $pics_count = '10';
364
  }
365
 
366
+ $fts_business_or_hashtag_check_token_type = '' === $access_token ? $this->data_protection->decrypt( get_option( 'fts_facebook_instagram_custom_api_token' ) ) : $access_token;
 
 
 
367
  $fts_check_token_type = '' === $access_token ? $this->data_protection->decrypt( get_option( 'fts_instagram_custom_api_token' ) ) : $access_token;
368
  $fts_instagram_access_token = 'hashtag' === $type || 'business' === $type ? $fts_business_or_hashtag_check_token_type : $fts_check_token_type;
369
  $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
370
  $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
371
+
372
+ // the way this refresh token works atm is. if the token is expired then we fetch a new token when any front end user views a page the feed is on.
373
+ // the ajax runs to fetch a new token if it's expired, then it saves it to the db, but because that happens after the user has already loaded the page,
374
+ // we need to show the cached feed so the feed does not return a token expired message. THEN after the next page reload the actual refreshed token will be in place.
375
+ // we still keep calling the cached version after that point so we are not uses up the API until the users deletes the cache or it is deleted per the determined time.
376
+ // this will not return the feed proper if token is expired need to fix this
377
+ // YO!
378
+ // SRL 4-6-22. RIGHT NOW WE ARE ONLY DOING THIS FOR INSTAGRAM BASIC
379
+ if ( ! empty( $fts_check_token_type ) ) {
380
+ // Double Check Our Expiration Time on the Token and refresh it if needed.
381
+ $expiration_time = get_option( 'fts_instagram_custom_api_token_expires_in' );
382
+ if ( time() > $expiration_time ) {
383
+ $this->feed_them_instagram_refresh_token();
384
+ }
385
+ }
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+ wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
397
+ $instagram_data_array = array();
398
+
399
+
400
  if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
401
  $instagram_load_more_text = get_option( 'instagram_load_more_text' ) ? get_option( 'instagram_load_more_text' ) : __( 'Load More', 'feed-them-social' );
402
  $instagram_no_more_photos_text = get_option( 'instagram_no_more_photos_text' ) ? get_option( 'instagram_no_more_photos_text' ) : __( 'No More Photos', 'feed-them-social' );
618
  // This only returns the next url and a list of media ids. We then have to loop through the ids and make a call to get each ids data from the API.
619
  $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://graph.instagram.com/' . $instagram_id . '/media?limit=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
620
 
621
+ $feed_data = $this->use_cache_check( $instagram_data_array['data'], $basic_cache, 'instagram' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
 
623
+ // JSON Decode the Feed Data.
624
+ $insta_data = json_decode( $feed_data );
625
 
626
+ /* echo '<pre>';
627
+ print_r( $insta_data );
628
+ echo '</pre>';*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
629
 
630
+ // echo '<br/>asdfasdfasdf<pre>';
631
+ // print_r( $insta_data );
632
+ // echo '</pre>zzzz';
633
+ // $instagram_data_array['user_info'] = 'https://graph.instagram.com/me?fields=id,username,media_count,account_type&access_token=' . $fts_instagram_access_token_final;
634
  }
635
 
636
+ /*$cache = 'instagram_cache_' . $instagram_id . '_num' . $pics_count . '';
 
637
  // First we make sure the feed is not cached already before trying to run the Instagram API.
638
  if ( false === $this->fts_check_feed_cache_exists( $cache ) ) {
639
  $response = $this->fts_get_feed_json( $instagram_data_array );
648
  print_r( $error_check );
649
  echo '</pre>';
650
  }
651
+ }*/
652
 
653
  /*//$spencer_testing = 'true';
654
  if ( 'hashtag' === $type || 'user' === $type || !isset( $type ) ) {
1247
  // $scroll_more = load_more_posts_style shortcode att.
1248
  if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
1249
  ?>
1250
+
1251
+ // If =autoscroll in shortcode.
1252
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ) ?>instagram").bind("scroll",function() {
1253
+
1254
+ if( jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight ) {
1255
+
1256
+ // console.log( jQuery(this).scrollTop() + jQuery(this).innerHeight() );
1257
+ // console.log( jQuery(this)[0].scrollHeight );
1258
+ <?php }
1259
+ else { ?>
1260
+ // If =button in shortcode.
1261
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").off().click(function() {
1262
  <?php } ?>
1263
  jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
1264
  var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
1288
  success: function (data) {
1289
  console.log('Well Done and got this from sever: ' + data);
1290
  jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
1291
+ if (!nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> || 'no more' === nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> ) {
1292
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $instagram_no_more_photos_text ); ?></div>');
1293
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
1294
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").off('scroll');
1295
  }
1296
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $instagram_load_more_text ); ?>');
1297
  jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").removeClass('fts-fb-spinner');
1303
  slickremixImageResizing(); // Reload our imagesizing function so the images show up proper
1304
  }
1305
  }); // end of ajax()
1306
+ return false;
1307
+ // string $scrollMore is at top of this js script. exception for scroll option closing tag.
1308
+ <?php if ( 'autoscroll' === $loadmore ) { ?>
1309
+ };
1310
+ }); // end of scroll ajax load.
1311
+ <?php } else { ?>
1312
+ }); // end of click button.
1313
+ <?php } ?>
1314
+ }); // end of document.ready.
1315
+ </script><?php
1316
+
1317
+ }//End Check.
1318
  }
1319
  }
1320
  // main closing div not included in ajax check so we can close the wrap at all times.
feeds/twitter/class-fts-twitter-feed.php CHANGED
@@ -1389,12 +1389,12 @@ class FTS_Twitter_Feed extends feed_them_social_functions {
1389
  if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
1390
  ?>
1391
  jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>").bind("scroll", function () {
1392
- if (jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {
1393
  <?php
1394
  } else {
1395
  // this is where we do CLICK function to LOADMORE if = button in shortcode!
1396
  ?>
1397
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").click(function () {
1398
  <?php } ?>
1399
  jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
1400
  var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
@@ -1431,10 +1431,10 @@ class FTS_Twitter_Feed extends feed_them_social_functions {
1431
  jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
1432
  <?php } ?>
1433
 
1434
- if (!maxID_<?php echo sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ); ?> || maxID_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ); ?> == 'no more') {
1435
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $twitter_no_more_tweets_text ); ?></div>');
1436
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
1437
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>").unbind('scroll');
1438
  }
1439
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $twitter_load_more_text ); ?>');
1440
  // jQuery('#loadMore_< ?php echo $fts_dynamic_name ?>').removeClass('flip360-fts-load-more');
@@ -1454,18 +1454,16 @@ class FTS_Twitter_Feed extends feed_them_social_functions {
1454
  jQuery(".fts-slicker-twitter-posts").masonry("layout");
1455
  }, 500);
1456
  <?php } ?>
1457
-
1458
  }
1459
- }); // end of ajax()
1460
- return false;
1461
- <?php
1462
- // string $scroll_more is at top of this js script. acception for scroll option closing tag.
1463
- if ( 'autoscroll' === $scroll_more ) {
1464
- ?>
1465
- }; // end of scroll ajax load.
1466
- <?php } ?>
1467
- }
1468
- ); // end of form.submit
1469
  <?php
1470
  if ( isset( $grid ) && 'yes' === $grid ) {
1471
  ?>
1389
  if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
1390
  ?>
1391
  jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>").bind("scroll", function () {
1392
+ if ( jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight ) {
1393
  <?php
1394
  } else {
1395
  // this is where we do CLICK function to LOADMORE if = button in shortcode!
1396
  ?>
1397
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").off().click(function () {
1398
  <?php } ?>
1399
  jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
1400
  var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
1431
  jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
1432
  <?php } ?>
1433
 
1434
+ if (!maxID_<?php echo sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ); ?> || 'no more' === maxID_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ); ?>) {
1435
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $twitter_no_more_tweets_text ); ?></div>');
1436
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
1437
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>").off('scroll');
1438
  }
1439
  jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $twitter_load_more_text ); ?>');
1440
  // jQuery('#loadMore_< ?php echo $fts_dynamic_name ?>').removeClass('flip360-fts-load-more');
1454
  jQuery(".fts-slicker-twitter-posts").masonry("layout");
1455
  }, 500);
1456
  <?php } ?>
 
1457
  }
1458
+ });// end of ajax().
1459
+ return false;
1460
+ // string $scrollMore is at top of this js script. exception for scroll option closing tag.
1461
+ <?php if ( 'autoscroll' === $loadmore ) { ?>
1462
+ };
1463
+ }); // end of scroll ajax load.
1464
+ <?php } else { ?>
1465
+ }); // end of click button.
1466
+ <?php } ?>
 
1467
  <?php
1468
  if ( isset( $grid ) && 'yes' === $grid ) {
1469
  ?>
feeds/youtube/class-youtube-feed-free.php CHANGED
@@ -72,27 +72,29 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
72
 
73
  wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
74
 
75
- $youtube_access_token_new = '';
76
- if ( ! isset( $_GET['load_more_ajaxing'] ) && empty( $youtube_api_key ) && ! empty( $youtube_api_key ) ) {
77
- // Double Check Our Experiation Time on the Token and refresh it if needed.
 
 
 
 
78
  $expiration_time = get_option( 'youtube_custom_token_exp_time' );
79
- // Access token is good for 3600 seconds.
80
- // Give the access token a 5 minute buffer (300 seconds) before getting a new one.
81
- // $expiration_time = $expiration_time - 300;.
82
- $expiration_time = $expiration_time - 300;
83
- if ( time() > $expiration_time ) {
84
- $youtube_access_token_new = $this->feed_them_youtube_refresh_token();
85
 
86
- if ( ! empty( $youtube_access_token ) ) {
87
- $youtube_access_token = $youtube_access_token_new;
88
- };
89
  }
90
  }
91
 
92
- // you must create a youtube app now to get this.
93
  if ( ! empty( $youtube_access_token ) && empty( $youtube_api_key ) ) {
 
 
 
94
  $youtube_api_key_or_token = 'access_token=' . $youtube_access_token . '';
95
  } else {
 
 
96
  $youtube_api_key_or_token = 'key=' . $youtube_api_key . '';
97
  }
98
 
@@ -199,10 +201,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
199
  $user_cache_name = 'yt_user_' . $username;
200
  }
201
 
202
- // $fts_functions_class->delete_permanent_feed_cache($user_cache_name);
203
- // YO!
204
- // echo ' why you no use cache check ';
205
- $user_returned = $this->use_cache_check( $youtube_user_id_data, $user_cache_name );
206
 
207
  // If the YT User returned is not empty and is an arary.
208
  if ( ! empty( $user_returned ) && is_array( $user_returned ) ) {
@@ -267,7 +266,11 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
267
  $feed_cache_name = 'pics_vids_list_' . $channel_id . '_bnum' . $vid_count . '_channel';
268
  }
269
  } elseif ( ! empty( $playlist_id ) || ! empty( $playlist_id ) && ! empty( $channel_id ) ) {
270
- $youtube_feed_api_url = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=' . $vid_count . '&playlistId=' . $playlist_id . '&order=date&' . $youtube_api_key_or_token ) );
 
 
 
 
271
 
272
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
273
  // Youtube Playlist Cache Folder.
@@ -281,10 +284,19 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
281
  // echo ' why you no use cache check ';
282
  // echo $youtube_feed_api_url;
283
  // Call, fetch and Check data from API url!
284
- $feed_returned = $this->use_cache_check( $youtube_feed_api_url, $feed_cache_name );
 
 
 
285
 
286
  // JSON Decode the Feed Data.
287
  $videos = json_decode( $feed_returned['data'] );
 
 
 
 
 
 
288
  }
289
  }
290
 
@@ -425,14 +437,18 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
425
 
426
  echo '<div class="' . esc_attr( $set_comments_height ) . 'youtube-comments-wrap' . esc_attr( $wrap ) . '" style="display: block !important;">';
427
 
428
- $this->fts_youtube_single_video_info( $video_id_or_link, $youtube_api_key_or_token, $youtube_access_token_new );
429
 
430
  echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
431
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html__( 'View on YouTube', 'feed-them-premium' ) . '</a>';
432
- if ( '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
433
- $this->fts_youtube_commentThreads( $video_id_or_link, $youtube_api_key_or_token, $comments_count );
 
 
434
  }
 
435
  echo '</div>';
 
436
  if ( 'right' !== $wrap || 'left' !== $wrap ) {
437
  echo '</div>';
438
  }
@@ -518,8 +534,9 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
518
  ) . '</div>';
519
  echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
520
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html__( 'View on YouTube', 'feed-them-premium' ) . '</a>';
521
- if ( isset( $comments_count ) && '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
522
- $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
 
523
  }
524
  echo '</div>';
525
  }
@@ -554,14 +571,16 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
554
  ) . '</div>';
555
  echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
556
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html__( 'View on YouTube', 'feed-them-premium' ) . '</a>';
557
- if ( isset( $comments_count ) && '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
558
- $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
 
 
559
  }
560
  echo '</div>';
561
  }
562
  }
563
  echo '</div>';
564
- };
565
  $count++;
566
  if ( $count === $vid_count ) {
567
  break;
@@ -589,9 +608,10 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
589
  // we check to see if the loadmore count number is set and if so pass that as the new count number when fetching the next set of pics/videos.
590
  $_REQUEST['next_url'] = ! empty( $loadmore ) ? str_replace( 'maxResults=' . $vid_count, 'maxResults=' . $loadmore_count, $next_url ) : $next_url;
591
 
592
- echo '<script>';
593
- echo 'var nextURL_' . esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . '= "' . esc_url_raw( $_REQUEST['next_url'] ) . '";';
594
- echo '</script>';
 
595
  }
596
  // Make sure it's not ajaxing.
597
  if ( ! isset( $_GET['load_more_ajaxing'] ) && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! empty( $loadmore ) ) {
@@ -599,73 +619,104 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
599
  $time = time();
600
  $nonce = wp_create_nonce( $time . 'load-more-nonce' );
601
  $fts_dynamic_class_name = $this->get_fts_dynamic_class_name();
602
- echo '<script>';
603
- echo 'jQuery(document).ready(function() {';
604
-
605
- if ( 'autoscroll' === $loadmore ) {
606
- // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
607
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").bind("scroll",function() {';
608
- echo 'if(jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {';
609
- } else {
610
- // this is where we do CLICK function to LOADMORE if = button in shortcode.
611
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").unbind().click(function() {';
612
- }
613
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").addClass("fts-fb-spinner");';
614
- echo 'var button = jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("<div class=\'bounce1\'></div><div class=\'bounce2\'></div><div class=\'bounce3\'></div>");';
615
- echo 'console.log(button);';
616
- echo 'console.log(nextURL_' . esc_js( $fts_dynamic_name ) . ');';
617
- echo 'var yes_ajax = "yes";';
618
- echo 'var fts_d_name = "' . esc_js( $fts_dynamic_name ) . '";';
619
- echo 'var fts_security = "' . esc_js( $nonce ) . '";';
620
- echo 'var fts_time = "' . esc_js( $time ) . '";';
621
-
622
- echo 'var feed_name = "fts_youtube";';
623
- echo 'var loadmore_count = "vid_count=' . esc_js( $loadmore_count ) . '";';
624
- echo 'var feed_attributes = ' . wp_json_encode( $atts ) . ';';
625
-
626
- echo 'jQuery.ajax({';
627
- echo 'data: {action: "my_fts_fb_load_more", next_url: nextURL_' . esc_js( $fts_dynamic_name ) . ', fts_dynamic_name: fts_d_name, feed_name: feed_name, loadmore_count: loadmore_count, feed_attributes: feed_attributes, load_more_ajaxing: yes_ajax, fts_security: fts_security, fts_time: fts_time},';
628
- echo 'type: "GET",';
629
- echo 'url: "' . esc_url( admin_url( 'admin-ajax.php' ) ) . '",';
630
- echo 'success: function( data ) {';
631
- echo 'console.log("Well Done and got this from sever: " + data);';
632
-
633
- echo 'var result = jQuery(".fts-youtube-popup-gallery.' . esc_js( $fts_dynamic_class_name ) . '").append(data).filter(".fts-youtube-popup-gallery.' . esc_js( $fts_dynamic_name ) . '").html();';
634
-
635
- echo 'jQuery(".fts-youtube-popup-gallery.' . esc_js( $fts_dynamic_class_name ) . '").html(result);';
636
- echo 'if(!nextURL_' . esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . ' || nextURL_' . esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . ' == "no more"){';
637
-
638
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_js( $youtube_no_more_videos_text ) . '</div>\');';
639
-
640
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
641
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
642
-
643
- echo '}';
644
-
645
- if ( 'button' === $loadmore ) {
646
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("' . esc_html( $youtube_load_more_text ) . '");';
647
- }
648
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeClass("fts-fb-spinner");';
649
- if ( 'yes' === $popup ) {
650
- // We return this function again otherwise the popup won't work correctly for the newly loaded items.
651
- echo 'jQuery.fn.slickYoutubePopUpFunction();';
652
- }
653
- // Reload the share each funcion otherwise you can't open share option.
654
- echo 'jQuery.fn.ftsShare();';
655
- // Reload our margin for the demo.
656
- echo 'if(typeof outputSRmargin === "function"){outputSRmargin(document.querySelector("#margin").value)}';
657
- echo 'slickremixImageResizingYouTube();'; // Reload our imagesizing function so the images show up proper.
658
-
659
- echo '}';
660
- echo '});';// end of ajax().
661
- echo 'return false;';
662
- // string $scrollMore is at top of this js script. acception for scroll option closing tag.
663
- if ( 'autoscroll' === $loadmore ) {
664
- echo '}';// end of scroll ajax load.
665
- }
666
- echo '});';// end of document.ready.
667
- echo '});';// end of form.submit.
668
- echo '</script>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
669
 
670
  }//End Check.
671
  // for gallery option play_video_in_iframe.
@@ -802,6 +853,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
802
  * @since 1.9.6
803
  */
804
  public function fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count ) {
 
805
  $fts_comments_thread_nonce = wp_create_nonce( 'fts-comments-thread-nonce' );
806
 
807
  if ( wp_verify_nonce( $fts_comments_thread_nonce, 'fts-comments-thread-nonce' ) ) {
@@ -874,10 +926,9 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
874
  *
875
  * @param string $video_id Video id.
876
  * @param string $youtube_api_key_or_token Youtube token.
877
- * @param string $youtube_access_token_new Youtube access token.
878
  * @since 1.9.6
879
  */
880
- public function fts_youtube_single_video_info( $video_id, $youtube_api_key_or_token, $youtube_access_token_new ) {
881
  $fts_single_video_nonce = wp_create_nonce( 'fts-single-video-thread-nonce' );
882
 
883
  if ( wp_verify_nonce( $fts_single_video_nonce, 'fts-single-video-thread-nonce' ) ) {
@@ -885,25 +936,16 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
885
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
886
 
887
  // Youtube Comment Cache.
888
- $youtube_single_video_cache_url = 'video_single_' . $video_id . '';
889
  }
890
  // https://developers.google.com/youtube/v3/docs/comments/list.
891
- $video['items'] = 'https://www.googleapis.com/youtube/v3/videos?id=' . $video_id . '&' . $youtube_api_key_or_token . '&part=snippet';
892
-
893
- // Youtube Use Comments Cache.
894
- if ( ( false !== $this->fts_check_feed_cache_exists( $youtube_single_video_cache_url ) && ! isset( $_GET['load_more_ajaxing'] ) ) && empty( $youtube_access_token_new ) ) {
895
- $video = json_decode( $this->fts_get_feed_cache( $youtube_single_video_cache_url ) );
896
- } else {
897
 
898
- $video_returned = $this->fts_get_feed_json( $video );
899
- $video = json_decode( $video_returned['items'] );
900
 
901
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
902
- $this->fts_create_feed_cache( $youtube_single_video_cache_url, $video );
903
- }
904
- }
905
 
906
- foreach ( $video->items as $video_data ) {
907
  $user_name_href = 'https://www.youtube.com/channel/' . $video_data->snippet->channelId;
908
  $channel_title = $video_data->snippet->channelTitle;
909
  $youtube_title = $this->fts_youtube_title( $video_data );
@@ -933,47 +975,6 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
933
  }
934
  }
935
 
936
-
937
- /**
938
- * Use Cache Check
939
- *
940
- * Checks to see if we need to use cache or not
941
- *
942
- * @param string|array $api_call API Call.
943
- * @param string $cache_name Cache name.
944
- * @return array|mixed
945
- * @throws \Exception Thow Exeption if all fails.
946
- * @since
947
- */
948
- public function use_cache_check( $api_call, $cache_name ) {
949
-
950
- // error_log( print_r( $api_call, true ) );
951
- // error_log( print_r( $cache_name, true ) );
952
- // error_log( print_r( 'NEXT!' ) );
953
- if ( true === $this->fts_check_feed_cache_exists( $cache_name ) ) {
954
- // Return Cache because it exists in Database.
955
- return $this->fts_get_feed_cache( $cache_name );
956
- }
957
-
958
- // Get Feed using API call.
959
- $feed_data = $this->fts_get_feed_json( $api_call );
960
-
961
- if ( ! empty( $feed_data ) && ! empty( $cache_name ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
962
-
963
- // Error Check.
964
- $fts_error_check = new fts_error_handler();
965
- $fts_error_check_complete = $fts_error_check->youtube_error_check( $feed_data );
966
-
967
- // YO! SRL: 4-15-22. added empty( $fts_error_check_complete ) because we are not getting a response if there is no error from our error handler. TODO: That function needs work.
968
- if ( is_array( $fts_error_check_complete ) && ( true === $fts_error_check_complete[0] || 1 === $fts_error_check_complete[0] ) || empty( $fts_error_check_complete ) ) {
969
- $this->fts_create_feed_cache( $cache_name, $feed_data );
970
- }
971
-
972
- }
973
-
974
- return $feed_data;
975
- }
976
-
977
  /**
978
  * Random String generator
979
  *
@@ -991,5 +992,4 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
991
 
992
  return $random_string;
993
  }
994
-
995
  }
72
 
73
  wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
74
 
75
+ // the way this refresh token works atm is. if the token is expired then we fetch a new token when any front end user views a page the feed is on.
76
+ // the ajax runs to fetch a new token if it's expired, then it saves it to the db, but because that happens after the user has already loaded the page,
77
+ // we need to show the cached feed so the feed does not return a token expired message. THEN after the next page reload the actual refreshed token will be in place.
78
+ // we still keep calling the cached version after that point so we are not uses up the API until the users deletes the cache or it is deleted per the determined time.
79
+ // this will not return the feed proper if token is expired need to fix this
80
+ if ( ! empty( $youtube_access_token ) ) {
81
+ // Double Check Our Expiration Time on the Token and refresh it if needed.
82
  $expiration_time = get_option( 'youtube_custom_token_exp_time' );
 
 
 
 
 
 
83
 
84
+ // Access token is good for 3600 seconds, that about an hour.
85
+ if ( time() > $expiration_time ) {
86
+ $this->feed_them_youtube_refresh_token();
87
  }
88
  }
89
 
 
90
  if ( ! empty( $youtube_access_token ) && empty( $youtube_api_key ) ) {
91
+ // this relies on our approved app from google.
92
+ // we are only using readme option from google now so we cannot get comments this way.
93
+ // that's fine though since we only allow to show comments in the premium version.
94
  $youtube_api_key_or_token = 'access_token=' . $youtube_access_token . '';
95
  } else {
96
+ // you must create your own youtube app now to get this.
97
+ // this is also the method required to show comments as well now.
98
  $youtube_api_key_or_token = 'key=' . $youtube_api_key . '';
99
  }
100
 
201
  $user_cache_name = 'yt_user_' . $username;
202
  }
203
 
204
+ $user_returned = $this->use_cache_check( $youtube_user_id_data, $user_cache_name, 'youtube' );
 
 
 
205
 
206
  // If the YT User returned is not empty and is an arary.
207
  if ( ! empty( $user_returned ) && is_array( $user_returned ) ) {
266
  $feed_cache_name = 'pics_vids_list_' . $channel_id . '_bnum' . $vid_count . '_channel';
267
  }
268
  } elseif ( ! empty( $playlist_id ) || ! empty( $playlist_id ) && ! empty( $channel_id ) ) {
269
+
270
+ // I don't understand the section here.. blllaaaaaahh need to clean this mess up!
271
+ // echo '<br/>playlistID shortcode in use: ';
272
+
273
+ $youtube_feed_api_url = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=' . $vid_count . '&playlistId=' . $playlist_id . '&order=date&' . $youtube_api_key_or_token ) );
274
 
275
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
276
  // Youtube Playlist Cache Folder.
284
  // echo ' why you no use cache check ';
285
  // echo $youtube_feed_api_url;
286
  // Call, fetch and Check data from API url!
287
+
288
+ // echo ' youtube URL: ';
289
+ // echo $youtube_feed_api_url;
290
+ $feed_returned = $this->use_cache_check( $youtube_feed_api_url, $feed_cache_name, 'youtube' );
291
 
292
  // JSON Decode the Feed Data.
293
  $videos = json_decode( $feed_returned['data'] );
294
+
295
+ // YO! This is the print_r you want to show most feeds.
296
+ // echo'playlistID and channelID shortcode used: <pre>';
297
+ // print_r($videos);
298
+ // echo'</pre>';
299
+
300
  }
301
  }
302
 
437
 
438
  echo '<div class="' . esc_attr( $set_comments_height ) . 'youtube-comments-wrap' . esc_attr( $wrap ) . '" style="display: block !important;">';
439
 
440
+ $this->fts_youtube_single_video_info( $video_id_or_link, $youtube_api_key_or_token );
441
 
442
  echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
443
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html__( 'View on YouTube', 'feed-them-premium' ) . '</a>';
444
+
445
+ // The comments will only work if the user has entered an API Key, an Access Token does not have enough permissions greanted to view comments.
446
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $comments_count ) && '0' !== $comments_count && !empty( get_option( 'youtube_custom_api_token' ) ) ) {
447
+ $this->fts_youtube_commentThreads( $video_id_or_link, $youtube_api_key_or_token, $comments_count );
448
  }
449
+
450
  echo '</div>';
451
+
452
  if ( 'right' !== $wrap || 'left' !== $wrap ) {
453
  echo '</div>';
454
  }
534
  ) . '</div>';
535
  echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
536
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html__( 'View on YouTube', 'feed-them-premium' ) . '</a>';
537
+ // The comments will only work if the user has entered an API Key, an Access Token does not have enough permissions greanted to view comments.
538
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $comments_count ) && '0' !== $comments_count && !empty( get_option( 'youtube_custom_api_token' ) ) ) {
539
+ $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
540
  }
541
  echo '</div>';
542
  }
571
  ) . '</div>';
572
  echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
573
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html__( 'View on YouTube', 'feed-them-premium' ) . '</a>';
574
+
575
+ // The comments will only work if the user has entered an API Key, an Access Token does not have enough permissions greanted to view comments.
576
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $comments_count ) && '0' !== $comments_count && !empty( get_option( 'youtube_custom_api_token' ) ) ) {
577
+ $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
578
  }
579
  echo '</div>';
580
  }
581
  }
582
  echo '</div>';
583
+ }
584
  $count++;
585
  if ( $count === $vid_count ) {
586
  break;
608
  // we check to see if the loadmore count number is set and if so pass that as the new count number when fetching the next set of pics/videos.
609
  $_REQUEST['next_url'] = ! empty( $loadmore ) ? str_replace( 'maxResults=' . $vid_count, 'maxResults=' . $loadmore_count, $next_url ) : $next_url;
610
 
611
+ ?><script>
612
+ var nextURL_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) ?>= "<?php echo esc_url_raw( $_REQUEST['next_url'] ) ?>";
613
+ </script>
614
+ <?php
615
  }
616
  // Make sure it's not ajaxing.
617
  if ( ! isset( $_GET['load_more_ajaxing'] ) && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! empty( $loadmore ) ) {
619
  $time = time();
620
  $nonce = wp_create_nonce( $time . 'load-more-nonce' );
621
  $fts_dynamic_class_name = $this->get_fts_dynamic_class_name();
622
+ ?>
623
+ <script>
624
+ jQuery(document).ready(function() {
625
+
626
+ <?php if ( 'autoscroll' === $loadmore ) { ?>
627
+
628
+
629
+ // If =autoscroll in shortcode.
630
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ) ?>").bind("scroll",function() {
631
+
632
+ // 4-9-22 SRL: added +1 because it needs an extra pixel of space to fire to function when shortcode is in smaller containers.
633
+ if( 1 + jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight ) {
634
+
635
+ console.log( jQuery(this).scrollTop() + jQuery(this).innerHeight() );
636
+ console.log( jQuery(this)[0].scrollHeight );
637
+
638
+ <?php }
639
+ else { ?>
640
+ // If =button in shortcode.
641
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").unbind().click(function() {
642
+ <?php } ?>
643
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").addClass("fts-fb-spinner");
644
+ var button = jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
645
+
646
+ console.log(button);
647
+ console.log(nextURL_<?php echo esc_js( $fts_dynamic_name ) ?>);
648
+
649
+ var yes_ajax = "yes";
650
+ var fts_d_name = "<?php echo esc_js( $fts_dynamic_name ) ?>";
651
+ var fts_security = "<?php echo esc_js( $nonce ) ?>";
652
+ var fts_time = "<?php echo esc_js( $time ) ?>";
653
+
654
+ var feed_name = "fts_youtube";
655
+ var loadmore_count = "vid_count=<?php echo esc_js( $loadmore_count ) ?>";
656
+ var feed_attributes = <?php echo wp_json_encode( $atts ) ?>;
657
+
658
+ jQuery.ajax({
659
+ data: {
660
+ action: "my_fts_fb_load_more",
661
+ next_url: nextURL_<?php echo esc_js( $fts_dynamic_name ) ?>,
662
+ fts_dynamic_name: fts_d_name,
663
+ feed_name: feed_name,
664
+ loadmore_count: loadmore_count,
665
+ feed_attributes: feed_attributes,
666
+ load_more_ajaxing: yes_ajax,
667
+ fts_security: fts_security,
668
+ fts_time: fts_time
669
+ },
670
+ type: "GET",
671
+ url: "<?php echo esc_url( admin_url( 'admin-ajax.php' ) ) ?>",
672
+ success: function( data ) {
673
+ console.log("Well Done and got this from sever: " + data);
674
+
675
+ var result = jQuery(".fts-youtube-popup-gallery.<?php echo esc_js( $fts_dynamic_class_name ) ?>").append(data).filter(".fts-youtube-popup-gallery.<?php echo esc_js( $fts_dynamic_class_name ) ?>").html();
676
+
677
+ jQuery(".fts-youtube-popup-gallery.<?php echo esc_js( $fts_dynamic_class_name ) ?>").html(result);
678
+
679
+ if( !nextURL_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) ?> || "no more" === nextURL_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) ?> ){
680
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $youtube_no_more_videos_text ) ?></div>');
681
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").removeAttr("id");
682
+ }
683
+ else {
684
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ) ?>").off('scroll');
685
+ }
686
+
687
+ <?php if ( 'button' === $loadmore ) { ?>
688
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").html("<?php echo esc_html( $youtube_load_more_text ) ?>");
689
+ <?php } ?>
690
+
691
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ) ?>").removeClass("fts-fb-spinner");
692
+
693
+ <?php if ( 'yes' === $popup ) { ?>
694
+ // We return this function again otherwise the popup won't work correctly for the newly loaded items.
695
+ jQuery.fn.slickYoutubePopUpFunction();
696
+ <?php } ?>
697
+
698
+ // Reload the share each funcion otherwise you can't open share option.
699
+ jQuery.fn.ftsShare();
700
+
701
+ // Reload our margin for the demo.
702
+ if(typeof outputSRmargin === "function"){
703
+ outputSRmargin(document.querySelector("#margin").value);
704
+ }
705
+
706
+ // Reload our image sizing function so the images show up proper.
707
+ slickremixImageResizingYouTube();
708
+ }
709
+ });// end of ajax().
710
+ return false;
711
+ // string $scrollMore is at top of this js script. exception for scroll option closing tag.
712
+ <?php if ( 'autoscroll' === $loadmore ) { ?>
713
+ };
714
+ }); // end of scroll ajax load.
715
+ <?php } else { ?>
716
+ }); // end of click button.
717
+ <?php } ?>
718
+ }); // end of document.ready.
719
+ </script><?php
720
 
721
  }//End Check.
722
  // for gallery option play_video_in_iframe.
853
  * @since 1.9.6
854
  */
855
  public function fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count ) {
856
+
857
  $fts_comments_thread_nonce = wp_create_nonce( 'fts-comments-thread-nonce' );
858
 
859
  if ( wp_verify_nonce( $fts_comments_thread_nonce, 'fts-comments-thread-nonce' ) ) {
926
  *
927
  * @param string $video_id Video id.
928
  * @param string $youtube_api_key_or_token Youtube token.
 
929
  * @since 1.9.6
930
  */
931
+ public function fts_youtube_single_video_info( $video_id, $youtube_api_key_or_token ) {
932
  $fts_single_video_nonce = wp_create_nonce( 'fts-single-video-thread-nonce' );
933
 
934
  if ( wp_verify_nonce( $fts_single_video_nonce, 'fts-single-video-thread-nonce' ) ) {
936
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
937
 
938
  // Youtube Comment Cache.
939
+ $youtube_single_video_cache_name = 'video_single_' . $video_id . '';
940
  }
941
  // https://developers.google.com/youtube/v3/docs/comments/list.
942
+ $api_url['items'] = 'https://www.googleapis.com/youtube/v3/videos?id=' . $video_id . '&' . $youtube_api_key_or_token . '&part=snippet';
 
 
 
 
 
943
 
944
+ $video = $this->use_cache_check( $api_url, $youtube_single_video_cache_name, 'youtube_single' );
 
945
 
946
+ $feed_data = json_decode( $video['items'] );
 
 
 
947
 
948
+ foreach ( $feed_data->items as $video_data ) {
949
  $user_name_href = 'https://www.youtube.com/channel/' . $video_data->snippet->channelId;
950
  $channel_title = $video_data->snippet->channelTitle;
951
  $youtube_title = $this->fts_youtube_title( $video_data );
975
  }
976
  }
977
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
978
  /**
979
  * Random String generator
980
  *
992
 
993
  return $random_string;
994
  }
 
995
  }
includes/error-handler.php CHANGED
@@ -19,230 +19,278 @@ namespace feedthemsocial;
19
  */
20
  class fts_error_handler {
21
 
22
- /**
23
- * Ouput string
24
- *
25
- * @var string
26
- */
27
- public $output = '';
28
-
29
- /**
30
- * Construct
31
- *
32
- * Error Handler constructor.
33
- *
34
- * @since 1.9.6
35
- */
36
- public function __construct() {
37
- add_action( 'admin_init', array( $this, 'fts_plugin_version_check' ) );
38
- }
39
-
40
- /**
41
- * FTS Versions Needed
42
- *
43
- * Define minimum premium version allowed to be active with Free Version.
44
- *
45
- * @return array
46
- * @since 1.9.6
47
- */
48
- public function fts_versions_needed() {
49
- $fts_versions_needed = array(
50
- 'feed-them-premium/feed-them-premium.php' => array(
51
- 'clean_name' => __( 'Feed Them Premium', 'feed-them-social' ),
52
- 'version_needed' => '1.5.3',
53
- ),
54
- 'fts-bar/fts-bar.php' => array(
55
- 'clean_name' => __( 'FTS Bar', 'feed-them-social' ),
56
- 'version_needed' => '1.0.8',
57
- ),
58
- 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' => array(
59
- 'clean_name' => __( 'Feed Them Social Facebook Reviews', 'feed-them-social' ),
60
- 'version_needed' => '1.0.0',
61
- ),
62
- 'feed-them-carousel-premium/feed-them-carousel-premium.php' => array(
63
- 'clean_name' => __( 'Feed Them Carousel Premium', 'feed-them-social' ),
64
- 'version_needed' => '1.0.0',
65
- ),
66
- 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' => array(
67
- 'clean_name' => __( 'Feed Them Social Combined Streams', 'feed-them-social' ),
68
- 'version_needed' => '1.1.1',
69
- ),
70
- );
71
- return $fts_versions_needed;
72
- }
73
-
74
- /**
75
- * FTS Plugin Version Check
76
- *
77
- * Make sure plugins are Proper Version if need be.
78
- *
79
- * @throws \Exception Don't let old plugins activate.
80
- * @since 1.9.6
81
- */
82
- public function fts_plugin_version_check() {
83
- // return error if no data retreived!
84
- try {
85
- $update_msg = __( 'Please update ALL Premium Extensions for Feed Them Social because they will no longer work with this version of Feed Them Social. We have made some Major Changes to the Core of the plugin to help with plugin conflicts. Please update your extensions from your <a href="https://www.slickremix.com/my-account" target="_blank">My Account</a> page on our website if you are not receiving notifications for updates on the premium extensions. Thanks again for using our plugin!', 'feed-them-social' );
86
-
87
- $plugins = get_plugins();
88
-
89
- if ( ! function_exists( 'is_plugin_active' ) || ! function_exists( 'deactivate_plugins' ) ) {
90
- require_once ABSPATH . '/wp-admin/includes/plugin.php';
91
- }
92
-
93
- $fts_versions_needed = $this->fts_versions_needed();
94
-
95
- foreach ( $fts_versions_needed as $single_plugin => $plugin_info ) {
96
-
97
- if ( isset( $plugins[ $single_plugin ] ) ) {
98
- // Check Version Compatibility if Extensions are not a new enough version deactivate them and throw errors!
99
- if ( $plugins[ $single_plugin ]['Version'] < $fts_versions_needed[ $single_plugin ]['version_needed'] && is_plugin_active( $single_plugin ) ) {
100
- deactivate_plugins( $single_plugin );
101
-
102
- // Don't Let Old Plugins Activate!
103
- throw new \Exception( '<div class="fts-update-message fts_old_plugins_message">' . $update_msg . '</div>' );
104
- }
105
- }
106
- }
107
- } catch ( \Exception $e ) {
108
- add_action(
109
- 'admin_notices',
110
- function () use ( $e ) {
111
- echo wp_kses(
112
- $e->getMessage(),
113
- array(
114
- 'a' => array(
115
- 'href' => array(),
116
- 'target' => array(),
117
- ),
118
- 'div' => array(
119
- 'class' => array(),
120
- ),
121
- )
122
- );
123
- }
124
- );
125
- return true;
126
- }
127
- return false;
128
- }
129
-
130
- /**
131
- * Facebook Error Check
132
- *
133
- * @param string $fb_shortcode shortcode.
134
- * @param string $feed_data feed data.
135
- * @return array
136
- * @throws \Exception Don't let old plugins activate.
137
- * @since 1.9.6
138
- */
139
- public function facebook_error_check( $fb_shortcode, $feed_data ) {
140
- // return error if no data retrieved!
141
- try {
142
- if ( ! isset( $feed_data->data ) || empty( $feed_data->data ) ) {
143
- // Solution Text!
144
- $solution_text = 'Here are some possible solutions to fix the error.';
145
- // ID Error!
146
- if ( isset( $feed_data->error ) && 803 === $feed_data->error->code ) {
147
- if ( false !== strpos( $feed_data->error->message, '(#803) Cannot query users by their username' ) || 'group' === $fb_shortcode['type'] ) {
148
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . '.2 - Cannot query users by their username. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-803-2" target="_blank">' . $solution_text . '</a></div>' );
149
- } else {
150
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - Facebook cannot find this ID. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-803" target="_blank">' . $solution_text . '</a></div>' );
151
- }
152
- } elseif ( isset( $feed_data->error ) && ( 341 === $feed_data->error->code || 4 === $feed_data->error->code || 17 === $feed_data->error->code ) ) {
153
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - Too many calls made to Facebook. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-rate-limiting" target="_blank">' . $solution_text . '</a></div>' );
154
- } elseif ( isset( $feed_data->error ) && 190 === $feed_data->error->code ) {
155
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - Error validating application. Invalid application ID. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-invalid-app-id" target="_blank">' . $solution_text . '</a></div>' );
156
- } elseif ( isset( $feed_data->error ) && 104 === $feed_data->error->code ) {
157
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - An access token is required to request this resource. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
158
- } elseif ( isset( $feed_data->error ) && 210 === $feed_data->error->code ) {
159
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - This call requires a Page access token. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
160
- } elseif ( isset( $feed_data->error ) && 100 === $feed_data->error->code ) {
161
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - This Page may not be public. <a style="color:red !important;" href="http://www.slickremix.com/docs/facebook-error-messages/#error-100" target="_blank">' . $solution_text . '</a></div>' );
162
- } elseif ( 'group' === $fb_shortcode['type'] && isset( $feed_data->error ) && 1 === $feed_data->error->code ) {
163
- $solution_text = 'Please view this link for a temporary solution.';
164
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - The group feed is experiencing a known error at this time. <a style="color:red !important;" href="http://www.slickremix.com/docs/facebook-error-messages/#group-feed-error-pinned-post" target="_blank">' . $solution_text . '</a></div>' );
165
- } elseif ( 'reviews' === $fb_shortcode['type'] && ( empty( $feed_data->data ) || ! isset( $feed_data->data ) ) ) {
166
- // Rate Limit Exceeded!
167
- throw new \Exception( '<div style="clear:both; padding:15px 0;">No Reviews Found or You may not have Admin Permissions for this page. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-no-reviews" target="_blank">' . $solution_text . '</a></div>' );
168
- } elseif ( isset( $feed_data->error ) ) {
169
- // If Custom Exception is not needed but still error then throw ugly error.
170
- if ( isset( $feed_data->error->message ) ) {
171
- $output = 'Error: ' . $feed_data->error->message;
172
- }
173
- if ( isset( $feed_data->error->type ) ) {
174
- $output .= '<br />Type: ' . $feed_data->error->type;
175
- }
176
- if ( isset( $feed_data->error->code ) ) {
177
- $output .= '<br />Code: ' . $feed_data->error->code;
178
- }
179
- if ( isset( $feed_data->error->error_subcode ) ) {
180
- $output .= '<br />Subcode:' . $feed_data->error->error_subcode;
181
- }
182
- // If just code.
183
- if ( isset( $feed_data->error_msg ) ) {
184
- $output = 'Error: ' . $feed_data->error_msg;
185
- }
186
- if ( isset( $feed_data->error_code ) ) {
187
- $output .= '<br />Code: ' . $feed_data->error_code;
188
- }
189
- throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
190
- }
191
- }
192
- } catch ( \Exception $e ) {
193
- $fb_hide_error_handler_message = get_option( 'fb_hide_error_handler_message' ) && 'yes' === get_option( 'fb_hide_error_handler_message' ) ? 'yes' : 'no';
194
- if ( 'no' === $fb_hide_error_handler_message ) {
195
- return array( true, $e->getMessage() );
196
- } else {
197
- return array( true, '' );
198
- }
199
- }
200
-
201
- return;
202
- }
203
-
204
- /**
205
- * Youtube Error Check
206
- *
207
- * @param string|array $feed_data feed data.
208
- * @return string|array
209
- * @throws \Exception Don't let old plugins activate.
210
- * @since 1.9.6
211
- */
212
- public function youtube_error_check( $feed_data ) {
213
-
214
- // print_r($feed_data);
215
- $feed_data = json_decode( $feed_data['data'] );
216
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  //error_log( print_r( $feed_data, true ) );
218
 
219
- // return error if no data retrieved!
220
- // print_r($feed_data);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
 
222
- try {
223
- if ( ! isset( $feed_data->data ) || empty( $feed_data->data ) ) {
224
-
225
- $solution_text = 'Here are some possible solutions to fix the error.';
226
- if ( isset( $feed_data->error ) && 400 === $feed_data->error->code ) {
227
- throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - A VALID access token is required to request this resource. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
228
- }
229
- if ( isset( $feed_data->error ) ) {
230
- // If Custom Exception is not needed but still error then throw ugly error.
231
- if ( isset( $feed_data->error->message ) ) {
232
- $output = 'Error: ' . $feed_data->error->message;
233
- }
234
- if ( isset( $feed_data->error->code ) ) {
235
- $output .= '<br />Code: ' . $feed_data->error->code;
236
- }
237
-
238
- throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
239
- }
240
  // Below not being used.
241
  // throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">'.esc_html__('Oops, It appears something is wrong with this YouTube feed. Are there videos posted on the YouTube account?').'</div>' );
242
- }
243
- } catch ( \Exception $e ) {
244
- return array( true, $e->getMessage() );
245
- }
246
- }
247
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
 
 
19
  */
20
  class fts_error_handler {
21
 
22
+ /**
23
+ * Ouput string
24
+ *
25
+ * @var string
26
+ */
27
+ public $output = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
+ /**
30
+ * Construct
31
+ *
32
+ * Error Handler constructor.
33
+ *
34
+ * @since 1.9.6
35
+ */
36
+ public function __construct () {
37
+ add_action( 'admin_init', array($this, 'fts_plugin_version_check') );
38
+ }
39
+
40
+ /**
41
+ * FTS Versions Needed
42
+ *
43
+ * Define minimum premium version allowed to be active with Free Version.
44
+ *
45
+ * @return array
46
+ * @since 1.9.6
47
+ */
48
+ public function fts_versions_needed () {
49
+ $fts_versions_needed = array(
50
+ 'feed-them-premium/feed-them-premium.php' => array(
51
+ 'clean_name' => __( 'Feed Them Premium', 'feed-them-social' ),
52
+ 'version_needed' => '1.5.3',
53
+ ),
54
+ 'fts-bar/fts-bar.php' => array(
55
+ 'clean_name' => __( 'FTS Bar', 'feed-them-social' ),
56
+ 'version_needed' => '1.0.8',
57
+ ),
58
+ 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' => array(
59
+ 'clean_name' => __( 'Feed Them Social Facebook Reviews', 'feed-them-social' ),
60
+ 'version_needed' => '1.0.0',
61
+ ),
62
+ 'feed-them-carousel-premium/feed-them-carousel-premium.php' => array(
63
+ 'clean_name' => __( 'Feed Them Carousel Premium', 'feed-them-social' ),
64
+ 'version_needed' => '1.0.0',
65
+ ),
66
+ 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' => array(
67
+ 'clean_name' => __( 'Feed Them Social Combined Streams', 'feed-them-social' ),
68
+ 'version_needed' => '1.1.1',
69
+ ),
70
+ );
71
+ return $fts_versions_needed;
72
+ }
73
+
74
+ /**
75
+ * FTS Plugin Version Check
76
+ *
77
+ * Make sure plugins are Proper Version if need be.
78
+ *
79
+ * @throws \Exception Don't let old plugins activate.
80
+ * @since 1.9.6
81
+ */
82
+ public function fts_plugin_version_check () {
83
+ // return error if no data retreived!
84
+ try {
85
+ $update_msg = __( 'Please update ALL Premium Extensions for Feed Them Social because they will no longer work with this version of Feed Them Social. We have made some Major Changes to the Core of the plugin to help with plugin conflicts. Please update your extensions from your <a href="https://www.slickremix.com/my-account" target="_blank">My Account</a> page on our website if you are not receiving notifications for updates on the premium extensions. Thanks again for using our plugin!', 'feed-them-social' );
86
+
87
+ $plugins = get_plugins();
88
+
89
+ if ( !function_exists( 'is_plugin_active' ) || !function_exists( 'deactivate_plugins' ) ) {
90
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
91
+ }
92
+
93
+ $fts_versions_needed = $this->fts_versions_needed();
94
+
95
+ foreach ( $fts_versions_needed as $single_plugin => $plugin_info ) {
96
+
97
+ if ( isset( $plugins[$single_plugin] ) ) {
98
+ // Check Version Compatibility if Extensions are not a new enough version deactivate them and throw errors!
99
+ if ( $plugins[$single_plugin]['Version'] < $fts_versions_needed[$single_plugin]['version_needed'] && is_plugin_active( $single_plugin ) ) {
100
+ deactivate_plugins( $single_plugin );
101
+
102
+ // Don't Let Old Plugins Activate!
103
+ throw new \Exception( '<div class="fts-update-message fts_old_plugins_message">' . $update_msg . '</div>' );
104
+ }
105
+ }
106
+ }
107
+ } catch (\Exception $e) {
108
+ add_action(
109
+ 'admin_notices',
110
+ function () use ($e) {
111
+ echo wp_kses(
112
+ $e->getMessage(),
113
+ array(
114
+ 'a' => array(
115
+ 'href' => array(),
116
+ 'target' => array(),
117
+ ),
118
+ 'div' => array(
119
+ 'class' => array(),
120
+ ),
121
+ )
122
+ );
123
+ }
124
+ );
125
+ return true;
126
+ }
127
+ return false;
128
+ }
129
+
130
+ /**
131
+ * Facebook Error Check
132
+ *
133
+ * @param string $fb_shortcode shortcode.
134
+ * @param string $feed_data feed data.
135
+ * @return array
136
+ * @throws \Exception
137
+ * @since 1.9.6
138
+ */
139
+ public function facebook_error_check ($fb_shortcode, $feed_data) {
140
+ // return error if no data retrieved!
141
+ try {
142
+ if ( !isset( $feed_data->data ) || empty( $feed_data->data ) ) {
143
+ // Solution Text!
144
+ $solution_text = 'Here are some possible solutions to fix the error.';
145
+ // ID Error!
146
+ if ( isset( $feed_data->error ) && 803 === $feed_data->error->code ) {
147
+ if ( false !== strpos( $feed_data->error->message, '(#803) Cannot query users by their username' ) || 'group' === $fb_shortcode['type'] ) {
148
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . '.2 - Cannot query users by their username. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-803-2" target="_blank">' . $solution_text . '</a></div>' );
149
+ } else {
150
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - Facebook cannot find this ID. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-803" target="_blank">' . $solution_text . '</a></div>' );
151
+ }
152
+ } elseif ( isset( $feed_data->error ) && (341 === $feed_data->error->code || 4 === $feed_data->error->code || 17 === $feed_data->error->code) ) {
153
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - Too many calls made to Facebook. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-rate-limiting" target="_blank">' . $solution_text . '</a></div>' );
154
+ } elseif ( isset( $feed_data->error ) && 190 === $feed_data->error->code ) {
155
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - Error validating application. Invalid application ID. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-invalid-app-id" target="_blank">' . $solution_text . '</a></div>' );
156
+ } elseif ( isset( $feed_data->error ) && 104 === $feed_data->error->code ) {
157
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - An access token is required to request this resource. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
158
+ } elseif ( isset( $feed_data->error ) && 210 === $feed_data->error->code ) {
159
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - This call requires a Page access token. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
160
+ } elseif ( isset( $feed_data->error ) && 100 === $feed_data->error->code ) {
161
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - This Page may not be public. <a style="color:red !important;" href="http://www.slickremix.com/docs/facebook-error-messages/#error-100" target="_blank">' . $solution_text . '</a></div>' );
162
+ } elseif ( 'group' === $fb_shortcode['type'] && isset( $feed_data->error ) && 1 === $feed_data->error->code ) {
163
+ $solution_text = 'Please view this link for a temporary solution.';
164
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - The group feed is experiencing a known error at this time. <a style="color:red !important;" href="http://www.slickremix.com/docs/facebook-error-messages/#group-feed-error-pinned-post" target="_blank">' . $solution_text . '</a></div>' );
165
+ } elseif ( 'reviews' === $fb_shortcode['type'] && (empty( $feed_data->data ) || !isset( $feed_data->data )) ) {
166
+ // Rate Limit Exceeded!
167
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">No Reviews Found or You may not have Admin Permissions for this page. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-no-reviews" target="_blank">' . $solution_text . '</a></div>' );
168
+ } elseif ( isset( $feed_data->error ) ) {
169
+ // If Custom Exception is not needed but still error then throw ugly error.
170
+ if ( isset( $feed_data->error->message ) ) {
171
+ $output = 'Error: ' . $feed_data->error->message;
172
+ }
173
+ if ( isset( $feed_data->error->type ) ) {
174
+ $output .= '<br />Type: ' . $feed_data->error->type;
175
+ }
176
+ if ( isset( $feed_data->error->code ) ) {
177
+ $output .= '<br />Code: ' . $feed_data->error->code;
178
+ }
179
+ if ( isset( $feed_data->error->error_subcode ) ) {
180
+ $output .= '<br />Subcode:' . $feed_data->error->error_subcode;
181
+ }
182
+ // If just code.
183
+ if ( isset( $feed_data->error_msg ) ) {
184
+ $output = 'Error: ' . $feed_data->error_msg;
185
+ }
186
+ if ( isset( $feed_data->error_code ) ) {
187
+ $output .= '<br />Code: ' . $feed_data->error_code;
188
+ }
189
+ throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
190
+ }
191
+ }
192
+ } catch (\Exception $e) {
193
+ $fb_hide_error_handler_message = get_option( 'fb_hide_error_handler_message' ) && 'yes' === get_option( 'fb_hide_error_handler_message' ) ? 'yes' : 'no';
194
+ if ( 'no' === $fb_hide_error_handler_message ) {
195
+ return array(true, $e->getMessage());
196
+ } else {
197
+ return array(true, '');
198
+ }
199
+ }
200
+
201
+ return null;
202
+ }
203
+
204
+ /**
205
+ * Youtube Error Check
206
+ *
207
+ * @param string|array $feed_data feed data.
208
+ * @return string|array
209
+ * @throws \Exception
210
+ * @since 1.9.6
211
+ */
212
+ public function youtube_error_check ( $feed_data ) {
213
  //error_log( print_r( $feed_data, true ) );
214
 
215
+ // return error if no data retrieved!
216
+ // print_r($feed_data);
217
+
218
+ try {
219
+ if ( !isset( $feed_data->data ) || empty( $feed_data->data ) ) {
220
+
221
+ $solution_text = 'Here are some possible solutions to fix the error.';
222
+ if ( isset( $feed_data->error ) && 400 === $feed_data->error->code ) {
223
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - A Valid access token is required to request this resource. <a style="color:red !important;" target="_blank" href="https://www.slickremix.com/docs/youtube-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
224
+ }
225
+ if ( isset( $feed_data->error ) ) {
226
+ // If Custom Exception is not needed but still error then throw ugly error.
227
+ if ( isset( $feed_data->error->message ) ) {
228
+ $output = 'Error: ' . $feed_data->error->message;
229
+ }
230
+ if ( isset( $feed_data->error->code ) ) {
231
+ $output .= '<br />Code: ' . $feed_data->error->code;
232
+ }
233
 
234
+ throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
235
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  // Below not being used.
237
  // throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">'.esc_html__('Oops, It appears something is wrong with this YouTube feed. Are there videos posted on the YouTube account?').'</div>' );
238
+ }
239
+ } catch (\Exception $e) {
240
+ return array(true, $e->getMessage());
241
+ }
242
+
243
+ return null;
244
+ }
245
+
246
+
247
+ /**
248
+ * Instagram Error Check
249
+ *
250
+ * @param string|array $feed_data feed data.
251
+ * @return string|array
252
+ * @throws \Exception Don't let old plugins activate.
253
+ * @since 1.9.6
254
+ */
255
+ public function instagram_error_check ( $feed_data ) {
256
+ // return error if no data retrieved!
257
+
258
+ // echo ' instagram_error_check ';
259
+
260
+ // print_r($feed_data);
261
+
262
+ try {
263
+ if ( !isset( $feed_data->data ) || empty( $feed_data->data ) ) {
264
+
265
+ ///echo ' POPOPOPOPOPOPOPOPOPOPOPOPOPPOPOPOPO';
266
+ $solution_text = 'Here are some possible solutions to fix the error.';
267
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">A Valid access token is required to request this resource. <a style="color:red !important;" target="_blank" href="https://www.slickremix.com/docs/instagram-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
268
+
269
+ // if ( empty( $feed_data->data ) ) {
270
+ // }
271
+
272
+ // Not using below for now because instagram does not return an error message unfortunately in the form of an array.
273
+ /* if ( isset( $feed_data->error ) ) {
274
+ // If Custom Exception is not needed but still error then throw ugly error.
275
+ if ( isset( $feed_data->error->message ) ) {
276
+ $output = 'Error: ' . $feed_data->error->message;
277
+ }
278
+ if ( isset( $feed_data->error->code ) ) {
279
+ $output .= '<br />Code: ' . $feed_data->error->code;
280
+ }
281
+
282
+ throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
283
+ }*/
284
+
285
+ // Below not being used.
286
+ // throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">'.esc_html__('Oops, It appears something is wrong with this Instagram feed. Are there videos posted on the YouTube account?').'</div>' );
287
+ }
288
+ } catch (\Exception $e) {
289
+ // echo ' instagram_error_check ';
290
+ return array(true, $e->getMessage());
291
+ }
292
+
293
+ return null;
294
+ }
295
 
296
+ }// END Class.
includes/feed-them-functions.php CHANGED
@@ -39,7 +39,10 @@ class feed_them_social_functions {
39
  add_action( 'wp_ajax_fts_clear_cache_ajax', array( $this, 'fts_clear_cache_ajax' ) );
40
  }
41
  add_action( 'wp_ajax_fts_encrypt_token_ajax', array( $this, 'fts_encrypt_token_ajax' ) );
 
42
  add_action( 'wp_ajax_fts_refresh_token_ajax', array( $this, 'fts_refresh_token_ajax' ) );
 
 
43
  add_action( 'wp_ajax_fts_instagram_token_ajax', array( $this, 'fts_instagram_token_ajax' ) );
44
 
45
  if ( is_admin() || is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) || is_plugin_active( 'fts-bar/fts-bar.php' ) ) {
@@ -180,11 +183,13 @@ class feed_them_social_functions {
180
  $fts_refresh_token_nonce = wp_create_nonce( 'fts_token_nonce' );
181
  $access_token = $_REQUEST['access_token'];
182
  $user_id = $_REQUEST['user_id'];
 
183
 
184
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_token_nonce' ) ) {
185
  if ( isset( $access_token ) ) {
186
  update_option( 'fts_instagram_custom_api_token', sanitize_text_field( $access_token ) );
187
  update_option( 'fts_instagram_custom_id', sanitize_text_field( $user_id ) );
 
188
  }
189
  }
190
  die;
@@ -249,8 +254,7 @@ class feed_them_social_functions {
249
  $raw_token = $_GET['code'];
250
  $feed_type = $_GET['feed_type'];
251
  $user_id = $_GET['user_id'];
252
-
253
-
254
 
255
  if ( isset( $raw_token ) && 'original_instagram' === $feed_type || isset( $raw_token ) && 'instagram_basic' === $feed_type ) {
256
  $encrypted_token = $this->data_protection->encrypt( $raw_token );
@@ -263,11 +267,18 @@ class feed_them_social_functions {
263
  var access_token = '<?php echo sanitize_text_field( $encrypted_token ); ?>';
264
  var user_id = '<?php echo sanitize_text_field( $user_id ); ?>';
265
 
 
 
 
 
 
 
266
  jQuery.ajax({
267
  data: {
268
  action: 'fts_instagram_token_ajax',
269
  access_token: access_token,
270
  user_id: user_id,
 
271
  },
272
  type: 'POST',
273
  url: ftsAjax.ajaxurl,
@@ -602,8 +613,6 @@ class feed_them_social_functions {
602
  jQuery('.fb-sublist-page-id-<?php echo esc_js( $fb_page_id ); ?>').append(data).filter('.fb-sublist-page-id-<?php echo esc_js( $fb_page_id ); ?>').html();
603
  jQuery('.fb-sublist-page-id-<?php echo esc_js( $fb_page_id ); ?>').animate({scrollTop: '+=100px'}, 800); // scroll down a 100px after new items are added
604
 
605
-
606
-
607
  <?php if ( isset( $data->locations->paging->next ) && $data->locations->paging->next === $_REQUEST['next_location_url'] ) { ?>
608
  jQuery('#loadMore_<?php echo esc_js( $fb_page_id ); ?>_location').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb fts-no-more-locations-<?php echo esc_js( $fb_page_id ); ?>" style="background:none !important"><?php echo esc_html( 'All Locations loaded', 'feed-them-social' ); ?></div>');
609
  jQuery('#loadMore_<?php echo esc_js( $fb_page_id ); ?>_location').removeAttr('id');
@@ -1297,6 +1306,7 @@ class feed_them_social_functions {
1297
  public function fts_instagram_style_options_page() {
1298
  $instagram_style_options = array(
1299
  'fts_instagram_custom_api_token',
 
1300
  'fts_instagram_custom_id',
1301
  'instagram_show_follow_btn',
1302
  'instagram_show_follow_btn_where',
@@ -2949,8 +2959,11 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
2949
  // Is there old Cache? If so Delete it!
2950
  if ( true === $this->fts_check_feed_cache_exists( $transient_name ) ) {
2951
  // Make Sure to delete old permanent cache before setting up new cache!
2952
- $this->delete_permanent_feed_cache( $transient_name );
2953
  }
 
 
 
2954
  // Cache Time set on Settings Page under FTS Tab.
2955
  $cache_time_limit = true === get_option( 'fts_clear_cache_developer_mode' ) && '1' !== get_option( 'fts_clear_cache_developer_mode' ) ? get_option( 'fts_clear_cache_developer_mode' ) : '900';
2956
 
@@ -2977,16 +2990,20 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
2977
 
2978
  // If Error use Permanent Cache!
2979
  if ( true === $errored ) {
 
 
2980
  $trans = get_transient( 'fts_p_' . $transient_name );
2981
  }
2982
  else{
2983
  // If no error use Timed Cache!
2984
  $trans = get_transient( 'fts_t_' . $transient_name );
 
 
2985
  }
2986
 
2987
  // YO!
2988
- // echo '<br/>GET CACHE What is the response at this point:<br/>';
2989
- // print_r($trans);
2990
 
2991
  if ($trans){
2992
 
@@ -3057,6 +3074,11 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3057
  $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_timeout_fts_t_%' ) );
3058
 
3059
  wp_reset_query();
 
 
 
 
 
3060
  }
3061
 
3062
  /**
@@ -3126,7 +3148,7 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3126
  $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_p_' . $transient_name ) );
3127
 
3128
  wp_reset_query();
3129
- return 'Cache for this feed cleared!';
3130
  }
3131
 
3132
  /**
@@ -3166,7 +3188,7 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3166
  'id' => 'feed_them_social_admin_set_cache',
3167
  'parent' => 'feed_them_social_admin_bar',
3168
  'title' => __( 'Clear Cache', 'feed-them-social' ),
3169
- 'href' => '#',
3170
  'meta' => array('onclick' => 'fts_ClearCache();') //JavaScript function trigger just as an example.
3171
  )
3172
  );
@@ -3403,6 +3425,11 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3403
  }
3404
  }
3405
 
 
 
 
 
 
3406
  // Instagram date time!
3407
  if ( 'instagram' === $feed_type ) {
3408
  if ( 'one-day-ago' === $custom_date_check ) {
@@ -3483,87 +3510,145 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3483
  $fts_refresh_token_nonce = wp_create_nonce( 'fts_refresh_token_nonce' );
3484
 
3485
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_refresh_token_nonce' ) ) {
3486
- if ( isset( $_REQUEST['refresh_token'], $_REQUEST['button_pushed'] ) && 'yes' === $_REQUEST['button_pushed'] ) {
3487
- update_option( 'youtube_custom_refresh_token', sanitize_text_field( wp_unslash( $_REQUEST['refresh_token'] ) ) );
 
 
 
 
 
 
 
 
3488
  }
3489
- if ( isset( $_REQUEST['access_token'] ) ) {
3490
- update_option( 'youtube_custom_access_token', sanitize_text_field( wp_unslash( $_REQUEST['access_token'] ) ) );
 
 
 
 
 
 
 
3491
  }
3492
- $startoftime = isset( $_REQUEST['expires_in'] ) ? strtotime( '+' . sanitize_text_field( wp_unslash( $_REQUEST['expires_in'] ) ) . ' seconds' ) : '';
3493
- $start_of_time_final = false !== $startoftime ? sanitize_key( $startoftime ) : '';
3494
- update_option( 'youtube_custom_token_exp_time', $start_of_time_final );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3495
 
3496
  // This only happens if the token is expired on the YouTube Options page and you go to re-save or refresh the page for some reason. It will also run this function if the cache is emptied and the token is found to be expired.
3497
  if ( 'no' === $_REQUEST['button_pushed'] ) {
3498
- return 'Token Refreshed';
3499
  // $output .= do_shortcode('[fts _youtube vid_count=3 large_vid=no large_vid_title=no large_vid_description=no thumbs_play_in_iframe=popup vids_in_row=3 space_between_videos=1px force_columns=yes maxres_thumbnail_images=yes thumbs_wrap_color=#000 wrap=none video_wrap_display=none comments_count=12 channel_id=UCqhnX4jA0A5paNd1v-zEysw loadmore=button loadmore_count=5 loadmore_btn_maxwidth=300px loadmore_btn_margin=10px]');
3500
  }
3501
  }
3502
 
 
 
 
 
3503
  }
3504
 
3505
  /**
3506
- * FTS Check YouTube Token Validity
3507
  *
3508
  * @since 2.3.3
3509
  */
3510
- public function feed_them_youtube_refresh_token() {
3511
 
3512
  $fts_refresh_token_nonce = wp_create_nonce( 'fts_refresh_token_nonce' );
3513
 
3514
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_refresh_token_nonce' ) ) {
3515
 
3516
  // Used some methods from this link http://ieg.wnet.org/2015/09/using-oauth-in-wordpress-plugins-part-2-persistence/
3517
- // save all 3 get options: happens when clicking the get access token button on the youtube options page!
3518
- if ( isset( $_GET['refresh_token'], $_GET['code'] ) && isset( $_GET['expires_in'] ) ) {
3519
  $button_pushed = 'yes';
3520
- $clienttoken_post['refresh_token'] = sanitize_text_field( wp_unslash( $_GET['refresh_token'] ) );
3521
- $auth_obj['access_token'] = sanitize_text_field( wp_unslash( $_GET['code'] ) );
3522
  $auth_obj['expires_in'] = sanitize_key( wp_unslash( $_GET['expires_in'] ) );
3523
  } else {
3524
  // refresh token!
3525
  $button_pushed = 'no';
3526
- $oauth2token_url = 'https://accounts.google.com/o/oauth2/token';
3527
- $clienttoken_post = array(
3528
- 'client_id' => '802796800957-6nannpdq8h8l720ls430ahnnq063n22u.apps.googleusercontent.com',
3529
- 'client_secret' => 'CbieVhgOudjrpya1IDpv3uRa',
3530
- );
3531
- // The "refresh token" grant type is to use a refresh token to get a new access token!
3532
- $clienttoken_post['refresh_token'] = get_option( 'youtube_custom_refresh_token' );
3533
- $clienttoken_post['grant_type'] = 'refresh_token';
3534
 
3535
- $postargs = array(
3536
- 'body' => $clienttoken_post,
3537
- );
3538
- $response = wp_remote_post( $oauth2token_url, $postargs );
3539
- $auth_obj = json_decode( wp_remote_retrieve_body( $response ), true );
3540
- }
3541
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3542
  <script>
3543
  jQuery(document).ready(function () {
 
 
3544
  jQuery.ajax({
3545
  data: {
3546
  action: "fts_refresh_token_ajax",
3547
- refresh_token: '<?php echo esc_js( $clienttoken_post['refresh_token'] ); ?>',
3548
- access_token: '<?php echo esc_js( $auth_obj['access_token'] ); ?>',
3549
- expires_in: '<?php echo esc_js( $auth_obj['expires_in'] ); ?>',
3550
- button_pushed: '<?php echo esc_js( $button_pushed ); ?>'
3551
  },
3552
  type: 'POST',
3553
  url: ftsAjax.ajaxurl,
3554
  success: function (response) {
3555
  console.log(response);
3556
  <?php
3557
- if ( isset( $_GET['page'] ) && 'fts-youtube-feed-styles-submenu-page' === $_GET['page'] ) {
3558
 
3559
  $user_id = $auth_obj;
3560
- $error_response = $user_id->error->errors[0]->message ? 'true' : 'false';
3561
  $type_of_key = __( 'Access Token', 'feed-them-social' );
3562
 
3563
  // Error Check!
3564
  if ( 'true' === $error_response ) {
3565
- $fts_youtube_message = sprintf(
3566
- esc_html( '%1$s This %2$s does not appear to be valid. YouTube responded with: %3$s %4$s ', 'feed-them-social' ),
3567
  '<div class="fts-failed-api-token">',
3568
  esc_html( $type_of_key ),
3569
  esc_html( $user_id->error->errors[0]->message ),
@@ -3571,7 +3656,7 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3571
  );
3572
  }
3573
  else {
3574
- $fts_youtube_message = sprintf(
3575
  esc_html( '%1$s Your %2$s is working! Generate your shortcode on the %3$s settings page.%4$s %5$s', 'feed-them-social' ),
3576
  '<div class="fts-successful-api-token">',
3577
  esc_html( $type_of_key ),
@@ -3580,27 +3665,26 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3580
  '</div><div class="clear"></div>'
3581
  );
3582
  } ?>
3583
- jQuery('#youtube_custom_access_token, #youtube_custom_token_exp_time').val('');
3584
 
3585
- <?php if ( isset( $_GET['refresh_token'], $_GET['code'] ) && isset( $_GET['expires_in'] ) ) { ?>
3586
- jQuery('#youtube_custom_refresh_token').val(jQuery('#youtube_custom_refresh_token').val() + '<?php echo esc_js( $clienttoken_post['refresh_token'] ); ?>');
3587
  jQuery('.fts-failed-api-token').hide();
3588
 
3589
  if (!jQuery('.fts-successful-api-token').length) {
3590
- jQuery('.fts-youtube-last-row').append('<?php echo $fts_youtube_message; ?>');
3591
  }
3592
  <?php
3593
  } else {
3594
  ?>
3595
  if (jQuery('.fts-failed-api-token').length) {
3596
- jQuery('.fts-youtube-last-row').append('<?php echo $fts_youtube_message; ?>');
3597
  jQuery('.fts-failed-api-token').hide();
3598
  }
3599
  <?php } ?>
3600
-
3601
- jQuery('#youtube_custom_access_token').val(jQuery('#youtube_custom_access_token').val() + '<?php echo esc_js( $auth_obj['access_token'] ); ?>');
3602
- jQuery('#youtube_custom_token_exp_time').val(jQuery('#youtube_custom_token_exp_time').val() + '<?php echo esc_js( strtotime( '+' . $auth_obj['expires_in'] . ' seconds' ) ); ?>');
3603
- jQuery('<div class="fa fa-check-circle fa-3x fa-fw fts-success"></div>').insertBefore('.hide-button-tokens-options .feed-them-social-admin-input-wrap .fts-clear');
3604
  jQuery('.fts-success').fadeIn('slow');
3605
  <?php } ?>
3606
  return false;
@@ -3610,10 +3694,151 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3610
  }); // end of document.ready
3611
  </script>
3612
  <?php
3613
- return $auth_obj['access_token'];
3614
  }
3615
  }
3616
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3617
  /**
3618
  * FTS YouTube Link Filter
3619
  *
@@ -3703,5 +3928,165 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
3703
  // DEPRECIATED!
3704
  }
3705
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3706
  } // end class
3707
  ?>
39
  add_action( 'wp_ajax_fts_clear_cache_ajax', array( $this, 'fts_clear_cache_ajax' ) );
40
  }
41
  add_action( 'wp_ajax_fts_encrypt_token_ajax', array( $this, 'fts_encrypt_token_ajax' ) );
42
+
43
  add_action( 'wp_ajax_fts_refresh_token_ajax', array( $this, 'fts_refresh_token_ajax' ) );
44
+ add_action( 'wp_ajax_nopriv_fts_refresh_token_ajax', array( $this, 'fts_refresh_token_ajax' ) );
45
+
46
  add_action( 'wp_ajax_fts_instagram_token_ajax', array( $this, 'fts_instagram_token_ajax' ) );
47
 
48
  if ( is_admin() || is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) || is_plugin_active( 'fts-bar/fts-bar.php' ) ) {
183
  $fts_refresh_token_nonce = wp_create_nonce( 'fts_token_nonce' );
184
  $access_token = $_REQUEST['access_token'];
185
  $user_id = $_REQUEST['user_id'];
186
+ $expires_in = $_REQUEST['expires_in'];
187
 
188
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_token_nonce' ) ) {
189
  if ( isset( $access_token ) ) {
190
  update_option( 'fts_instagram_custom_api_token', sanitize_text_field( $access_token ) );
191
  update_option( 'fts_instagram_custom_id', sanitize_text_field( $user_id ) );
192
+ update_option( 'fts_instagram_custom_api_token_expires_in', sanitize_text_field( $expires_in ) );
193
  }
194
  }
195
  die;
254
  $raw_token = $_GET['code'];
255
  $feed_type = $_GET['feed_type'];
256
  $user_id = $_GET['user_id'];
257
+ $expires_in = $_GET['expires_in'];
 
258
 
259
  if ( isset( $raw_token ) && 'original_instagram' === $feed_type || isset( $raw_token ) && 'instagram_basic' === $feed_type ) {
260
  $encrypted_token = $this->data_protection->encrypt( $raw_token );
267
  var access_token = '<?php echo sanitize_text_field( $encrypted_token ); ?>';
268
  var user_id = '<?php echo sanitize_text_field( $user_id ); ?>';
269
 
270
+ // Take the time() + $expires_in will equal the current date and time in seconds plus 60 days in seconds.
271
+ // For now we are going to get a new token every 7 days just to be on the safe side.
272
+ // That means we will negate 53 days from the seconds which is 4579200 <-- https://www.convertunits.com/from/60+days/to/seconds
273
+ // We get 60 days to refresh the token, if it's not refreshed before then it will expire.
274
+ var expires_in = '<?php echo sanitize_text_field( time() + $expires_in - 4579200 ); ?>';
275
+
276
  jQuery.ajax({
277
  data: {
278
  action: 'fts_instagram_token_ajax',
279
  access_token: access_token,
280
  user_id: user_id,
281
+ expires_in: expires_in,
282
  },
283
  type: 'POST',
284
  url: ftsAjax.ajaxurl,
613
  jQuery('.fb-sublist-page-id-<?php echo esc_js( $fb_page_id ); ?>').append(data).filter('.fb-sublist-page-id-<?php echo esc_js( $fb_page_id ); ?>').html();
614
  jQuery('.fb-sublist-page-id-<?php echo esc_js( $fb_page_id ); ?>').animate({scrollTop: '+=100px'}, 800); // scroll down a 100px after new items are added
615
 
 
 
616
  <?php if ( isset( $data->locations->paging->next ) && $data->locations->paging->next === $_REQUEST['next_location_url'] ) { ?>
617
  jQuery('#loadMore_<?php echo esc_js( $fb_page_id ); ?>_location').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb fts-no-more-locations-<?php echo esc_js( $fb_page_id ); ?>" style="background:none !important"><?php echo esc_html( 'All Locations loaded', 'feed-them-social' ); ?></div>');
618
  jQuery('#loadMore_<?php echo esc_js( $fb_page_id ); ?>_location').removeAttr('id');
1306
  public function fts_instagram_style_options_page() {
1307
  $instagram_style_options = array(
1308
  'fts_instagram_custom_api_token',
1309
+ 'fts_instagram_custom_api_token_expires_in',
1310
  'fts_instagram_custom_id',
1311
  'instagram_show_follow_btn',
1312
  'instagram_show_follow_btn_where',
2959
  // Is there old Cache? If so Delete it!
2960
  if ( true === $this->fts_check_feed_cache_exists( $transient_name ) ) {
2961
  // Make Sure to delete old permanent cache before setting up new cache!
2962
+ $this->delete_permanent_feed_cache( $transient_name );
2963
  }
2964
+
2965
+ // echo ' WEWEWEWEWWEWEW ' . $transient_name;
2966
+
2967
  // Cache Time set on Settings Page under FTS Tab.
2968
  $cache_time_limit = true === get_option( 'fts_clear_cache_developer_mode' ) && '1' !== get_option( 'fts_clear_cache_developer_mode' ) ? get_option( 'fts_clear_cache_developer_mode' ) : '900';
2969
 
2990
 
2991
  // If Error use Permanent Cache!
2992
  if ( true === $errored ) {
2993
+ // echo ' KKKKKKKKKKK fts_p_ ';
2994
+ // echo $transient_name;
2995
  $trans = get_transient( 'fts_p_' . $transient_name );
2996
  }
2997
  else{
2998
  // If no error use Timed Cache!
2999
  $trans = get_transient( 'fts_t_' . $transient_name );
3000
+ // echo ' GGGGGGGGGGGGG fts_t_';
3001
+ // echo $transient_name;
3002
  }
3003
 
3004
  // YO!
3005
+ // echo '<br/>GET CACHE What is the response at this point:<br/>';
3006
+ // print_r($trans);
3007
 
3008
  if ($trans){
3009
 
3074
  $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_timeout_fts_t_%' ) );
3075
 
3076
  wp_reset_query();
3077
+
3078
+ echo 'Cache Cleared';
3079
+
3080
+ wp_die();
3081
+
3082
  }
3083
 
3084
  /**
3148
  $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_p_' . $transient_name ) );
3149
 
3150
  wp_reset_query();
3151
+ return 'Permanent Cache for this feed cleared!';
3152
  }
3153
 
3154
  /**
3188
  'id' => 'feed_them_social_admin_set_cache',
3189
  'parent' => 'feed_them_social_admin_bar',
3190
  'title' => __( 'Clear Cache', 'feed-them-social' ),
3191
+ 'href' => 'javascript:;',
3192
  'meta' => array('onclick' => 'fts_ClearCache();') //JavaScript function trigger just as an example.
3193
  )
3194
  );
3425
  }
3426
  }
3427
 
3428
+ // Instagram Token Refresh date!
3429
+ if ( 'token_refresh' === $feed_type ) {
3430
+ $u_time = date( 'Y-m-d', $created_time );
3431
+ }
3432
+
3433
  // Instagram date time!
3434
  if ( 'instagram' === $feed_type ) {
3435
  if ( 'one-day-ago' === $custom_date_check ) {
3510
  $fts_refresh_token_nonce = wp_create_nonce( 'fts_refresh_token_nonce' );
3511
 
3512
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_refresh_token_nonce' ) ) {
3513
+
3514
+ if ( isset( $_REQUEST['button_pushed'] ) && 'yes' === $_REQUEST['button_pushed'] ) {
3515
+
3516
+ if( 'youtube' === $_REQUEST['feed'] && !empty( $_REQUEST['refresh_token'] ) ){
3517
+ update_option( 'youtube_custom_refresh_token', sanitize_text_field( wp_unslash( $_REQUEST['refresh_token'] ) ) );
3518
+
3519
+ }
3520
+ if ( 'instagram' === $_REQUEST['feed'] && !empty( $_REQUEST['access_token'] ) ){
3521
+ update_option( 'fts_instagram_custom_api_token', sanitize_text_field( wp_unslash( $_REQUEST['access_token'] ) ) );
3522
+ }
3523
  }
3524
+ if ( !empty( $_REQUEST['access_token'] ) ) {
3525
+
3526
+ if( 'youtube' === $_REQUEST['feed'] ){
3527
+ update_option( 'youtube_custom_access_token', sanitize_text_field( wp_unslash( $_REQUEST['access_token'] ) ) );
3528
+
3529
+ }
3530
+ if ( 'instagram' === $_REQUEST['feed'] ){
3531
+ update_option( 'fts_instagram_custom_api_token', sanitize_text_field( wp_unslash( $_REQUEST['access_token'] ) ) );
3532
+ }
3533
  }
3534
+
3535
+ if( 'youtube' === $_REQUEST['feed'] ){
3536
+
3537
+ $startoftime = isset( $_REQUEST['expires_in'] ) ? strtotime( '+' . $_REQUEST['expires_in'] . ' seconds' ) : '';
3538
+ $start_of_time_final = false !== $startoftime ? sanitize_key( $startoftime ) : '';
3539
+ update_option( 'youtube_custom_token_exp_time', sanitize_text_field( wp_unslash( $start_of_time_final ) ) );
3540
+ }
3541
+
3542
+ if( 'instagram' === $_REQUEST['feed'] ){
3543
+
3544
+ $startoftime = isset( $_REQUEST['expires_in'] ) ? $_REQUEST['expires_in'] : '';
3545
+ $start_of_time_final = false !== $startoftime ? sanitize_key( $startoftime ) : '';
3546
+ update_option( 'fts_instagram_custom_api_token_expires_in', sanitize_text_field( wp_unslash( $start_of_time_final ) ) );
3547
+
3548
+ echo wp_unslash( $_REQUEST['expires_in'] );
3549
+ echo '<br/>';
3550
+ }
3551
+
3552
 
3553
  // This only happens if the token is expired on the YouTube Options page and you go to re-save or refresh the page for some reason. It will also run this function if the cache is emptied and the token is found to be expired.
3554
  if ( 'no' === $_REQUEST['button_pushed'] ) {
3555
+ echo 'Token Refreshed: ';
3556
  // $output .= do_shortcode('[fts _youtube vid_count=3 large_vid=no large_vid_title=no large_vid_description=no thumbs_play_in_iframe=popup vids_in_row=3 space_between_videos=1px force_columns=yes maxres_thumbnail_images=yes thumbs_wrap_color=#000 wrap=none video_wrap_display=none comments_count=12 channel_id=UCqhnX4jA0A5paNd1v-zEysw loadmore=button loadmore_count=5 loadmore_btn_maxwidth=300px loadmore_btn_margin=10px]');
3557
  }
3558
  }
3559
 
3560
+ echo wp_unslash( $_REQUEST['access_token'] );
3561
+
3562
+
3563
+ wp_die();
3564
  }
3565
 
3566
  /**
3567
+ * FTS Check Instagram Token Validity
3568
  *
3569
  * @since 2.3.3
3570
  */
3571
+ public function feed_them_instagram_refresh_token() {
3572
 
3573
  $fts_refresh_token_nonce = wp_create_nonce( 'fts_refresh_token_nonce' );
3574
 
3575
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_refresh_token_nonce' ) ) {
3576
 
3577
  // Used some methods from this link http://ieg.wnet.org/2015/09/using-oauth-in-wordpress-plugins-part-2-persistence/
3578
+ // save all 3 get options: happens when clicking the get access token button on the instagram options page!
3579
+ if ( isset( $_GET['access_token'], $_GET['expires_in'] ) ) {
3580
  $button_pushed = 'yes';
3581
+ $clienttoken_post['access_token'] = sanitize_text_field( wp_unslash( $_GET['access_token'] ) );
3582
+ $auth_obj['access_token'] = sanitize_text_field( wp_unslash( $_GET['access_token'] ) );
3583
  $auth_obj['expires_in'] = sanitize_key( wp_unslash( $_GET['expires_in'] ) );
3584
  } else {
3585
  // refresh token!
3586
  $button_pushed = 'no';
3587
+ $check_token = get_option( 'fts_instagram_custom_api_token' );
3588
+ $check_basic_token_value = false !== $this->data_protection->decrypt( $check_token ) ? $this->data_protection->decrypt( $check_token ) : $check_token;
3589
+ $oauth2token_url = esc_url_raw( 'https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token=' . $check_basic_token_value );
 
 
 
 
 
3590
 
3591
+ $response = wp_remote_get( $oauth2token_url );
3592
+
3593
+ $auth_obj = json_decode( wp_remote_retrieve_body( $response ), true );
3594
+
3595
+ // print_r( $auth_obj['expires_in'] );
3596
+
3597
+ // Take the time() + $expires_in will equal the current date and time in seconds plus 60 days in seconds.
3598
+ // For now we are going to get a new token every 7 days just to be on the safe side.
3599
+ // That means we will negate 53 days from the seconds which is 4579200 <-- https://www.convertunits.com/from/60+days/to/seconds
3600
+ // We get 60 days to refresh the token, if it's not refreshed before then it will expire.
3601
+
3602
+ $time_minus_fiftythree_days = $auth_obj['expires_in'] - 4579200;
3603
+ $expires_in = $time_minus_fiftythree_days + time();
3604
+
3605
+ // test.
3606
+ // echo ' asdfasdfasdfasdf ';
3607
+ // This is our refresh token response;
3608
+ // print_r($response['body']);
3609
+ // test.
3610
+ //$auth_obj['access_token'] = '';
3611
+
3612
+ // Return if no access token queried from refresh token. This will stop error on front end feed if cached already.
3613
+ if( empty( $auth_obj['access_token'] ) ){
3614
+ return;
3615
+ }
3616
+
3617
+ $encrypted_token = $this->data_protection->encrypt( $auth_obj['access_token'] );
3618
+
3619
+ }
3620
+
3621
+ // use for testing in script below.
3622
+ //console.log( '<?php print_r($response['body']) ? >' );
3623
+
3624
+ ?>
3625
  <script>
3626
  jQuery(document).ready(function () {
3627
+
3628
+
3629
  jQuery.ajax({
3630
  data: {
3631
  action: "fts_refresh_token_ajax",
3632
+ access_token: '<?php echo esc_js( $encrypted_token ); ?>',
3633
+ expires_in: '<?php echo esc_js( $expires_in ); ?>',
3634
+ button_pushed: '<?php echo esc_js( $button_pushed ); ?>',
3635
+ feed: 'instagram'
3636
  },
3637
  type: 'POST',
3638
  url: ftsAjax.ajaxurl,
3639
  success: function (response) {
3640
  console.log(response);
3641
  <?php
3642
+ if ( isset( $_GET['page'] ) && 'fts-instagram-feed-styles-submenu-page' === $_GET['page'] ) {
3643
 
3644
  $user_id = $auth_obj;
3645
+ $error_response = 'Sorry, this content isn\'t available right now' ? 'true' : 'false';
3646
  $type_of_key = __( 'Access Token', 'feed-them-social' );
3647
 
3648
  // Error Check!
3649
  if ( 'true' === $error_response ) {
3650
+ $fts_instagram_message = sprintf(
3651
+ esc_html( '%1$s This %2$s does not appear to be a valid access token. instagram responded with: %3$s %4$s ', 'feed-them-social' ),
3652
  '<div class="fts-failed-api-token">',
3653
  esc_html( $type_of_key ),
3654
  esc_html( $user_id->error->errors[0]->message ),
3656
  );
3657
  }
3658
  else {
3659
+ $fts_instagram_message = sprintf(
3660
  esc_html( '%1$s Your %2$s is working! Generate your shortcode on the %3$s settings page.%4$s %5$s', 'feed-them-social' ),
3661
  '<div class="fts-successful-api-token">',
3662
  esc_html( $type_of_key ),
3665
  '</div><div class="clear"></div>'
3666
  );
3667
  } ?>
3668
+ jQuery('#fts_instagram_custom_api_token, #fts_instagram_custom_api_token_expires_in').val('');
3669
 
3670
+ <?php if ( isset( $_GET['access_token'], $_GET['expires_in'] ) ) { ?>
3671
+ jQuery('#fts_instagram_custom_api_token').val(jQuery('#fts_instagram_custom_api_token').val() + '<?php echo esc_js( $clienttoken_post['access_token'] ); ?>');
3672
  jQuery('.fts-failed-api-token').hide();
3673
 
3674
  if (!jQuery('.fts-successful-api-token').length) {
3675
+ jQuery('.fts-instagram-last-row').append('<?php echo $fts_instagram_message; ?>');
3676
  }
3677
  <?php
3678
  } else {
3679
  ?>
3680
  if (jQuery('.fts-failed-api-token').length) {
3681
+ jQuery('.fts-instagram-last-row').append('<?php echo $fts_instagram_message; ?>');
3682
  jQuery('.fts-failed-api-token').hide();
3683
  }
3684
  <?php } ?>
3685
+ jQuery('#fts_instagram_custom_api_token').val(jQuery('#fts_instagram_custom_api_token').val() + '<?php echo esc_js( $auth_obj['access_token'] ); ?>');
3686
+ jQuery('#fts_instagram_custom_api_token_expires_in').val(jQuery('#fts_instagram_custom_api_token_expires_in').val() + '<?php echo esc_js( strtotime( '+' . $auth_obj['expires_in'] . ' seconds' ) ); ?>');
3687
+ jQuery('<div class="fa fa-check-circle fa-3x fa-fw fts-success"></div>').insertBefore('.feed-them-social-admin-input-wrap.fts-success-class .fts-clear');
 
3688
  jQuery('.fts-success').fadeIn('slow');
3689
  <?php } ?>
3690
  return false;
3694
  }); // end of document.ready
3695
  </script>
3696
  <?php
3697
+ // return $auth_obj['access_token'];
3698
  }
3699
  }
3700
 
3701
+ /**
3702
+ * FTS Check YouTube Token Validity
3703
+ *
3704
+ * @since 2.3.3
3705
+ */
3706
+ public function feed_them_youtube_refresh_token() {
3707
+
3708
+ $fts_refresh_token_nonce = wp_create_nonce( 'fts_refresh_token_nonce' );
3709
+
3710
+ if ( wp_verify_nonce( $fts_refresh_token_nonce, 'fts_refresh_token_nonce' ) ) {
3711
+
3712
+ // Used some methods from this link http://ieg.wnet.org/2015/09/using-oauth-in-wordpress-plugins-part-2-persistence/
3713
+ // Save all 3 get options: happens when clicking the get access token button on the youtube options page.
3714
+ // A Refresh token is only available when clicking through the oAuth process.
3715
+ if ( isset( $_GET['refresh_token'], $_GET['code'] ) && isset( $_GET['expires_in'] ) ) {
3716
+ $clienttoken_post['refresh_token'] = sanitize_text_field( wp_unslash( $_GET['refresh_token'] ) );
3717
+ $access_token = sanitize_text_field( wp_unslash( $_GET['code'] ) );
3718
+ $expires_in = sanitize_key( wp_unslash( $_GET['expires_in'] ) );
3719
+ $button_pushed = 'yes';
3720
+ } else {
3721
+
3722
+ $postdata = http_build_query(
3723
+ array(
3724
+ 'feed_them_social' => 'yes',
3725
+ 'refresh_token' => esc_html( get_option( 'youtube_custom_refresh_token' ) ),
3726
+ 'expires_in' => esc_html( get_option( 'youtube_custom_token_exp_time' ) ),
3727
+ )
3728
+ );
3729
+
3730
+ $ch = curl_init();
3731
+
3732
+ curl_setopt($ch, CURLOPT_URL, 'https://youtube-token-refresh.feedthemsocial.com' );
3733
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
3734
+ curl_setopt($ch, CURLOPT_POST, 1);
3735
+ curl_setopt($ch, CURLOPT_POSTFIELDS, "' . $postdata . '");
3736
+
3737
+ $headers = array();
3738
+ $headers[] = 'Content-Type: application/x-www-form-urlencoded';
3739
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
3740
+
3741
+ $result = curl_exec($ch);
3742
+ if (curl_errno($ch)) {
3743
+ echo 'Error:' . curl_error($ch);
3744
+ }
3745
+ curl_close($ch);
3746
+
3747
+ $response = json_decode($result);
3748
+
3749
+ /* echo '<br/>';
3750
+ print_r( $postdata );
3751
+ echo '<br/>';
3752
+ print_r($result);*/
3753
+
3754
+ // Get new Access Token using our Refresh Token.
3755
+ if( !empty( $response->access_token ) && !empty( $response->expires_in ) ){
3756
+ $access_token = $response->access_token;
3757
+ $expires_in = $response->expires_in;
3758
+ $button_pushed = 'no';
3759
+ }
3760
+ else {
3761
+ // Return if no access token queried from refresh token. This will stop error on front end feed if cached already.
3762
+ return print_r($response);
3763
+ }
3764
+ }
3765
+ ?>
3766
+ <script>
3767
+ jQuery(document).ready(function () {
3768
+ jQuery.ajax({
3769
+ data: {
3770
+ action: "fts_refresh_token_ajax",
3771
+ refresh_token: '<?php echo esc_js( $clienttoken_post['refresh_token'] ) ?>',
3772
+ access_token: '<?php echo esc_js( $access_token ) ?>',
3773
+ expires_in: '<?php echo esc_js( $expires_in ) ?>',
3774
+ button_pushed: '<?php echo esc_js( $button_pushed ); ?>',
3775
+ feed: 'youtube'
3776
+ },
3777
+ type: 'POST',
3778
+ url: ftsAjax.ajaxurl,
3779
+ success: function (response) {
3780
+ console.log(response);
3781
+ <?php
3782
+ if ( isset( $_GET['page'] ) && 'fts-youtube-feed-styles-submenu-page' === $_GET['page'] ) {
3783
+
3784
+ $user_id = $auth_obj;
3785
+ $error_response = $user_id->error->errors[0]->message ? 'true' : 'false';
3786
+ $type_of_key = __( 'Access Token', 'feed-them-social' );
3787
+
3788
+ // Error Check!
3789
+ if ( 'true' === $error_response ) {
3790
+ $fts_youtube_message = sprintf(
3791
+ esc_html( '%1$s This %2$s does not appear to be valid. YouTube responded with: %3$s %4$s ', 'feed-them-social' ),
3792
+ '<div class="fts-failed-api-token">',
3793
+ esc_html( $type_of_key ),
3794
+ esc_html( $user_id->error->errors[0]->message ),
3795
+ '</div><div class="clear"></div>'
3796
+ );
3797
+ }
3798
+ else {
3799
+ $fts_youtube_message = sprintf(
3800
+ esc_html( '%1$s Your %2$s is working! Generate your shortcode on the %3$s settings page.%4$s %5$s', 'feed-them-social' ),
3801
+ '<div class="fts-successful-api-token">',
3802
+ esc_html( $type_of_key ),
3803
+ '<a href="' . esc_url( 'admin.php?page=feed-them-settings-page' ) . '">',
3804
+ '</a>',
3805
+ '</div><div class="clear"></div>'
3806
+ );
3807
+ } ?>
3808
+ jQuery('#youtube_custom_access_token, #youtube_custom_token_exp_time').val('');
3809
+
3810
+ <?php if ( isset( $_GET['refresh_token'], $_GET['code'] ) && isset( $_GET['expires_in'] ) ) { ?>
3811
+ jQuery('#youtube_custom_refresh_token').val(jQuery('#youtube_custom_refresh_token').val() + '<?php echo esc_js( $clienttoken_post['refresh_token'] ); ?>');
3812
+ jQuery('.fts-failed-api-token').hide();
3813
+
3814
+ if (!jQuery('.fts-successful-api-token').length) {
3815
+ jQuery('.fts-youtube-last-row').append('<?php echo $fts_youtube_message; ?>');
3816
+ }
3817
+ <?php
3818
+ } else {
3819
+ ?>
3820
+ if (jQuery('.fts-failed-api-token').length) {
3821
+ jQuery('.fts-youtube-last-row').append('<?php echo $fts_youtube_message; ?>');
3822
+ jQuery('.fts-failed-api-token').hide();
3823
+ }
3824
+ <?php } ?>
3825
+
3826
+ jQuery('#youtube_custom_access_token').val(jQuery('#youtube_custom_access_token').val() + '<?php echo esc_js( $access_token ); ?>');
3827
+ jQuery('#youtube_custom_token_exp_time').val(jQuery('#youtube_custom_token_exp_time').val() + '<?php echo esc_js( strtotime( '+' . $expires_in . ' seconds' ) ); ?>');
3828
+ jQuery('<div class="fa fa-check-circle fa-3x fa-fw fts-success"></div>').insertBefore('.hide-button-tokens-options .feed-them-social-admin-input-wrap .fts-clear');
3829
+ jQuery('.fts-success').fadeIn('slow');
3830
+
3831
+ <?php } ?>
3832
+ return false;
3833
+ }
3834
+ }); // end of ajax()
3835
+ return false;
3836
+ }); // end of document.ready
3837
+ </script>
3838
+ <?php
3839
+ }
3840
+ }
3841
+
3842
  /**
3843
  * FTS YouTube Link Filter
3844
  *
3928
  // DEPRECIATED!
3929
  }
3930
 
3931
+
3932
+ /**
3933
+ * Use Cache Check
3934
+ *
3935
+ * Checks to see if we need to use cache or not
3936
+ *
3937
+ * @param string|array $api_url API Call.
3938
+ * @param string $cache_name Cache name.
3939
+ * @return array|mixed
3940
+ * @throws \Exception Thow Exeption if all fails.
3941
+ * @since
3942
+ */
3943
+ public function use_cache_check( $api_url, $cache_name, $feed_type ) {
3944
+
3945
+ // print_r( $api_url );
3946
+ // echo '<br/> Cache Name! <br/>' . $cache_name;
3947
+ // print_r( '<br/>NEXT!<br/> ' );
3948
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
3949
+ if ( true === $this->fts_check_feed_cache_exists( $cache_name ) ) {
3950
+
3951
+ $response = $this->fts_get_feed_cache( $cache_name );
3952
+ // echo '<br/> true cached... we are here <br/>';
3953
+ // echo ' pppppppppppppppppppp ';
3954
+ // YO!
3955
+ // echo 'Cache Should Be Printing out here.<br/>';
3956
+ // echo $cache_name;
3957
+ // print_r( $response );
3958
+ // Return Cache because it exists in Database.
3959
+ return $response;
3960
+ }
3961
+ }
3962
+
3963
+ // SO if the cache does not exists then we run some checks below.
3964
+
3965
+ // Get Feed using API call.
3966
+ // echo ' ZZZZZZZZZZZ <br/>';
3967
+
3968
+ $fts_error_check = new fts_error_handler();
3969
+ // Error Check.
3970
+ if( 'youtube' === $feed_type ){
3971
+
3972
+ $response = $this->fts_get_feed_json( $api_url );
3973
+ $feed_data = json_decode( $response['data'] );
3974
+ $fts_error_check_complete = $fts_error_check->youtube_error_check( $feed_data );
3975
+
3976
+ }
3977
+
3978
+ if( 'youtube_single' === $feed_type ){
3979
+ // echo ' AAAAAAAAAAAAAAA ';
3980
+ // print_r( $api_url );
3981
+ $response = $this->fts_get_feed_json( $api_url );
3982
+ $feed_data = json_decode( $response['items'] );
3983
+ $fts_error_check_complete = $fts_error_check->youtube_error_check( $feed_data );
3984
+
3985
+ }
3986
+
3987
+ if( 'instagram' === $feed_type ){
3988
+
3989
+ $instagram_basic_response = $this->fts_get_feed_json( $api_url );
3990
+ $instagram_basic = json_decode( $instagram_basic_response['data'] );
3991
+
3992
+ if ( !empty( $instagram_basic->data ) ) {
3993
+ $access_token = $this->data_protection->decrypt( get_option( 'fts_instagram_custom_api_token' ) );
3994
+
3995
+ // We loop through the media ids from the above $instagram_basic_data_array['data'] and request the info for each to create an array we can cache.
3996
+ $instagram_basic_output = (object)['data' => []];
3997
+ foreach ( $instagram_basic->data as $media ) {
3998
+ $media_id = $media->id;
3999
+ $instagram_basic_data_array['data'] = 'https://graph.instagram.com/' . $media_id . '?fields=caption,id,media_url,media_type,permalink,thumbnail_url,timestamp,username,children{media_url}&access_token=' . $access_token;
4000
+ $instagram_basic_media_response = $this->fts_get_feed_json( $instagram_basic_data_array );
4001
+ $instagram_basic_media = json_decode( $instagram_basic_media_response['data'] );
4002
+ $instagram_basic_output->data[] = $instagram_basic_media;
4003
+ }
4004
+ }
4005
+
4006
+ $feed_data = (object) array_merge( (array) $instagram_basic, (array) $instagram_basic_output );
4007
+ $response = json_encode( $feed_data );
4008
+ $fts_error_check_complete = $fts_error_check->instagram_error_check( $instagram_basic );
4009
+
4010
+
4011
+ }
4012
+ // echo ' 333333333333 ';
4013
+ // print_r( $response['items'] );
4014
+
4015
+ // echo ' TTTTTTTT ';
4016
+ // print_r( $fts_error_check_complete );
4017
+
4018
+ // YO!
4019
+ // An Access token will expire every 60 minutes for Youtube.
4020
+ // Instagram Basic token expires everyting 60 days, but we are going to refresh the token every 7 days for now.
4021
+ // When a user refreshes any page on the front end or backend settings page we user our refresh token to get a new access token if the time has expired.
4022
+ // If the time has passed before a user has refreshed the website, then the API call will error, and we don't want to cache that error.
4023
+ // Instead we allow the cached version to be served and upon page reload the new access token will be saved to the db via ajax and the feed will continue to show.
4024
+ // Yes works for front end users not logged in too because we use nopriv for the add_action ajax call.
4025
+ if ( is_array( $fts_error_check_complete ) && true === $fts_error_check_complete[0] ) {
4026
+
4027
+ // echo ' rrrrrrrrrrrrrr ';
4028
+
4029
+ // If old Cache exists use it instead of showing an error.
4030
+ if ( true === $this->fts_check_feed_cache_exists( $cache_name, true ) ) {
4031
+
4032
+ // echo ' OOOOOOOOOOOOOOOOOO ';
4033
+
4034
+ // If Current user is Admin and Cache exists for use, then still show Admin the error for debugging purposes.
4035
+ if ( current_user_can( 'administrator' ) ) {
4036
+ echo wp_kses(
4037
+ $fts_error_check_complete[1] . ' <em>NOTICE: Error only visible to Admin.</em>',
4038
+ array(
4039
+ 'a' => array(
4040
+ 'href' => array(),
4041
+ 'title' => array(),
4042
+ ),
4043
+ 'br' => array(),
4044
+ 'em' => array(),
4045
+ 'strong' => array(),
4046
+ )
4047
+ );
4048
+ }
4049
+
4050
+ // Return Cache because it exists in Database. Better than showing nothing right?
4051
+ return $this->fts_get_feed_cache( $cache_name, true );
4052
+ }
4053
+
4054
+ // If User is Admin and no Old cache is saved in database for use.
4055
+ if ( current_user_can( 'administrator' ) ) {
4056
+ //echo ' If User is Admin and no Old cache is saved in database for use ';
4057
+ echo $fts_error_check_complete[0];
4058
+ }
4059
+ }
4060
+
4061
+ // Finally if nothing else, check if there is a response and if so create the cache.
4062
+ if( 'youtube_single' === $feed_type ){
4063
+
4064
+ if( !empty( $response[ 'data' ] ) ) {
4065
+ echo ' CREATING CACHE NOW: ';
4066
+ $this->fts_create_feed_cache( $cache_name, $response );
4067
+ }
4068
+
4069
+ }
4070
+
4071
+ if( 'youtube' === $feed_type ){
4072
+
4073
+ if( !empty( $response[ 'data' ] ) ) {
4074
+ // echo ' CREATING CACHE NOW: ';
4075
+ $this->fts_create_feed_cache( $cache_name, $response );
4076
+ }
4077
+
4078
+ }
4079
+
4080
+ if( 'instagram' === $feed_type ) {
4081
+
4082
+ if( !empty( $instagram_basic->data ) ) {
4083
+ // echo ' CREATING CACHE NOW: ';
4084
+ $this->fts_create_feed_cache( $cache_name, $response );
4085
+ }
4086
+ }
4087
+
4088
+ return $response;
4089
+ }
4090
+
4091
  } // end class
4092
  ?>
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: slickremix, slickchris
3
  Tags: Facebook, Instagram, Twitter, YouTube, Feed
4
  Requires at least: 3.6.0
5
- Tested up to: 5.9
6
- Stable tag: 2.9.8
7
  License: GPLv2 or later
8
 
9
  Display a Custom Facebook feed, Instagram feed, Twitter feed, and YouTube feed on pages, posts or widgets.
@@ -72,6 +72,16 @@ Feed Them Social was Developed By SlickRemix --> [https://www.slickremix.com/](h
72
  * Log into WordPress dashboard then click **Plugins** > **Add new** > Then under the title "Install Plugins" click **Upload** > **choose the zip** > **Activate the plugin!**
73
 
74
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
75
  = Version 2.9.8 Thursday, March 17th, 2022 =
76
  * NEW: All feeds are now encrypted before saving cache to the database. Just another way we are safeguarding your personal data.
77
  * NEW: Facebook and Instagram Access Tokens are being encrypted before saving to the database. YouTube & Twitter will be updated in 3.0.
2
  Contributors: slickremix, slickchris
3
  Tags: Facebook, Instagram, Twitter, YouTube, Feed
4
  Requires at least: 3.6.0
5
+ Tested up to: 5.9.3
6
+ Stable tag: 2.9.8.10
7
  License: GPLv2 or later
8
 
9
  Display a Custom Facebook feed, Instagram feed, Twitter feed, and YouTube feed on pages, posts or widgets.
72
  * Log into WordPress dashboard then click **Plugins** > **Add new** > Then under the title "Install Plugins" click **Upload** > **choose the zip** > **Activate the plugin!**
73
 
74
  == Changelog ==
75
+ = Version 2.9.8.10 Friday, April 15th, 2022 =
76
+ * NEW: Instagram Basic Feed: Access Token. As long as an Instagram User does not change their password then the Instagram Basic token will automatically refresh after 7 days. This will resolve a long standing issue where users would have to get a new token every 60 days. This option will only work if the access token is not in the shortcode. FTS 3.0 will be released soon and the process to create a feed will be amazingly simple and will address the access token in shortcode.
77
+ * NEW: Instagram and YouTube Feeds: Even if token fails and the cache is deleted the feed will still be visible.
78
+ * NEW: YouTube Options: Access Token Refresh.
79
+ * FIX: YouTube: Access Token Refresh.
80
+ * FIX: Misc Styles and general options text.
81
+ * FIX: Twitter options: Remove the create your own Twitter Keys options. Twitter APPs must now be approved and the process is not so simple. It's better to use the Access Token Option for a quicker setup.
82
+ * FIX: Premium: All Feeds: Depreciated jQuery call for .bind(), now .off(). This caused issue with autoscroll loadmore option on YouTube Specifically.
83
+ * NOTE: Tested with WordPress Version 5.9.3
84
+
85
  = Version 2.9.8 Thursday, March 17th, 2022 =
86
  * NEW: All feeds are now encrypted before saving cache to the database. Just another way we are safeguarding your personal data.
87
  * NEW: Facebook and Instagram Access Tokens are being encrypted before saving to the database. YouTube & Twitter will be updated in 3.0.