One of the most effective ways to work your full body from home is with a barbell. This powerhouse piece of equipment serves novices and experienced weightlifters alike, and allows you to fast-track your workouts as needed to target multiple muscle groups at once. From split squat to reverse crunch, you can build a whole workout around this versatile product—and moreover, build a more powerful body too. Not sure where to look? We’re highlighting the five best barbells for home workouts below.

 

(function() {
var checkJWReady = setInterval( function() {
if (“undefined” !== typeof jwplayer) {
if(typeof(jQuery)==”function”){(function($){$.fn.fitVids=function(){}})(jQuery)};
var el = decodeURIComponent( ‘jwplayer_A4J0kUxP_eEkK759I_div’ );
var mHash = ‘ami’ + decodeURIComponent( ‘A4J0kUxP’ );
window.jwpDef[mHash] = JSON.parse( decodeURIComponent( ‘%7B%22advertising%22%3A%7B%22admessage%22%3A%22This%20video%20will%20resume%20in%20xx%20seconds%22%2C%22adscheduleid%22%3A%22VNLk4XpY%22%2C%22autoplayadsmuted%22%3Atrue%2C%22bids%22%3A%7B%22bidders%22%3A%5B%7B%22invCode%22%3A%221922098%22%2C%22member%22%3A%221287%22%2C%22name%22%3A%22AppNexus%22%2C%22publisherId%22%3A2069834%7D%2C%7B%22id%22%3A%2292766%22%2C%22name%22%3A%22SynacorMedia%22%2C%22pubid%22%3A%22jwplayer%22%2C%22type%22%3A%22OpenRTB%22%7D%2C%7B%22id%22%3A%223522895%22%2C%22name%22%3A%22PubMatic%22%2C%22pubid%22%3A%22160545%22%2C%22type%22%3A%22OpenRTB%22%7D%2C%7B%22id%22%3A%22277887975%22%2C%22name%22%3A%22MediaNet%22%2C%22pubid%22%3A%228CUGC6H1R%22%7D%5D%2C%22settings%22%3A%7B%22bidTimeout%22%3A3000%2C%22buckets%22%3A%5B%7B%22increment%22%3A0.5%2C%22max%22%3A100%2C%22min%22%3A0.5%7D%5D%2C%22floorPriceCents%22%3A200%2C%22mediationLayerAdServer%22%3A%22dfp%22%7D%7D%2C%22client%22%3A%22googima%22%2C%22cuetext%22%3A%22Advertisement%22%2C%22outstream%22%3Afalse%2C%22preloadAds%22%3Afalse%2C%22rules%22%3A%7B%22startOnSeek%22%3A%22pre%22%2C%22timeBetweenAds%22%3A0%7D%2C%22schedule%22%3A%5B%7B%22offset%22%3A%22pre%22%2C%22tag%22%3A%22https%3A%5C%2F%5C%2Fpubads.g.doubleclick.net%5C%2Fgampad%5C%2Fads%3Fsz%3D320x240%26iu%3D%5C%2F4216%5C%2Fmensj.channels%5C%2Fpreroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3D%5Breferrer_url%5D%26description_url%3D%5Bdescription_url%5D%26correlator%3D%5Btimestamp%5D%26cust_params%3Dad%253D__item-tags__%2526playerwidth%3D__player-width__%2526playerheight%253D__player-height__%26mediaID%3D__item-mediaid__%26mediaTitle%3D__item-title__%26mediaURL%3D__item-file__%22%2C%22type%22%3A%22linear%22%7D%5D%2C%22skipmessage%22%3A%22Skip%20ad%20in%20xx%20seconds%22%2C%22vpaidcontrols%22%3Afalse%2C%22vpaidmode%22%3A%22enabled%22%7D%2C%22aspectratio%22%3A%2216%3A9%22%2C%22autoPause%22%3A%5B%5D%2C%22autostart%22%3A%22viewable%22%2C%22controls%22%3Atrue%2C%22displayHeading%22%3Afalse%2C%22displaydescription%22%3Afalse%2C%22displaytitle%22%3Afalse%2C%22floating%22%3A%5B%5D%2C%22height%22%3A270%2C%22key%22%3A%22RDZNxYEBdISKBUBxqRzU4Fp2lCVc5UL1G2hWjqZYoBJOBMITlcF9nw%3D%3D%22%2C%22mute%22%3Atrue%2C%22ph%22%3A2%2C%22pid%22%3A%22eEkK759I%22%2C%22playbackRateControls%22%3Atrue%2C%22preload%22%3A%22metadata%22%2C%22repeat%22%3Afalse%2C%22skin%22%3A%7B%22controlbar%22%3A%7B%22background%22%3A%22rgba%280%2C0%2C0%2C0%29%22%2C%22icons%22%3A%22%23ffffff%22%2C%22iconsActive%22%3A%22%23eb212e%22%2C%22text%22%3A%22%23ffffff%22%7D%2C%22menus%22%3A%7B%22background%22%3A%22%23333333%22%2C%22text%22%3A%22%23ffffff%22%2C%22textActive%22%3A%22%23eb212e%22%7D%2C%22name%22%3A%22five%22%2C%22timeslider%22%3A%7B%22progress%22%3A%22%23eb212e%22%7D%2C%22tooltips%22%3A%7B%22background%22%3A%22%23FFFFFF%22%2C%22text%22%3A%22%23ffffff%22%7D%7D%2C%22stretching%22%3A%22uniform%22%2C%22visualplaylist%22%3Atrue%2C%22width%22%3A%22100%25%22%2C%22setTimeEvents%22%3Atrue%2C%22playlist%22%3A%22https%3A%5C%2F%5C%2Fcontent.jwplatform.com%5C%2Ffeeds%5C%2FA4J0kUxP.json%22%2C%22plugins%22%3A%7B%22https%3A%5C%2F%5C%2Fsb.scorecardresearch.com%5C%2Fc2%5C%2Fplugins%5C%2Fstreamingtag_plugin_jwplayer.js%22%3A%5B%5D%2C%22https%3A%5C%2F%5C%2Fovp.iris.tv%5C%2Fplugins%5C%2Fjwplayer%5C%2Fv2%5C%2Firis-jwplayer8.adaptive.min.js%22%3A%7B%22settings%22%3A%7B%22client_token%22%3A%225KRCGIZC9EUT4VN%22%2C%22platform_id%22%3A%22A4J0kUxP%22%2C%22player_id%22%3A%22jwplayer_A4J0kUxP_eEkK759I_div%22%2C%22end_up_next%22%3Atrue%2C%22ssl%22%3Atrue%2C%22campaign_tracking%22%3Atrue%2C%22disable_mobile_upnext%22%3Afalse%7D%2C%22iris_buttons%22%3A%7B%22thumbs_up%22%3Afalse%2C%22thumbs_down%22%3Afalse%2C%22skip_forward%22%3Afalse%2C%22skip_back%22%3Afalse%2C%22skip_on_thumbs_down%22%3Afalse%7D%2C%22global%22%3A%22iris%22%2C%22jwCMS%22%3Atrue%7D%7D%2C%22nextUpDisplay%22%3Afalse%7D’ ) );
var videoParams = JSON.parse( decodeURIComponent( ‘%7B%22advertising%22%3A%7B%22admessage%22%3A%22This%20video%20will%20resume%20in%20xx%20seconds%22%2C%22adscheduleid%22%3A%22VNLk4XpY%22%2C%22autoplayadsmuted%22%3Atrue%2C%22bids%22%3A%7B%22bidders%22%3A%5B%7B%22invCode%22%3A%221922098%22%2C%22member%22%3A%221287%22%2C%22name%22%3A%22AppNexus%22%2C%22publisherId%22%3A2069834%7D%2C%7B%22id%22%3A%2292766%22%2C%22name%22%3A%22SynacorMedia%22%2C%22pubid%22%3A%22jwplayer%22%2C%22type%22%3A%22OpenRTB%22%7D%2C%7B%22id%22%3A%223522895%22%2C%22name%22%3A%22PubMatic%22%2C%22pubid%22%3A%22160545%22%2C%22type%22%3A%22OpenRTB%22%7D%2C%7B%22id%22%3A%22277887975%22%2C%22name%22%3A%22MediaNet%22%2C%22pubid%22%3A%228CUGC6H1R%22%7D%5D%2C%22settings%22%3A%7B%22bidTimeout%22%3A3000%2C%22buckets%22%3A%5B%7B%22increment%22%3A0.5%2C%22max%22%3A100%2C%22min%22%3A0.5%7D%5D%2C%22floorPriceCents%22%3A200%2C%22mediationLayerAdServer%22%3A%22dfp%22%7D%7D%2C%22client%22%3A%22googima%22%2C%22cuetext%22%3A%22Advertisement%22%2C%22outstream%22%3Afalse%2C%22preloadAds%22%3Afalse%2C%22rules%22%3A%7B%22startOnSeek%22%3A%22pre%22%2C%22timeBetweenAds%22%3A0%7D%2C%22schedule%22%3A%5B%5D%2C%22skipmessage%22%3A%22Skip%20ad%20in%20xx%20seconds%22%2C%22vpaidcontrols%22%3Afalse%2C%22vpaidmode%22%3A%22enabled%22%7D%2C%22aspectratio%22%3A%2216%3A9%22%2C%22autoPause%22%3A%5B%5D%2C%22autostart%22%3A%22viewable%22%2C%22controls%22%3Atrue%2C%22displayHeading%22%3Afalse%2C%22displaydescription%22%3Afalse%2C%22displaytitle%22%3Afalse%2C%22floating%22%3A%5B%5D%2C%22height%22%3A270%2C%22key%22%3A%22RDZNxYEBdISKBUBxqRzU4Fp2lCVc5UL1G2hWjqZYoBJOBMITlcF9nw%3D%3D%22%2C%22mute%22%3Atrue%2C%22ph%22%3A2%2C%22pid%22%3A%22eEkK759I%22%2C%22playbackRateControls%22%3Atrue%2C%22preload%22%3A%22metadata%22%2C%22repeat%22%3Afalse%2C%22skin%22%3A%7B%22controlbar%22%3A%7B%22background%22%3A%22rgba%280%2C0%2C0%2C0%29%22%2C%22icons%22%3A%22%23ffffff%22%2C%22iconsActive%22%3A%22%23eb212e%22%2C%22text%22%3A%22%23ffffff%22%7D%2C%22menus%22%3A%7B%22background%22%3A%22%23333333%22%2C%22text%22%3A%22%23ffffff%22%2C%22textActive%22%3A%22%23eb212e%22%7D%2C%22name%22%3A%22five%22%2C%22timeslider%22%3A%7B%22progress%22%3A%22%23eb212e%22%7D%2C%22tooltips%22%3A%7B%22background%22%3A%22%23FFFFFF%22%2C%22text%22%3A%22%23ffffff%22%7D%7D%2C%22stretching%22%3A%22uniform%22%2C%22visualplaylist%22%3Atrue%2C%22width%22%3A%22100%25%22%2C%22setTimeEvents%22%3Atrue%2C%22playlist%22%3A%22https%3A%5C%2F%5C%2Fcontent.jwplatform.com%5C%2Ffeeds%5C%2FA4J0kUxP.json%22%2C%22plugins%22%3A%7B%22https%3A%5C%2F%5C%2Fsb.scorecardresearch.com%5C%2Fc2%5C%2Fplugins%5C%2Fstreamingtag_plugin_jwplayer.js%22%3A%5B%5D%2C%22https%3A%5C%2F%5C%2Fovp.iris.tv%5C%2Fplugins%5C%2Fjwplayer%5C%2Fv2%5C%2Firis-jwplayer8.adaptive.min.js%22%3A%7B%22settings%22%3A%7B%22client_token%22%3A%225KRCGIZC9EUT4VN%22%2C%22platform_id%22%3A%22A4J0kUxP%22%2C%22player_id%22%3A%22jwplayer_A4J0kUxP_eEkK759I_div%22%2C%22end_up_next%22%3Atrue%2C%22ssl%22%3Atrue%2C%22campaign_tracking%22%3Atrue%2C%22disable_mobile_upnext%22%3Afalse%7D%2C%22iris_buttons%22%3A%7B%22thumbs_up%22%3Afalse%2C%22thumbs_down%22%3Afalse%2C%22skip_forward%22%3Afalse%2C%22skip_back%22%3Afalse%2C%22skip_on_thumbs_down%22%3Afalse%7D%2C%22global%22%3A%22iris%22%2C%22jwCMS%22%3Atrue%7D%7D%2C%22nextUpDisplay%22%3Afalse%7D’ ) );

console.log(‘AMI jwp ad params’, videoParams);
if ( videoParams.advertising ) {
console.log(‘AMI jwp ad params’, videoParams.advertising);
}
var vHash = ‘ami’ + decodeURIComponent( ‘A4J0kUxP’ );
if ( window.jwpDef[vHash].advertising ) {
if ( window.jwpDef[vHash].advertising.schedule ) {
if ( window.jwpDef[vHash].advertising.schedule[0].tag ) {
if ( typeof window.jwVastTag[vHash] === ‘undefined’ ){
window.jwVastTag[vHash] = window.jwpDef[vHash].advertising.schedule[0].tag;
var vastURL = new URL( window.jwVastTag[vHash] );
var vastParams = new URLSearchParams( vastURL.search );
var ui = vastParams.get( ‘iu’ ).split( ‘/’ );
window.prerollTag[vHash] = vastParams.get( ‘iu’ );
window.prerollTag[vHash] = vastParams.get( ‘iu’ );
window.jwpBids[vHash] = {};
console.log(‘AMI jwp’, window.jwpBids);
console.log(‘AMI jwp prerolltag’, window.prerollTag[vHash]);
console.log(‘AMI jwp GAM Tag’, window.jwVastTag[vHash]);
}
}
}
}
function performAsyncBidding(player, item, index) {
var el = decodeURIComponent( ‘jwplayer_A4J0kUxP_eEkK759I_div’ );
var vHash = ‘ami’ + decodeURIComponent( ‘A4J0kUxP’ );
let url = window.jwVastTag[vHash];

var utms = {};
if ( adsParseUrlParams( ‘utm_source’ ) || typeof getCookie(‘utm_source’) !== ‘undefined’ ) {
var utm_source;
if(adsParseUrlParams( ‘utm_source’ )){
utm_source = adsParseUrlParams( ‘utm_source’ );
setCookie(‘utm_source’, utm_source, {expires:1800, path: ‘/’});
} else {
utm_source = getCookie(‘utm_source’);
}
utms.utm_source = utm_source;
}

if ( adsParseUrlParams( ‘utm_medium’ ) || typeof getCookie(‘utm_medium’) !== ‘undefined’ ) {
var utm_medium;
if( adsParseUrlParams( ‘utm_medium’ ) ){
utm_medium = adsParseUrlParams( ‘utm_medium’ );
setCookie(‘utm_medium’, utm_medium, {expires:1800, path: ‘/’});
} else {
utm_medium = getCookie(‘utm_medium’);
}
utms.utm_medium = utm_medium;
}

if ( adsParseUrlParams( ‘utm_campaign’ ) || typeof getCookie(‘utm_campaign’) !== ‘undefined’ ) {
var utm_campaign;
if(adsParseUrlParams( ‘utm_campaign’ )){
utm_campaign = adsParseUrlParams( ‘utm_campaign’ );
setCookie(‘utm_campaign’, utm_campaign, {expires:1800, path: ‘/’});
} else {
utm_campaign = getCookie(‘utm_campaign’);
}
utms.utm_campaign = utm_campaign ;
}

if ( typeof utms.utm_source !== ‘undefined’ || typeof utms.utm_medium !== ‘undefined’ || typeof utms.utm_campaign !== ‘undefined’ ) {
var vastURL = new URL( window.jwVastTag[vHash] );
var vastParams = new URLSearchParams( vastURL.search );
var keys = Object.keys( utms );
if ( vastParams.has( ‘cust_params’ ) ) {
var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) );
} else {
var custParams = new URLSearchParams();
}
for ( var key of keys ) {
custParams.set( key, utms[key]);
}
vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) );
vastURL.search = vastParams.toString();
url = vastURL.toString();
}

console.log( ‘AMI jwp GAM tag with UTM’, url );

return new Promise((resolve, reject) => {
let bidders = [‘a9’, ‘ix’, ‘iris’];

// create a requestManager to keep track of bidder state to determine when to send ad server
// request and what amazonSlots to request from the ad server
var requestManager = {
adserverRequestSent: false,
};

//loop through bidder array and add the bidders to the request manager:
bidders.forEach( function( bidder ) {
requestManager[bidder] = false;
} );

// return true if all bidders have returned
function allBiddersBack() {
var allBiddersBack = bidders
// get the booleans from the object
.map( function( bidder ) {
return requestManager[bidder];
} )
// get rid of false values – indicates that the bidder has responded
.filter( Boolean )
// if length is equal to bidders, all bidders are back
.length === bidders.length;

return allBiddersBack;
}

// handler for header bidder responses
function headerBidderBack( bidder ) {
// return early if request to adserver is already sent
if ( requestManager.adserverRequestSent === true ) {
return;
}
// flip bidder back flag
if ( bidder === ‘a9’ ) {
requestManager.a9 = true;
console.log(‘second promise a9 ready’);
} else if ( bidder === ‘ix’ ) {
requestManager.ix = true;
console.log(‘second promise ix ready’);
} else if ( bidder === ‘iris’ ) {
requestManager.iris = true;
console.log(‘second promise iris ready’);
}
// if all bidders are back, send the request to the ad server
if ( allBiddersBack() ) {
resolve( url );
}
}

if ( typeof apstag == ‘object’ && apstag ) {
apstag.fetchBids({
slots: [{
slotID: window.prerollTag[vHash],
mediaType: ‘video’
}]
}, function( bids ) {
console.log( “AMI jwp amazon bid callback”, new Date().getTime(), bids );
window.jwpBids[vHash].amazon = true;
if ( bids.length > 0 ) { //If we have received any bids back
try {
console.log(“AMI jwp amazon bid request ad”, bids[0].encodedQsParams);
url = url + ‘&scp=’ + bids[0].encodedQsParams;
} catch ( e ) {
console.log(e);
}
} else {
console.log(“AMI jwp amazon no bids”);
}
headerBidderBack(‘a9’);
});
} else {
headerBidderBack(‘a9’);
}

headertag.cmd.push( function() {
headertag.retrieveVideoDemand( [{‘htSlotName’: ‘preroll’}], function( demand ) {
console.log( “AMI jwp IX callback”, demand );

if ( ‘undefined’ !== typeof demand.preroll && demand.preroll.length ){
window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price;

console.log( ‘AMI jwp IX Bids’, new Date().getTime(), demand.preroll[0].targeting );

var vastURL = new URL( url );
var vastParams = new URLSearchParams( vastURL.search );
if ( vastParams.has( ‘cust_params’ ) ) {
var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) );
} else {
var custParams = new URLSearchParams();
}
var keys = Object.keys( demand.preroll[0].targeting.price );
for ( var key of keys ) {
custParams.set( key, demand.preroll[0].targeting.price[key][0]);
}
vastParams.set( ‘cust_params’, custParams.toString() );
vastURL.search = vastParams.toString();
url = vastURL.toString();
}

headerBidderBack(‘ix’);
} );
} );

// Get main item context data
window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) {
// Encode the context data
console.log( ‘AMI jwp IrisTV Bids’, new Date().getTime(), data.context );
// Replace the server url with the context data (this is for simple ad requests),
// If you have the serverUrl dynamically configured, then you will need to append the context data
// under cust_params, so this is just for testing purpose

if ( data.context && Object.keys( data.context ).length ) {
var vastURL = new URL( url );
var vastParams = new URLSearchParams( vastURL.search );
if ( vastParams.has( ‘cust_params’ ) ) {
var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) );
} else {
var custParams = new URLSearchParams();
}
custParams.set( ‘iris_context’, data.context.join(‘,’));
vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) );
vastURL.search = vastParams.toString();
url = vastURL.toString();
}
headerBidderBack(‘iris’);
});

setTimeout(function(){
resolve( url );
}, 10000);
});
}

var player_jwplayer_A4J0kUxP_eEkK759I_div = jwplayer(el).setup(videoParams).on(“ready”, function(){
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var playerInstance = jwplayer(el);
ns_.StreamingAnalytics.JWPlayer( playerInstance, {
publisherId: “6036076”,
labelmapping: “ns_st_pu=”AMI”, c3=”Mens Journal”, ns_st_ge=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ia=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ce=”” + decodeURIComponent( “1” ) + “”, ns_st_ddt=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_tdt=”” + decodeURIComponent( “%2Anull” ) + “””,
});
}).on(‘adsManager’, (e) => {
var vHash = ‘ami’ + decodeURIComponent( ‘A4J0kUxP’ );
const { adsManager, videoElement } = e;
const iasConfig = {
anId: ‘928572’,
campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded
chanId: window.prerollTag[vHash],
placementId: ‘Open Auction’,
pubOrder: ‘Video’,
pubId: ‘Direct’
};
if (googleImaVansAdapter) {
googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig);
}
}).once(“play”, function(){
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var playerInstance = jwplayer(el);
loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins[“https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js”])
}).on(‘play’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());
// skip if the video was paused and trying to resume
if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) {
return;
}

window.permutive.track(“VideoPlay”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language:”English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});

console.log(“Permutive video play”);

}).on(‘complete’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());
// skip if the video was paused and trying to resume
if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) {
return;
}

window.permutive.track(“VideoComplete”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
console.log(“Permutive video event:”, e);
window.lock_25 = false;
window.lock_50 = false;
window.lock_75 = false;
window.lock_100 = false;
}).on(‘time’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );
var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());
var progress = (e.currentTime/e.duration).toFixed(2);

if (
(0.25 === progress && false === window.lock_25) ||
(0.5 === progress && false === window.lock_50) ||
(0.75 === progress && false === window.lock_75) ||
(100 === progress && false === window.lock_100)
) {
window.permutive.track(“VideoProgress”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
progress: Number(progress),
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
if ( 0.25 === progress ) {
window.lock_25 = true;
}
if ( 0.5 === progress ) {
window.lock_50 = true;
}
if ( 0.75 === progress ) {
window.lock_75 = true;
}
if ( 1 === progress ) {
window.lock_100 = true;
}
console.log(“Permutive video play progress ” + progress);
}

}).on(‘mute’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.permutive.track(“VideoEvent”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
event: (e.mute) ? “sound off” : “sound on”,
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});

console.log(“Permutive video event:”, e);

}).on(‘fullscreen’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.permutive.track(“VideoEvent”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
event: (e.fullscreen) ? “fullscreen on” : “fullscreen off”,
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
console.log(“Permutive video event:”, e);
}).on(‘ready’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());
console.log(jwInfo);
window.lock_25 = false;
window.lock_50 = false;
window.lock_75 = false;
window.lock_100 = false;

window.permutive.track(“VideoLoad”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
console.log(“Permutive video load event”);
}).on(‘adPlay’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

window.adInfo = e;
var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.adlock_25 = false;
window.adlock_50 = false;
window.adlock_75 = false;
window.adlock_100 = false;

window.permutive.track(“VideoAdPlay”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
ad: {
duration: window.adInfo.duration,
creative_name: window.adInfo.adtitle,
ad_id: window.adInfo.adId,
title: window.adInfo.adtitle,
video_type: “instream” //outstream
},
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
console.log(“Permutive video ad play”);
}).on(‘adClick’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );

var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());

window.permutive.track(“VideoAdClick”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
ad: {
duration: window.adInfo.duration,
creative_name: window.adInfo.adtitle,
ad_id: window.adInfo.adId,
title: window.adInfo.adtitle,
video_type: “instream” //outstream
},
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
console.log(“Permutive video ad click”);
}).on(‘adTime’, (e) => {
var el = decodeURIComponent( “jwplayer_A4J0kUxP_eEkK759I_div” );
var vHash = “ami” + decodeURIComponent( “A4J0kUxP” );
var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex());
var progress = (e.position/e.duration).toFixed(2);

if (
(0.25 >= progress && false === window.adlock_25) ||
(0.5 >= progress && false === window.adlock_50) ||
(0.75 >= progress && false === window.adlock_75) ||
(0.95 >= progress && false === window.adlock_100)
) {

window.permutive.track(“VideoAdProgress”, {
play_id: el, //this will stay constant for all of the events emitted during the same video play
progress: Number(progress),
ad: {
duration: window.adInfo.duration,
creative_name: window.adInfo.adtitle,
ad_id: window.adInfo.adId,
title: window.adInfo.adtitle,
video_type: “instream” //outstream
},
video: {
duration: jwInfo.duration, // in seconds
name: jwInfo.title,
video_id: decodeURIComponent( “A4J0kUxP” ),
description: jwInfo.description,
published_at: new Date(jwInfo.pubdate).toISOString()
},
enriched_data:{
tvchannel: decodeURIComponent( “Men%26%23039%3Bs%20Journal” ), //tv channel name
language: “English”, //language of the content
type: “video”,
keywords: jwInfo.tags.split(“,”), //keywords for the page
}
});
if ( 0.25 >= progress ) {
window.adlock_25 = true;
}
if ( 0.5 >= progress ) {
window.adlock_50 = true;
}
if ( 0.75 >= progress ) {
window.adlock_75 = true;
}
if ( 0.95 >= progress ) {
window.adlock_100 = true;
}
console.log(“Permutive video ad progress ” + progress);
}
}).setPlaylistItemCallback(function(item, index) {
return waitForAmazon // Wait until Amazon is loaded.
.then(() => performAsyncBidding( player_jwplayer_A4J0kUxP_eEkK759I_div, item, index ), () => { console.log(“AMI JWP bidding FAILER”); }) // External bidding.
.then(tag => {
// Update the playlist item.
console.log(“AMI jwp new headerbid”, tag);

return Object.assign({}, item, {
adschedule: [{
tag,
offset: “pre”
}]
});
}).catch(function(e){
console.log(“AMI jwp bidding failed”, e);
return item;
}); // If bidding fails, use unmodified playlist item.
});;
clearInterval(checkJWReady);
}
}, 500);
})();

 

P.S. Now’s the time to splurge on that adjustable weight bench for your at-home gym setup to take full advantage of your new workout tool.

The Most Versatile Barbells for Lifting at Home

The Griffin barbell is great choice for building up your home gym.
Courtesy Image

1. Griffin Fitness Stainless Steel Power Bar

Serious lifters can’t go wrong with this power barbell that has smooth sleeves to help avoid damage to weight plates. It’s built to last, featuring a 29-mm shaft diameter and knurling marks for greater grip. It doesn’t have many bells and whistles, but if you’re all about gains and grunt work, who cares?

[$375; griffin.fitness]

Get it

The Bowflex barbell is great choice for building up your home gym.
Courtesy Image

2. Bowflex SelectTech 2080 Barbell with Curl Bar

This adjustable system lets you lift from 20 to 80 pounds in 10-pound increments with the turn of a dial to save you time between reps and exercises. If you lift even heavier, you can upgrade the set to 120 pounds with this add-on. If you like to follow along with workouts, spring for the barbell stand with media rack for space-saving storage and a shelf to prop up a tablet or phone.

[$599; bowflex.com]

Get it

Bowflex SelectTech 2080 Barbell

Bowflex’s New Adjustable Barbells Reviewed

Read article

 

The Step Fitness barbell is great choice for building up your home gym.
Courtesy Image

3. Step Fitness Club Quality 4-Weight Deluxe Barbell Set

This Amazon’s Choice set includes the bar for a total weight of 60 pounds with a set of 2.75-pound, 5.5-pound, 8.25-pound, and 11-pound weights. Each weight is designed like a steering wheel, with several grips, so you can use them off the bar for additional exercises. They practical design makes adding and removing weight a quick process.

[$158 for 60-pound set; amazon.com]

Get it

 

The Everyday Fitness barbell is great choice for building up your home gym.
Courtesy Image

4. Everyday Essentials Olympic Super Curl Barbell Curl Bar, 48-inch

Let the resistance training begin with this affordable find. This steel bar has a knurled grip and can hold up to 350 pounds. Plates and collars to keep the weights securely in place aren’t included, but the bar itself weighs 25 pounds, so most fitness enthusiasts will only have to buy a few extra plates to hit their max.

[$89; amazon.com]

Get it

Occlusion Training Bands

Weightlifters Say These Occlusion Training Bands Are The Best

Read article

The Proform fitness mirror with barbell is great choice for building up your home gym.
Courtesy Image

5. ProForm Vue

Curveball, we know. But this smart fitness mirror comes with a 10-pound barbell, two 5-pound dumbbell bars, four 2.5-pound weight plates, and other fitness accessories to whip you into shape. Through iFit’s interactive connected fitness platform, stellar trainers can guide you through a wide range of strength-training exercises with the barbell, as well as free weights (plus equipment-free moves). Cool off with a relaxed yoga or guided meditation session and part with that beast of a barbell until you meet again in this vast, new mirror-verse.

[$1,499; proform.com]

Get it

The post The Most Versatile Barbells for Home Workouts appeared first on Men's Journal.



Article link