var sbi_js_exists = (typeof sbi_js_exists !== 'undefined') ? true : false;
if(!sbi_js_exists) {
(function($){
function sbiAddImgLiquid() {
/*! imgLiquid v0.9.944 / 03-05-2013 https://github.com/karacas/imgLiquid */
var sbi_imgLiquid = sbi_imgLiquid || {VER: "0.9.944"};
sbi_imgLiquid.bgs_Available = !1, sbi_imgLiquid.bgs_CheckRunned = !1, function (i) {
function t() {
if (!sbi_imgLiquid.bgs_CheckRunned) {
sbi_imgLiquid.bgs_CheckRunned = !0;
var t = i('');
i("body").append(t), !function () {
var i = t[0];
if (i && window.getComputedStyle) {
var e = window.getComputedStyle(i, null);
e && e.backgroundSize && (sbi_imgLiquid.bgs_Available = "cover" === e.backgroundSize)
}
}(), t.remove()
}
}
i.fn.extend({
sbi_imgLiquid: function (e) {
this.defaults = {
fill: !0,
verticalAlign: "center",
horizontalAlign: "center",
useBackgroundSize: !0,
useDataHtmlAttr: !0,
responsive: !0,
delay: 0,
fadeInTime: 0,
removeBoxBackground: !0,
hardPixels: !0,
responsiveCheckTime: 500,
timecheckvisibility: 500,
onStart: null,
onFinish: null,
onItemStart: null,
onItemFinish: null,
onItemError: null
}, t();
var a = this;
return this.options = e, this.settings = i.extend({}, this.defaults, this.options), this.settings.onStart && this.settings.onStart(), this.each(function (t) {
function e() {
-1 === u.css("background-image").indexOf(encodeURI(c.attr("src"))) && u.css({"background-image": 'url("' + encodeURI(c.attr("src")) + '")'}), u.css({
"background-size": g.fill ? "cover" : "contain",
"background-position": (g.horizontalAlign + " " + g.verticalAlign).toLowerCase(),
"background-repeat": "no-repeat"
}), i("a:first", u).css({
display: "block",
width: "100%",
height: "100%"
}), i("img", u).css({display: "none"}), g.onItemFinish && g.onItemFinish(t, u, c), u.addClass("sbi_imgLiquid_bgSize"), u.addClass("sbi_imgLiquid_ready"), l()
}
function o() {
function e() {
c.data("sbi_imgLiquid_error") || c.data("sbi_imgLiquid_loaded") || c.data("sbi_imgLiquid_oldProcessed") || (u.is(":visible") && c[0].complete && c[0].width > 0 && c[0].height > 0 ? (c.data("sbi_imgLiquid_loaded", !0), setTimeout(r, t * g.delay)) : setTimeout(e, g.timecheckvisibility))
}
if (c.data("oldSrc") && c.data("oldSrc") !== c.attr("src")) {
var a = c.clone().removeAttr("style");
return a.data("sbi_imgLiquid_settings", c.data("sbi_imgLiquid_settings")), c.parent().prepend(a), c.remove(), c = a, c[0].width = 0, void setTimeout(o, 10)
}
return c.data("sbi_imgLiquid_oldProcessed") ? void r() : (c.data("sbi_imgLiquid_oldProcessed", !1), c.data("oldSrc", c.attr("src")), i("img:not(:first)", u).css("display", "none"), u.css({overflow: "hidden"}), c.fadeTo(0, 0).removeAttr("width").removeAttr("height").css({
visibility: "visible",
"max-width": "none",
"max-height": "none",
width: "auto",
height: "auto",
display: "block"
}), c.on("error", n), c[0].onerror = n, e(), void d())
}
function d() {
(g.responsive || c.data("sbi_imgLiquid_oldProcessed")) && c.data("sbi_imgLiquid_settings") && (g = c.data("sbi_imgLiquid_settings"), u.actualSize = u.get(0).offsetWidth + u.get(0).offsetHeight / 1e4, u.sizeOld && u.actualSize !== u.sizeOld && r(), u.sizeOld = u.actualSize, setTimeout(d, g.responsiveCheckTime))
}
function n() {
c.data("sbi_imgLiquid_error", !0), u.addClass("sbi_imgLiquid_error"), g.onItemError && g.onItemError(t, u, c), l()
}
function s() {
var i = {};
if (a.settings.useDataHtmlAttr) {
var t = u.attr("data-sbi_imgLiquid-fill"),
e = u.attr("data-sbi_imgLiquid-horizontalAlign"),
o = u.attr("data-sbi_imgLiquid-verticalAlign");
("true" === t || "false" === t) && (i.fill = Boolean("true" === t)), void 0 === e || "left" !== e && "center" !== e && "right" !== e && -1 === e.indexOf("%") || (i.horizontalAlign = e), void 0 === o || "top" !== o && "bottom" !== o && "center" !== o && -1 === o.indexOf("%") || (i.verticalAlign = o)
}
return sbi_imgLiquid.isIE && a.settings.ieFadeInDisabled && (i.fadeInTime = 0), i
}
function r() {
var i, e, a, o, d, n, s, r, m = 0, h = 0, f = u.width(), v = u.height();
void 0 === c.data("owidth") && c.data("owidth", c[0].width), void 0 === c.data("oheight") && c.data("oheight", c[0].height), g.fill === f / v >= c.data("owidth") / c.data("oheight") ? (i = "100%", e = "auto", a = Math.floor(f), o = Math.floor(f * (c.data("oheight") / c.data("owidth")))) : (i = "auto", e = "100%", a = Math.floor(v * (c.data("owidth") / c.data("oheight"))), o = Math.floor(v)), d = g.horizontalAlign.toLowerCase(), s = f - a, "left" === d && (h = 0), "center" === d && (h = .5 * s), "right" === d && (h = s), -1 !== d.indexOf("%") && (d = parseInt(d.replace("%", ""), 10), d > 0 && (h = s * d * .01)), n = g.verticalAlign.toLowerCase(), r = v - o, "left" === n && (m = 0), "center" === n && (m = .5 * r), "bottom" === n && (m = r), -1 !== n.indexOf("%") && (n = parseInt(n.replace("%", ""), 10), n > 0 && (m = r * n * .01)), g.hardPixels && (i = a, e = o), c.css({
width: i,
height: e,
"margin-left": Math.floor(h),
"margin-top": Math.floor(m)
}), c.data("sbi_imgLiquid_oldProcessed") || (c.fadeTo(g.fadeInTime, 1), c.data("sbi_imgLiquid_oldProcessed", !0), g.removeBoxBackground && u.css("background-image", "none"), u.addClass("sbi_imgLiquid_nobgSize"), u.addClass("sbi_imgLiquid_ready")), g.onItemFinish && g.onItemFinish(t, u, c), l()
}
function l() {
t === a.length - 1 && a.settings.onFinish && a.settings.onFinish()
}
var g = a.settings, u = i(this), c = i("img:first", u);
return c.length ? (c.data("sbi_imgLiquid_settings") ? (u.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"), g = i.extend({}, c.data("sbi_imgLiquid_settings"), a.options)) : g = i.extend({}, a.settings, s()), c.data("sbi_imgLiquid_settings", g), g.onItemStart && g.onItemStart(t, u, c), void (sbi_imgLiquid.bgs_Available && g.useBackgroundSize ? e() : o())) : void n()
})
}
})
}(jQuery);
// Use imagefill to set the images as backgrounds so they can be square
!function () {
var css = sbi_imgLiquid.injectCss,
head = document.getElementsByTagName('head')[0],
style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
}();
}
function sbiAddVisibilityListener() {
/* Detect when element becomes visible. Used for when the feed is initially hidden, in a tab for example. https://github.com/shaunbowe/jquery.visibilityChanged */
!function (i) {
var n = {
callback: function () {
}, runOnLoad: !0, frequency: 100, sbiPreviousVisibility: null
}, c = {};
c.sbiCheckVisibility = function (i, n) {
if (jQuery.contains(document, i[0])) {
var e = n.sbiPreviousVisibility, t = i.is(":visible");
n.sbiPreviousVisibility = t, null == e ? n.runOnLoad && n.callback(i, t) : e !== t && n.callback(i, t), setTimeout(function () {
c.sbiCheckVisibility(i, n)
}, n.frequency)
}
}, i.fn.sbiVisibilityChanged = function (e) {
var t = i.extend({}, n, e);
return this.each(function () {
c.sbiCheckVisibility(i(this), t)
})
}
}(jQuery);
}
function Sbi() {
this.feeds = {};
this.options = sb_instagram_js_options;
}
Sbi.prototype = {
createPage: function (createFeeds, createFeedsArgs) {
if (typeof window.sbiajaxurl === 'undefined' || window.sbiajaxurl.indexOf(window.location.hostname) === -1) {
window.sbiajaxurl = location.protocol + '//'+ window.location.hostname + '/wp-admin/admin-ajax.php';
}
$('.sbi_no_js_error_message').remove();
$('.sbi_no_js').removeClass('sbi_no_js');
createFeeds(createFeedsArgs);
},
createFeeds: function (args) {
args.whenFeedsCreated(
$('.sbi').each(function (index) {
$(this).attr('data-sbi-index', index + 1);
var $self = $(this),
flags = typeof $self.attr('data-sbi-flags') !== 'undefined' ? $self.attr('data-sbi-flags').split(',') : [],
general = typeof $self.attr('data-options') !== 'undefined' ? JSON.parse($self.attr('data-options')) : {};
if (flags.indexOf('testAjax') > -1) {
window.sbi.triggeredTest = true;
var submitData = {
'action' : 'sbi_on_ajax_test_trigger'
},
onSuccess = function(data) {
console.log('did test');
};
sbiAjax(submitData,onSuccess)
}
var feedOptions = {
cols : $self.attr('data-cols'),
colsmobile : $self.attr('data-colsmobile') !== 'same' ? $self.attr('data-colsmobile') : $self.attr('data-cols'),
num : $self.attr('data-num'),
imgRes : $self.attr('data-res'),
feedID : $self.attr('data-feedid'),
shortCodeAtts : $self.attr('data-shortcode-atts'),
resizingEnabled : (flags.indexOf('resizeDisable') === -1),
imageLoadEnabled : (flags.indexOf('imageLoadDisable') === -1),
debugEnabled : (flags.indexOf('debug') > -1),
favorLocal : (flags.indexOf('favorLocal') > -1),
ajaxPostLoad : (flags.indexOf('ajaxPostLoad') > -1),
autoMinRes : 1,
general : general
};
window.sbi.feeds[index] = sbiGetNewFeed(this, index, feedOptions);
window.sbi.feeds[index].setResizedImages();
window.sbi.feeds[index].init();
var evt = jQuery.Event('sbiafterfeedcreate');
evt.feed = window.sbi.feeds[index];
jQuery(window).trigger(evt);
})
);
},
afterFeedsCreated: function () {
// enable header hover action
$('.sb_instagram_header').each(function () {
var $thisHeader = $(this);
$thisHeader.find('.sbi_header_link').hover(function () {
$thisHeader.find('.sbi_header_img_hover').addClass('sbi_fade_in');
}, function () {
$thisHeader.find('.sbi_header_img_hover').removeClass('sbi_fade_in');
});
});
},
encodeHTML: function(raw) {
// make sure passed variable is defined
if (typeof raw === 'undefined') {
return '';
}
// replace greater than and less than symbols with html entity to disallow html in comments
var encoded = raw.replace(/(>)/g,'>'),
encoded = encoded.replace(/(<)/g,'<');
encoded = encoded.replace(/(<br\/>)/g,'
');
encoded = encoded.replace(/(<br>)/g,'
');
return encoded;
},
urlDetect: function(text) {
var urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g;
return text.match(urlRegex);
}
};
function SbiFeed(el, index, settings) {
this.el = el;
this.index = index;
this.settings = settings;
this.minImageWidth = 0;
this.imageResolution = 150;
this.resizedImages = {};
this.needsResizing = [];
this.outOfPages = false;
this.isInitialized = false;
}
SbiFeed.prototype = {
init: function() {
var feed = this;
if ($(this.el).find('#sbi_mod_error').length) {
$(this.el).prepend($(this.el).find('#sbi_mod_error'));
}
if (this.settings.ajaxPostLoad) {
this.getNewPostSet();
} else {
this.afterInitialImagesLoaded();
//Only check the width once the resize event is over
}
var sbi_delay = (function () {
var sbi_timer = 0;
return function (sbi_callback, sbi_ms) {
clearTimeout(sbi_timer);
sbi_timer = setTimeout(sbi_callback, sbi_ms);
};
})();
jQuery(window).resize(function () {
sbi_delay(function () {
feed.afterResize();
}, 500);
});
},
initLayout: function() {
},
afterInitialImagesLoaded: function() {
this.initLayout();
this.loadMoreButtonInit();
this.hideExtraImagesForWidth();
this.beforeNewImagesRevealed();
this.revealNewImages();
this.afterNewImagesRevealed();
},
afterResize: function() {
this.setImageHeight();
this.setImageResolution();
this.maybeRaiseImageResolution();
this.setImageSizeClass();
},
afterLoadMoreClicked: function($button) {
$button.find('.sbi_loader').removeClass('sbi_hidden');
$button.find('.sbi_btn_text').addClass('sbi_hidden');
$button.closest('.sbi').find('.sbi_num_diff_hide').addClass('sbi_transition').removeClass('sbi_num_diff_hide');
},
afterNewImagesLoaded: function() {
var $self = $(this.el),
feed = this;
this.beforeNewImagesRevealed();
this.revealNewImages();
this.afterNewImagesRevealed();
setTimeout(function () {
//Hide the loader in the load more button
$self.find('.sbi_loader').addClass('sbi_hidden');
$self.find('.sbi_btn_text').removeClass('sbi_hidden');
feed.maybeRaiseImageResolution();
}, 500);
},
beforeNewImagesRevealed: function() {
this.setImageHeight();
this.maybeRaiseImageResolution(true);
this.setImageSizeClass();
},
revealNewImages: function() {
var $self = $(this.el),
feed = this;
// Call Custom JS if it exists
if (typeof sbi_custom_js == 'function') setTimeout(function(){ sbi_custom_js(); }, 100);
this.applyImageLiquid();
$self.find('.sbi_item').each(function (index) {
var $self = jQuery(this);
//Photo links
//If lightbox is disabled
$self.find('.sbi_photo').hover(function () {
jQuery(this).fadeTo(200, 0.85);
}, function () {
jQuery(this).stop().fadeTo(500, 1);
});
}); //End .sbi_item each
//Remove the new class after 500ms, once the sorting is done
setTimeout(function () {
jQuery('#sbi_images .sbi_item.sbi_new').removeClass('sbi_new');
//Loop through items and remove class to reveal them
var time = 10;
$self.find('.sbi_transition').each(function() {
var $sbi_item_transition_el = jQuery(this);
setTimeout( function(){
$sbi_item_transition_el.removeClass('sbi_transition');
}, time);
time += 10;
});
}, 500);
},
afterNewImagesRevealed: function() {
this.listenForVisibilityChange();
this.sendNeedsResizingToServer();
if (!this.settings.imageLoadEnabled) {
$('.sbi_no_resraise').removeClass('sbi_no_resraise');
}
var evt = $.Event('sbiafterimagesloaded');
evt.el = $(this.el);
$(window).trigger(evt);
},
setResizedImages: function () {
if ($(this.el).find('.sbi_resized_image_data').length
&& typeof $(this.el).find('.sbi_resized_image_data').attr('data-resized') !== 'undefined'
&& $(this.el).find('.sbi_resized_image_data').attr('data-resized').indexOf('{"') === 0) {
this.resizedImages = JSON.parse($(this.el).find('.sbi_resized_image_data').attr('data-resized'));
$(this.el).find('.sbi_resized_image_data').remove();
}
},
sendNeedsResizingToServer: function() {
var feed = this;
if (feed.needsResizing.length > 0 && feed.settings.resizingEnabled) {
var itemOffset = $(this.el).find('.sbi_item').length;
var submitData = {
action: 'sbi_resized_images_submit',
needs_resizing: feed.needsResizing,
offset: itemOffset,
feed_id: feed.settings.feedID,
atts: feed.settings.shortCodeAtts,
};
var onSuccess = function(data) {
if (data.trim().indexOf('{') === 0) {
var response = JSON.parse(data);
if (feed.settings.debugEnabled) {
console.log(response);
}
}
};
sbiAjax(submitData,onSuccess);
}
},
loadMoreButtonInit: function () {
var $self = $(this.el),
feed = this;
$self.find('#sbi_load .sbi_load_btn').off().on('click', function () {
feed.afterLoadMoreClicked(jQuery(this));
feed.getNewPostSet();
}); //End click event
},
getNewPostSet: function () {
var $self = $(this.el),
feed = this;
var itemOffset = $self.find('.sbi_item').length,
submitData = {
action: 'sbi_load_more_clicked',
offset: itemOffset,
feed_id: feed.settings.feedID,
atts: feed.settings.shortCodeAtts,
current_resolution: feed.imageResolution
};
var onSuccess = function (data) {
if (data.trim().indexOf('{') === 0) {
var response = JSON.parse(data);
if (feed.settings.debugEnabled) {
console.log(response);
}
feed.appendNewPosts(response.html);
feed.addResizedImages(response.resizedImages);
if (feed.settings.ajaxPostLoad) {
feed.settings.ajaxPostLoad = false;
feed.afterInitialImagesLoaded();
} else {
feed.afterNewImagesLoaded();
}
if (!response.feedStatus.shouldPaginate) {
feed.outOfPages = true;
$self.find('.sbi_load_btn').hide();
} else {
feed.outOfPages = false;
}
$('.sbi_no_js').removeClass('sbi_no_js');
}
};
sbiAjax(submitData, onSuccess);
},
appendNewPosts: function (newPostsHtml) {
var $self = $(this.el),
feed = this;
if ($self.find('#sbi_images .sbi_item').length) {
$self.find('#sbi_images .sbi_item').last().after(newPostsHtml);
} else {
$self.find('#sbi_images').append(newPostsHtml);
}
},
addResizedImages: function (resizedImagesToAdd) {
for (var imageID in resizedImagesToAdd) {
this.resizedImages[imageID] = resizedImagesToAdd[imageID];
}
},
setImageHeight: function() {
var $self = $(this.el);
var sbi_photo_width = $self.find('.sbi_photo').eq(0).innerWidth();
//Figure out number of columns for either desktop or mobile
var sbi_num_cols = this.getColumnCount();
//Figure out what the width should be using the number of cols
//Figure out what the width should be using the number of cols
var imagesPadding = $self.find('#sbi_images').innerWidth() - $self.find('#sbi_images').width(),
imagepadding = imagesPadding / 2;
sbi_photo_width_manual = ( $self.find('#sbi_images').width() / sbi_num_cols ) - imagesPadding;
//If the width is less than it should be then set it manually
//if( sbi_photo_width <= (sbi_photo_width_manual) ) sbi_photo_width = sbi_photo_width_manual;
$self.find('.sbi_photo').css('height', sbi_photo_width);
//Set the position of the carousel arrows
if ($self.find('.sbi-owl-nav').length) {
setTimeout(function(){
//If there's 2 rows then adjust position
var sbi_ratio = 2;
if( $self.find('.sbi_owl2row-item').length ) sbi_ratio = 1;
var sbi_arrows_top = ($self.find('.sbi_photo').eq(0).innerWidth()/sbi_ratio);
sbi_arrows_top += parseInt(imagepadding)*(2+(2-sbi_ratio));
$self.find('.sbi-owl-nav div').css('top', sbi_arrows_top);
}, 100);
}
},
maybeRaiseSingleImageResolution: function ($item, index, forceChange) {
var feed = this,
imgSrcSet = feed.getImageUrls($item),
currentUrl = $item.find('.sbi_photo img').attr('src'),
currentRes = 150,
imagEl = $item.find('img').get(0),
aspectRatio = currentUrl === window.sbi.options.placeholder ? 1 : imagEl.naturalWidth/imagEl.naturalHeight,
forceChange = typeof forceChange !== 'undefined' ? forceChange : false;
if ($item.hasClass('sbi_no_resraise') || $item.hasClass('sbi_had_error') || ($item.find('.sbi_link_area').length && $item.find('.sbi_link_area').hasClass('sbi_had_error'))) {
return;
}
$.each(imgSrcSet, function (index, value) {
if (value === currentUrl) {
currentRes = parseInt(index);
// If the image has already been changed to an existing real source, don't force the change
forceChange = false;
}
});
//Image res
var newRes = 640;
switch (feed.settings.imgRes) {
case 'thumb':
newRes = 150;
break;
case 'medium':
newRes = 320;
break;
case 'full':
newRes = 640;
break;
default:
var minImageWidth = Math.max(feed.settings.autoMinRes,$item.find('.sbi_photo').innerWidth()),
thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, aspectRatio, $item);
switch (thisImageReplace) {
case 320:
newRes = 320;
break;
case 150:
newRes = 150;
break;
}
break;
}
if (newRes > currentRes || currentUrl === window.sbi.options.placeholder || forceChange) {
if (feed.settings.debugEnabled) {
var reason = currentUrl === window.sbi.options.placeholder ? 'was placeholder' : 'too small';
console.log('raise res for ' + currentUrl, reason);
}
var newUrl = imgSrcSet[newRes].split("?ig_cache_key")[0];
$item.find('.sbi_photo img').attr('src', newUrl);
$item.find('.sbi_photo').css('background-image', 'url("' + newUrl + '")');
currentRes = newRes;
if (feed.settings.imgRes === 'auto') {
var checked = false;
$item.find('.sbi_photo img').on('load', function () {
var $this_image = $(this);
var newAspectRatio = ($this_image.get(0).naturalWidth / $this_image.get(0).naturalHeight);
if ($this_image.get(0).naturalWidth !== 1000 && newAspectRatio > aspectRatio && !checked) {
if (feed.settings.debugEnabled) {
console.log('raise res again for aspect ratio change ' + currentUrl);
}
checked = true;
minImageWidth = $item.find('.sbi_photo').innerWidth();
thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, newAspectRatio, $item);
newRes = 640;
switch (thisImageReplace) {
case 320:
newRes = 320;
break;
case 150:
newRes = 150;
break;
}
if (newRes > currentRes) {
newUrl = imgSrcSet[newRes].split("?ig_cache_key")[0];
$this_image.attr('src', newUrl);
$this_image.closest('.sbi_photo').css('background-image', 'url("' + newUrl + '")');
}
if (feed.layout === 'masonry' || feed.layout === 'highlight') {
$(feed.el).find('#sbi_images').smashotope(feed.isotopeArgs);
setTimeout(function() {
$(feed.el).find('#sbi_images').smashotope(feed.isotopeArgs);
},500)
}
} else {
if (feed.settings.debugEnabled) {
var reason = checked ? 'already checked' : 'no aspect ratio change';
console.log('not raising res for replacement ' + currentUrl, reason);
}
}
});
}
}
$item.find('img').on('error', function () {
if (!$(this).hasClass('sbi_img_error')) {
$(this).addClass('sbi_img_error');
var sourceFromAPI = ($(this).attr('src').indexOf('media/?size=') > -1 || $(this).attr('src').indexOf('cdninstagram') > -1 || $(this).attr('src').indexOf('fbcdn') > -1)
if (!sourceFromAPI) {
if ($(this).closest('.sbi_photo').attr('data-img-src-set') !== 'undefined') {
var srcSet = JSON.parse($(this).closest('.sbi_photo').attr('data-img-src-set').replace(/\\\//g, '/'));
if (typeof srcSet.d !== 'undefined') {
$(this).attr('src', srcSet.d);
$(this).closest('.sbi_photo').css('background-image', 'url(' + srcSet.d + ')');
$(this).closest('.sbi_item').addClass('sbi_had_error').find('.sbi_link_area').attr('href', srcSet[640]).addClass('sbi_had_error');
}
}
} else {
feed.settings.favorLocal = true;
var srcSet = feed.getImageUrls($(this).closest('.sbi_item'));
if (typeof srcSet[640] !== 'undefined') {
$(this).attr('src', srcSet[640]);
$(this).closest('.sbi_photo').css('background-image', 'url(' + srcSet[640] + ')');
$(this).closest('.sbi_item').addClass('sbi_had_error').find('.sbi_link_area').attr('href', srcSet[640]).addClass('sbi_had_error');
}
}
setTimeout(function() {
feed.afterResize();
}, 1500)
} else {
console.log('unfixed error ' + $(this).attr('src'));
}
});
},
maybeRaiseImageResolution: function (justNew) {
var feed = this,
itemsSelector = typeof justNew !== 'undefined' && justNew === true ? '.sbi_item.sbi_new' : '.sbi_item',
forceChange = !feed.isInitialized ? true : false;
$(feed.el).find(itemsSelector).each(function (index) {
if (!$(this).hasClass('sbi_num_diff_hide')
&& $(this).find('.sbi_photo').length
&& typeof $(this).find('.sbi_photo').attr('data-img-src-set') !== 'undefined') {
feed.maybeRaiseSingleImageResolution($(this),index,forceChange);
}
}); //End .sbi_item each
feed.isInitialized = true;
},
getBestResolutionForAuto: function(colWidth, aspectRatio, $item) {
if (isNaN(aspectRatio) || aspectRatio < 1) {
aspectRatio = 1;
}
var bestWidth = colWidth * aspectRatio,
bestWidthRounded = Math.ceil(bestWidth / 10) * 10,
customSizes = [150, 320, 640];
if ($item.hasClass('sbi_highlighted')) {
bestWidthRounded = bestWidthRounded *2;
}
if (customSizes.indexOf(parseInt(bestWidthRounded)) === -1) {
var done = false;
$.each(customSizes, function (index, item) {
if (item > parseInt(bestWidthRounded) && !done) {
bestWidthRounded = item;
done = true;
}
});
}
return bestWidthRounded;
},
hideExtraImagesForWidth: function() {
if (this.layout === 'carousel') {
return;
}
var $self = $(this.el),
num = typeof $self.attr('data-num') !== 'undefined' && $self.attr('data-num') !== '' ? parseInt($self.attr('data-num')) : 1,
nummobile = typeof $self.attr('data-nummobile') !== 'undefined' && $self.attr('data-nummobile') !== '' ? parseInt($self.attr('data-nummobile')) : num;
if ($(window).width() < 480) {
if (nummobile < $self.find('.sbi_item').length) {
$self.find('.sbi_item').slice(nummobile - $self.find('.sbi_item').length).addClass('sbi_num_diff_hide');
}
} else {
if (num < $self.find('.sbi_item').length) {
$self.find('.sbi_item').slice(num - $self.find('.sbi_item').length).addClass('sbi_num_diff_hide');
}
}
},
setImageSizeClass: function () {
var $self = $(this.el);
$self.removeClass('sbi_small sbi_medium');
var feedWidth = $self.innerWidth(),
photoPadding = parseInt(($self.find('#sbi_images').outerWidth() - $self.find('#sbi_images').width())) / 2,
cols = this.getColumnCount(),
feedWidthSansPadding = feedWidth - (photoPadding * (cols+2)),
colWidth = (feedWidthSansPadding / cols);
if (colWidth > 120 && colWidth < 240) {
$self.addClass('sbi_medium');
} else if (colWidth <= 120) {
$self.addClass('sbi_small');
}
},
setMinImageWidth: function () {
if ($(this.el).find('.sbi_item .sbi_photo').first().length) {
this.minImageWidth = $(this.el).find('.sbi_item .sbi_photo').first().innerWidth();
} else {
this.minImageWidth = 150;
}
},
setImageResolution: function () {
if (this.settings.imgRes === 'auto') {
this.imageResolution = 'auto';
} else {
switch (this.settings.imgRes) {
case 'thumb':
this.imageResolution = 150;
break;
case 'medium':
this.imageResolution = 320;
break;
default:
this.imageResolution = 640;
}
}
},
getImageUrls: function ($item) {
var srcSet = JSON.parse($item.find('.sbi_photo').attr('data-img-src-set').replace(/\\\//g, '/')),
id = $item.attr('id').replace('sbi_', '');
if (typeof this.resizedImages[id] !== 'undefined'
&& this.resizedImages[id] !== 'video'
&& this.resizedImages[id] !== 'pending'
&& this.resizedImages[id].id !== 'error'
&& this.resizedImages[id].id !== 'video'
&& this.resizedImages[id].id !== 'pending') {
if (typeof this.resizedImages[id]['sizes'] !== 'undefined') {
var foundSizes = [];
if (typeof this.resizedImages[id]['sizes']['full'] !== 'undefined') {
srcSet[640] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
foundSizes.push(640);
}
if (typeof this.resizedImages[id]['sizes']['low'] !== 'undefined') {
srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
foundSizes.push(320);
}
if (typeof this.resizedImages[id]['sizes']['thumb'] !== 'undefined') {
foundSizes.push(150);
srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'thumb.jpg';
}
if (this.settings.favorLocal) {
if (foundSizes.indexOf(640) === -1) {
if (foundSizes.indexOf(320) > -1) {
srcSet[640] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
}
}
if (foundSizes.indexOf(320) === -1) {
if (foundSizes.indexOf(640) > -1) {
srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
} else if (foundSizes.indexOf(150) > -1) {
srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'thumb.jpg';
}
}
if (foundSizes.indexOf(150) === -1) {
if (foundSizes.indexOf(320) > -1) {
srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
} else if (foundSizes.indexOf(640) > -1) {
srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
}
}
}
}
} else if (typeof this.resizedImages[id] === 'undefined'
|| (typeof this.resizedImages[id]['id'] !== 'undefined' && this.resizedImages[id]['id'] !== 'pending' && this.resizedImages[id]['id'] !== 'error')) {
this.addToNeedsResizing(id);
}
return srcSet;
},
getAvatarUrl: function (username,favorType) {
if (username === '') {
return '';
}
var availableAvatars = this.settings.general.avatars,
favorType = typeof favorType !== 'undefined' ? favorType : 'local';
if (favorType === 'local') {
if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
return sb_instagram_js_options.resized_url + username + '.jpg';
} else if (typeof availableAvatars[username] !== 'undefined') {
return availableAvatars[username];
} else {
return '';
}
} else {
if (typeof availableAvatars[username] !== 'undefined') {
return availableAvatars[username];
} else if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
return sb_instagram_js_options.resized_url + username + '.jpg';
} else {
return '';
}
}
},
addToNeedsResizing: function (id) {
if (this.needsResizing.indexOf(id) === -1) {
this.needsResizing.push(id);
}
},
applyImageLiquid: function () {
var $self = $(this.el),
feed = this;
sbiAddImgLiquid();
if (typeof $self.find(".sbi_photo").sbi_imgLiquid == 'function') {
$self.find(".sbi_photo").sbi_imgLiquid({fill: true});
}
},
listenForVisibilityChange: function() {
var feed = this;
sbiAddVisibilityListener();
if (typeof $(this.el).filter(':hidden').sbiVisibilityChanged == 'function') {
//If the feed is initially hidden (in a tab for example) then check for when it becomes visible and set then set the height
$(this.el).filter(':hidden').sbiVisibilityChanged({
callback: function (element, visible) {
feed.afterResize();
},
runOnLoad: false
});
}
},
getColumnCount: function() {
var $self = $(this.el),
cols = this.settings.cols,
colsmobile = this.settings.colsmobile,
returnCols = cols;
sbiWindowWidth = window.innerWidth;
if ($self.hasClass('sbi_mob_col_auto')) {
if (sbiWindowWidth < 640 && (parseInt(cols) > 2 && parseInt(cols) < 7)) returnCols = 2;
if (sbiWindowWidth < 640 && (parseInt(cols) > 6 && parseInt(cols) < 11)) returnCols = 4;
if (sbiWindowWidth <= 480 && parseInt(cols) > 2) returnCols = 1;
} else if (sbiWindowWidth <= 480) {
returnCols = colsmobile;
}
return parseInt(returnCols);
}
};
window.sbi_init = function() {
window.sbi = new Sbi();
window.sbi.createPage( window.sbi.createFeeds, {whenFeedsCreated: window.sbi.afterFeedsCreated});
};
function sbiGetNewFeed(feed,index,feedOptions) {
return new SbiFeed(feed,index,feedOptions);
}
function sbiAjax(submitData,onSuccess) {
$.ajax({
url: sbiajaxurl,
type: 'post',
data: submitData,
success: onSuccess
});
}
})(jQuery);
jQuery(document).ready(function($) {
if (typeof window.sb_instagram_js_options === 'undefined') {
window.sb_instagram_js_options = {
font_method: "svg",
resized_url: location.protocol + '//' + window.location.hostname + "/wp-content/uploads/sb-instagram-feed-images/",
placeholder: location.protocol + '//' + window.location.hostname + "/wp-content/plugins/instagram-feed/img/placeholder.png"
};
}
if (typeof window.sb_instagram_js_options.resized_url !== 'undefined' && window.sb_instagram_js_options.resized_url.indexOf(location.protocol) === -1) {
if (location.protocol === 'http:') {
window.sb_instagram_js_options.resized_url = window.sb_instagram_js_options.resized_url.replace('https:','http:');
} else {
window.sb_instagram_js_options.resized_url = window.sb_instagram_js_options.resized_url.replace('http:','https:');
}
}
sbi_init();
});
} // if sbi_js_exists