Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging
Eshoppers

Gaia Herbs Male Libido - Herbal Supplement with Saw Palmetto, Horny Goat Weed, Maca & Oats - Supports Stamina, Vitality & Hormone Balance for Men - 120 Vegan Liquid Phyto-Capsules (30-Day Supply) 120 Count (Pack of 1) retail_packaging

$5000

to get 1% back

-
Free Returns
Secure Checkout
30-Day Guarantee
Earn $0.50 back with free PlusMember prices and Talents back on every order. No fees, ever.
  • Supports Stamina & Endurance: Uses tongkat ali, Tribulus terrestris, Epimedium & Sarsaparilla root
  • Prostate Health & Hormone Balance Support: Supports men’s health while providing antioxidant support
  • Supports Energy & Endurance: Our blend with horny goat weed helps sustain the spark in the bedroom*

Read more

Available FREE SHIPPING From
Eshoppers
Ships from this seller in
2 Hours on average
Very Fast0–24 Hrs
Fast1–2 Days
Standard2–4 Days
Slower4+ Days
Important Information

Third-Party Product Disclaimer

This product is sold and fulfilled by an independent third-party seller. This product may have been reviewed against Truly Free’s standards for the limited purpose of assigning marketplace badges.

Any such review is based on information provided by the seller and does not constitute certification, approval, or a guarantee of safety, efficacy, or regulatory compliance.

Truly Free assumes no liability for inaccuracies, omissions, product claims or for any damages or adverse outcomes arising from the use or misuse of this product.

Any Truly Free Trust Badges shown here were reviewed against our published standards and approved based on information submitted by the seller. The seller has sole access to and control over its product listing content and is solely responsible for the accuracy of any additional claims being made.

Skout Organics protein bars product shot

Skout Organic

Skout Organic makes clean, plant-based snacks with 7 or fewer simple ingredients. Certified Organic, Vegan, and Gluten-Free.

Shop the storefront


Previous page

Next page

P.now('premium-aplus-13-carousel-1').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-1', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '1'; var carouselName = 'premium-aplus-13-carousel-1'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-1').execute(function(init){init();});}));

Previous page

Next page

P.now('premium-aplus-13-carousel-2').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-2', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '2'; var carouselName = 'premium-aplus-13-carousel-2'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-2').execute(function(init){init();});}));

Previous page

Next page

P.now('premium-aplus-13-carousel-3').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-3', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '3'; var carouselName = 'premium-aplus-13-carousel-3'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-3').execute(function(init){init();});}));

Previous page

Next page

P.now('premium-aplus-13-carousel-4').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-4', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '4'; var carouselName = 'premium-aplus-13-carousel-4'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-4').execute(function(init){init();});}));

Description


Previous page

Next page

P.now('premium-aplus-13-carousel-1').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-1', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '1'; var carouselName = 'premium-aplus-13-carousel-1'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-1').execute(function(init){init();});}));

Previous page

Next page

P.now('premium-aplus-13-carousel-2').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-2', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '2'; var carouselName = 'premium-aplus-13-carousel-2'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-2').execute(function(init){init();});}));

Previous page

Next page

P.now('premium-aplus-13-carousel-3').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-3', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '3'; var carouselName = 'premium-aplus-13-carousel-3'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-3').execute(function(init){init();});}));

Previous page

Next page

P.now('premium-aplus-13-carousel-4').execute(function(init) { if (init) { return; } P.register('premium-aplus-13-carousel-4', function() { return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('paginate-carousel', function (A, $, framework) { const ENTER_KEY_CODE = 13; const ESCAPE_KEY_CODE = 27; const LEFT_ARROW_KEY = 37; const RIGHT_ARROW_KEY = 39; const HOME_KEY = 36; const END_KEY = 35; var moduleId = '4'; var carouselName = 'premium-aplus-13-carousel-4'; var paginationAction = 'aplus-pagination-dot-action-' + moduleId + '-' + carouselName; var paginationGroup = '#aplus-pagination-group-' + moduleId + '-' + carouselName; /* If the carousel goes to a new page */ A.on('a:carousel:'+carouselName+':change:pageNumber', function (data) { A.$(paginationGroup+' .carousel-slider-circle').removeClass('aplus-carousel-active').attr('aria-selected', 'false').attr('tabindex', -1) .eq(data.newValue - 1).addClass('aplus-carousel-active').attr('aria-selected', 'true').attr('tabindex', 0); }); function syncPaginationDotsWithCarouselPages(numPages) { const parentElement = document.querySelector(paginationGroup); if (parentElement && parentElement.children) { const children = parentElement.children; for (let i = 0; i < children.length; i++) { if (i >= numPages) { // If number of dots > num of pages, we should hide other dots children[i].classList.add('aplus-pagination-dot--display-none'); } else if (children[i].classList.contains('aplus-pagination-dot--display-none')) { // Reset display of dots if it was hidden before children[i].classList.remove('aplus-pagination-dot--display-none'); } } } } framework.onInit(carouselName, function (carousel) { try { var totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); /* Resize event handler to re-calculate the pagination dots count based on orientation */ window.addEventListener('resize', function() { carousel.resize(); totalPages = carousel.getAttr('totalPages'); syncPaginationDotsWithCarouselPages(totalPages); }); A.declarative(paginationAction, 'click keydown', function(event){ var isClick = event.type === 'click'; var isKeydown = event.type === 'keydown'; var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE; var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE; var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY; var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY; var isHome = isKeydown && event.$event.keyCode === HOME_KEY; var isEnd = isKeydown && event.$event.keyCode === END_KEY; if (isClick || isEnter) { var data = event.data; carousel.gotoPage(data.page); } else if (isEsc) { event.$target.blur(); } else if (isLeftArrow || isRightArrow || isHome || isEnd) { event.$event.preventDefault(); const dots = A.$(paginationGroup + ' .carousel-slider-circle'); const currentIndex = dots.index(event.$target); let nextIndex; if (isLeftArrow) { nextIndex = currentIndex > 0 ? currentIndex - 1 : dots.length - 1; } else if (isRightArrow) { nextIndex = currentIndex < dots.length - 1 ? currentIndex + 1 : 0; } else if (isHome) { nextIndex = 0; } else if (isEnd) { nextIndex = dots.length - 1; } dots.eq(nextIndex).focus(); carousel.gotoPage(nextIndex + 1); } }); } catch (e) { P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources'); } }); }); } });});



(function(f) {var _np=(window.P._namespace('PremiumAplusModule'));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.when('premium-aplus-13-carousel-4').execute(function(init){init();});}));

Return Policy

Questions & Answers (0)