ips.templates.set('nexus.store.productImage'," ");;
;(function($,_,undefined){"use strict";ips.controller.register('nexus.front.store.cartReview',{initialize:function(){this.on('click','[data-action="removeFromCart"]',this.removeFromCart);this.on('submit','[data-role="quantityForm"]',this.quantityForm);this.on('click','[data-action="checkout"]',this.checkout);},checkout:function(e){if($(e.target).hasClass('ipsButton--disabled')){e.preventDefault();}else{$(e.target).addClass('ipsButton--disabled');}},removeFromCart:function(e){e.preventDefault();var self=this;var url=$(e.currentTarget).attr('href');ips.ui.alert.show({type:'confirm',message:ips.getString('confirmRemoveItem'),icon:'warn',callbacks:{ok:function(){ips.getAjax()(url).done(function(response){self.scope.find('[data-role="cart"]').html(response);});}}});},quantityForm:function(e){e.preventDefault();var self=this;var form=$(e.currentTarget);var menu=form.closest('.ipsMenu');menu.css({height:menu.outerHeight()+'px'}).addClass('ipsLoading');form.hide();ips.getAjax()(form.attr('action'),{data:form.serialize()}).done(function(response){self.scope.find('[data-role="cart"]').html(response);}).fail(function(response){menu.removeClass('ipsLoading');form.show();ips.ui.alert.show({type:'alert',icon:'warn',message:response.responseJSON});});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('nexus.front.store.category',{_ajaxObj:null,initialize:function(){this.on('click','[data-action="filter"],[data-page]',this.changeView);this.setup();},setup:function(){ips.utils.history.replaceState({controller:'storeCategoryView'},'nexus.front.store.category',window.location.href);window.addEventListener('historychange:nexus.front.store.category',e=>this.stateChange(e));},changeView:function(e){e.preventDefault();if($(e.target).hasClass('ipsSideMenu_item')){$(e.target).toggleClass('ipsSideMenu_itemActive');}
const url=$(e.currentTarget).attr('href');ips.utils.history.pushState({controller:'storeCategoryView'},'nexus.front.store.category',$(e.currentTarget).attr('href'));},stateChange:function(){const url=window.location.href;if(!('nexus.front.store.category'in ips.utils.history.getState())){return;}
ips.utils.analytics.trackPageView(url);this._updateView(url)},async _updateView(url){if(this._ajaxObj&&_.isFunction(this._ajaxObj.abort)){this._ajaxObj.abort();}
this._setLoading(true);try{const response=await ips.fetch(url)
$('[data-role="packageListContainer"]').html(response.contents);$('[data-role="categorySidebar"]').html(response.sidebar);$(document).trigger('contentChange',[$('[data-role="packageListContainer"]'),$('[data-role="categorySidebar"]')]);}catch(e){Debug.log(`Failed to fetch data for a nexus store category after a filter/sort/view update from ${url}`)
Debug.warn(e)}
this._setLoading(false)},_setLoading:function(state){if(state){$('[data-role="packageList"]').css('height',$('[data-role="packageList"]').height()).html('').addClass('ipsLoading');}else{$('[data-role="packageList"]').css('height','auto').removeClass('ipsLoading');}}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('nexus.front.store.currencySelect',{initialize:function(){this.on('click','a',this.currencyChangeWarning);},currencyChangeWarning:function(e){e.preventDefault();var url=$(e.currentTarget).attr('href');ips.ui.alert.show({type:'confirm',message:ips.getString('store_currency_change_warning'),icon:'warn',callbacks:{ok:function(){window.location=url;}}});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('nexus.front.store.giftCard',{initialize:function(){this.on('click','[data-color]',this.toggleColor);this.on('change','[name="gift_voucher_amount"], [name="x_gift_voucher_amount"]',this.changeAmount);this.setup();},setup:function(){this.changeAmount();if($('input[name="gift_voucher_color"]').val()){this.setColor($('input[name="gift_voucher_color"]').val());}},changeAmount:function(){var amountVal=this.scope.find('[name="gift_voucher_amount"]:checked').val();var customVal=this.scope.find('[name="x_gift_voucher_amount"]').val();var amount=0;if(amountVal=='x'){if(!_.isUndefined(customVal)&&customVal!=''&&customVal!='x'){amount=customVal;}
var scope=this.scope;ips.getAjax()(this.scope.attr('data-formatCurrencyUrl')+'&amount='+amount).done(function(response){scope.find('[data-role="value"]').text(response);});}else{amount=amountVal;this.scope.find('[data-role="value"]').text(this.scope.find('label[for="'+this.scope.find('[name="gift_voucher_amount"]:checked').attr('id')+'"]').text());}},toggleColor:function(e){e.preventDefault();var swatch=$(e.currentTarget);var color=swatch.attr('data-color');this.setColor(color);},setColor:function(color){this.scope.find('[data-role="giftCard"]').css({backgroundColor:'#'+color}).end().find('input[type="hidden"][name="gift_voucher_color"]').val('#'+color).end().find('[data-color]').closest('li').removeAttr('data-selected');$(this.scope).find('[data-color="'+color+'"]').closest('li').attr('data-selected',true);}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('nexus.front.store.packagePage',{_productURL:'',initialize:function(){this.on('change','select, input[type="radio"], [name="quantity"], [name="renewal_term"]',this.updatePriceAndStock);this.on('submit','form',this.submitForm);this.on('click','[data-action="toggleImage"]',this.toggleScreenshot);this.on(document,'addToCart.nexus',this.addToCart);this.setup();},setup:function(){this.scope.find('.cNexusProduct_images [data-action="toggleImage"]').first().addClass('cNexusProduct_imageSelected');if(this.scope.find('select,input[type="radio"]').length){this.updatePriceAndStock();}},toggleScreenshot:function(e){e.preventDefault();var clickedImage=$(e.currentTarget);var thumbImage=clickedImage.find('img').attr('src');var fullImage=clickedImage.attr('href');var html=ips.templates.render('nexus.store.productImage',{fullURL:fullImage,thumbURL:thumbImage});this.scope.find('.cNexusProduct_primaryImage').replaceWith(html).end().find('[data-action="toggleImage"]').removeClass('cNexusProduct_imageSelected');clickedImage.addClass('cNexusProduct_imageSelected');$(document).trigger('contentChange',[this.scope.find('.cNexusProduct_primaryImage').parent()]);},submitForm:function(e){var self=this;var form=this.scope.find('form');if(form.attr('data-noajax')){return true;}
e.preventDefault();e.stopPropagation();var formDims=ips.utils.position.getElemDims(form);var formPos=ips.utils.position.getElemPosition(form);var loadingElem=$('