Jason Isbell to Headline St. Louis’ Open Highway Music Festival
Concertgoers will get some of the first-ever live listens for the country star and his band’s new album
Scroll to read more Music News & Interviews articles (1)
‘);
window.disqus_config = function () {
this.page.identifier = pageIdentifier;
this.page.title = pageTitle;
this.page.url = pageUrl;
};
const disqus_shortname = “riverfronttimes2″;
const d = document, s = d.createElement(‘script’);
s.src = ‘https://’ + disqus_shortname + ‘.disqus.com/embed.js’;
s.setAttribute(‘data-timestamp’, +new Date());
(d.head || d.body).appendChild(s);
}
const resetDisqus = () => {
// Set min heights on any disqus containers to prevent jogging the page
jQuery(‘[fdn-disqus-container]’).each(function () {
jQuery(this).css({ minHeight: jQuery(this).height() + ‘px’ });
});
jQuery(‘#disqus_thread’).remove();
containerElement.append(”);
DISQUS.reset({
reload: true,
config: function () {
this.page.identifier = pageIdentifier;
this.page.title = pageTitle;
this.page.url = pageUrl;
this.disqus_container_id = containerSelector;
}
});
}
let renderDisqusLastRun = 0;
let renderDisqusTimeout = null
const renderDisqusRateLimit = 200;
const renderDisqus = function () {
// Rate limiting
const timeSinceLastRun = new Date().getTime() – renderDisqusLastRun;
if (timeSinceLastRun < renderDisqusRateLimit) {
clearTimeout(renderDisqusTimeout);
renderDisqusTimeout = setTimeout(renderDisqus, renderDisqusRateLimit – timeSinceLastRun);
return;
}
// Bail if current disqus widget is already rendered
if (containerElement.find(‘#disqus_thread iframe[id^=”dsq-“]’).length) return;
const inBoundsOffsetTop = window.innerHeight * 0.5;
const inBoundsOffsetBottom = window.innerHeight * 0.5;
// element top bottom edges relative to window top-left postion and dimensions
const elementBounds = containerElement.get(0).getBoundingClientRect();
const elementTop = elementBounds.top;
const elementBottom = elementBounds.bottom;
const inBoundsPosTop = 0 – inBoundsOffsetTop;
const inBoundsPosBottom = window.innerHeight + inBoundsOffsetBottom;
const inBoundsTop = elementTop >= inBoundsPosTop && elementTop <= inBoundsPosBottom;
const inBoundsBottom = elementBottom >= inBoundsPosTop && elementBottom <= inBoundsPosBottom;
if (inBoundsTop && inBoundsBottom) {
if(disqusScriptLoaded()) {
resetDisqus();
}
else {
loadDisqus()
}
}
clearTimeout(renderDisqusTimeout);
renderDisqusLastRun = new Date().getTime();
}
jQuery(renderDisqus); // Document ready event
jQuery(window).on(‘scroll’, renderDisqus);
})();
]]>
Please enable JavaScript to view the
‘, ‘fetching’) },
success: function (data) {
// console.log(data.result, data.error, data)
if (data) {
if (data.error) {
// presentResult(‘Trouble loading content.’, ‘error’)
}
else if (data.result) {
if (typeof Foundation.Content === ‘undefined’) {
presentResult(data.result, ‘remove’);
}
else {
presentResult(data.result, ‘remove’, () => {
// Foundation.Content[contentOid].setupInlineComponents();
if (Foundation.Image.Editor && typeof Foundation.Image.Editor.setupEditButtons === ‘function’) {
Foundation.Image.Editor.setupEditButtons();
}
});
}
}
else {
// presentResult(‘How did we get here?’, ‘error’)
}
}
else {
// presentResult(‘No result or error returned from content request.’, ‘error’)
}
},
complete: function () {
cmInstance.queue.push(fetchUnloadedItems);
},
error: function (error) {
// presentResult(‘Ajax request error.’, ‘error’)
}
})
}
}
cmInstance.queue.push(fetchUnloadedItems)
jQuery(document).on(‘scroll resize’, function () {
// Prevent rapid firing of event stuff
clearTimeout(onScrollTimeout)
onScrollTimeout = setTimeout(function() {
// console.log(‘Foundation.MultiItem onScroll event’)
updateFurthestDownInView()
}, 100);
})
jQuery(document).on(‘foundation:multiitem:itemchange’, function () {
// Prevent rapid firing of event stuff
clearTimeout(onItemChangeTimeout)
onItemChangeTimeout = setTimeout(function() {
// console.log(‘Foundation.MultiItem foundation:multiitem:itemchange event ‘)
cmInstance.onItemChange()
}, 100);
})
};
Foundation.MultiItems = Foundation.MultiItems || {
add: function (multiItem) {
Foundation.MultiItems[multiItem.id] = multiItem;
}
};
Foundation.MultiItems.add(new Foundation.MultiItem({
id: ‘ContentRowMultiple’,
onItemChange: function () {
if (this.currentPermaLink) {
var state = {}
var title = ”
var url = this.currentPermaLink
history.pushState(state, title, url)
}
if (this.currentCanonical) {
document.querySelector(‘meta[property*=og\\:url]’).href = this.currentCanonical
document.querySelector(‘link[rel*=canonical]’).href = this.currentCanonical
}
if (this.currentThumb) {
document.querySelector(‘link[rel*=image_src]’).href = this.currentThumb
document.querySelector(‘meta[name*=thumbnail]’).content = this.currentThumb
document.querySelector(‘meta[property*=og\\:image]’).content = this.currentThumb
document.querySelector(‘meta[name*=twitter\\:image]’).content = this.currentThumb
}
if (this.currentTitle) {
document.querySelector(‘title’).text = this.currentTitle
}
// Google track pageview
if (typeof ga === ‘function’) {
ga(‘set’, ‘location’, window.location.href)
for (let i = 1; i <= 3; i++) {
let currentDimension = jQuery(Foundation.MultiItems[“ContentRowMultiple”].currentItem).attr(‘ga-dimension’+i)
if (typeof currentDimension === ‘string’) {
ga(‘set’, ‘dimension’ + i, currentDimension)
}
else {
ga(‘set’, ‘dimension’ + i, ”)
}
}
ga(‘send’, ‘pageview’)
}
if (typeof (Foundation.Ad.slots[‘STL_LeaderboardHeader-1’]) === ‘object’) {
Foundation.Ad.refresh(‘STL_LeaderboardHeader-1’)
}
if (typeof (Foundation.Ad.slots[‘STL_Footer-1’]) === ‘object’) {
Foundation.Ad.showFooter(‘STL_Footer-1’);
}
}
}))
]]>