").attr({id:i,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return t("
").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]=e,n},_find:function(e){var i=e.data("ui-tooltip-id");return i?t("#"+i):t()},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0),t("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))})}})})(jQuery);
;
$(function(){$('.avg-score-histogram').each(function(){var $this=$(this);var context=$this.find('canvas');var data=JSON.parse($this.find('.data').text());var values=[];for(var key in data){if(data.hasOwnProperty(key)){values.push(data[key]*100);}}
new Chart(context,{type:'line',data:{labels:Object.keys(data),datasets:[{label:'Avg score',data:values,borderColor:'#9fce70',borderWidth:2,pointBackgroundColor:'transparent',pointBorderColor:'transparent',pointHoverBackgroundColor:'#425e6a',pointHoverBorderColor:'#425e6a',tension:0,fill:false}]},options:{responsive:true,scales:{xAxes:[{ticks:{maxRotation:0}}],yAxes:[{ticks:{max:100,min:0,stepSize:10}}]},legend:{display:false},title:{display:true,text:'Average Exam Score Tracked Over Time'},tooltips:{mode:'label'},hover:{mode:'label'}}});})});$(function(){var $timers=$('.timer .value');if($timers.length){var interval=0;var format=function(total){var hours=Math.floor(total/3600);var minutes=Math.floor((total-(hours*3600))/60);var seconds=total-(hours*3600)-(minutes*60);if(hours<10)hours="0"+hours;if(minutes<10)minutes="0"+minutes;if(seconds<10)seconds="0"+seconds;return hours+':'+minutes+':'+seconds;};var increment=function(){console.log(interval);interval++;$.get('/exam/updateTimeSpent/'+$("input[name='questionIndex']").val());$timers.each(function(){var $value=$(this);var original=parseInt($value.data().value,10);$value.html(format(original+interval));});};setInterval(increment,1000);}});$(function(){$('.show-subjects').on("change",function(){$('.subjects-table').removeClass('hidden');});$('.hide-subjects').on("change",function(){$('.subjects-table').addClass('hidden');});});$(function(){$('.show-areas').on("change",function(){$('.areas-table').removeClass('hidden');});$('.hide-areas').on("change",function(){$('.areas-table').addClass('hidden');$('.questions-area')[0].checked=false;$('.questions-area')[1].checked=false;$('.questions-area')[2].checked=false;});});$(function(){$("input[name='dryRun']").on("click",function(e){var url="/pb/widgets/digitalQuestion/calculate";$.ajax({type:"POST",url:url,data:$(".create__test__form").serialize(),success:function(data)
{var jsonData=JSON.parse(data);if(jsonData.errorMsg){$("div.error").text(jsonData.errorMsg);$("span.result-count").text("");}else{$("span.result-count").text(" There are "+jsonData.resultCount+" available questions.");$("div.error").text("");}}});e.preventDefault();});});
var commerce={};commerce.page={};commerce.page.cart={};
literatum.utils={send:function(request,callback,error){if(!request)
return;request.ajaxRequest=true;return $.ajax({url:'/action/'+request.action,type:'POST',contentType:'application/x-www-form-urlencoded',crossDomain:true,xhrFields:{withCredentials:true},data:request,success:callback,error:error});},copyForm:function(source,to){$(source).find('input').each(function(){var name=$(this).attr('name');var targetField=$(to).find("input[name='"+name+"']");targetField.val($(this).val());});$(source).find('select').each(function(){var value=$(this).find('option:selected').val();$(to).find("select[name='"+$(this).attr('name')+"']").find("option[value='"+value+"']").prop('selected',false);});},clearForm:function(form){$(form).find("input[type=text], select, textarea").val('');},hasErrors:function(attributes){var hasErrors=false;attributes&&Object.keys(attributes).forEach(function(key){hasErrors|=(key.toLowerCase().indexOf("error")>-1);});return hasErrors;},hasAttributes:function(attributes){return attributes&&Object.keys(attributes).length>0;},scroll:function(selector,speed,offset){var $object=null;if(selector instanceof jQuery){$object=selector;}else{$object=$(selector);}
if(!$object||$object.length==0)
return;if(typeof speed==='undefined'){speed=2000;}
if(typeof offset==='undefined'){offset=$object.offset().top;}else{offset=$object.offset().top-offset}
$('html, body').animate({scrollTop:offset},speed);},nextCheckoutSection:function(){var $widget=$(".eCommerceCheckoutFieldsWidget .scroll-focus").closest('.widget');if($(window).width()>992){literatum.utils.scroll($widget,800,10);}else{literatum.utils.scroll($widget,800,60);}},getCountryState:function(iso2Alpha,callback){return literatum.utils.send({action:'getCountryStates',country:iso2Alpha},callback);}};if($(".add-to-cart").length>0){$("body").on("click",function(e){var $target=$(e.target);if(!$target.hasClass("add-to-cart")&&$target.closest(".add-to-cart").length==0){$(".add-to-cart").removeClass("opened");$(".add-to-cart").find(".purchaseArea").slideUp();}});}
$.fn.serializeObject=function()
{var o={};var a=this.serializeArray();console.log("Form");console.log(a);$.each(a,function(){if(o[this.name]!==undefined){if(!o[this.name].push){o[this.name]=[o[this.name]];}
o[this.name].push(this.value||'');}else{o[this.name]=this.value||'';}});return o;};
commerce.binders=(function(){var instance={};instance.removeDiscount=function(e){e.preventDefault();commerce.cart.discounts.remove($(this).data('discount'));};instance.disableDiscount=function(e){e.preventDefault();commerce.cart.discounts.disable($(this).data('discount'));};instance.removeItem=function(e){e.preventDefault();commerce.cart.buyingList.remove($(this).data("item-id"));};instance.submitBilling=function(e){e.preventDefault();commerce.cart.billing.update($("form.billing").serializeObject());};instance.editBilling=function(e){e.preventDefault();literatum.widgets.billing.render({},{editing:true});};instance.expandBilling=function(e){e.preventDefault();$(".billingAddress").slideToggle();};instance.sameAsShipping=function(e){if($(this).is(":checked")){literatum.utils.copyForm('.checkoutShipping form','.billingPayment form')}else{literatum.utils.clearForm('.billingPayment form');}};instance.countryChanged=function(e){var countryCode=$(this).val();var $state=$(this).closest("form").find("select[name='state']");if($state.find("option[data-country='"+countryCode+"']").length>0){$state.find("option:not([data-country='"+countryCode+"'])").hide();$state.find("option[data-country='"+countryCode+"']").show();if(!$state.is(":visible")){$state.parent().slideDown();}}else{$state.parent().slideUp();}
$state.val(null);};instance.bind=function(){$("*[data-bind]").each(function(){var binderName=$(this).data("bind");console.log("Binding '"+binderName+"' to element '"+this+"'");var binder=instance[binderName];$(this).on('click',binder);});};instance.unbind=function(){$("*[data-bind]").each(function(){try{var binderName=$(this).data("bind");var binder=instance[binderName];$(this).off('click',binder);}catch(e){console.log(e);}});};return instance;}());function registerListeners(){try{commerce.binders.unbind();}catch(e){console.log(e);}
try{commerce.binders.bind();}catch(e){commerce.binders.unbind();}};
literatum.LoginSuggestionsWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);};literatum.LoginSuggestionsWidget.prototype=new literatum.Widget();literatum.LoginSuggestionsWidget.id='loginSuggestions';literatum.LoginSuggestionsWidget.action='/pb/widgets/identity/loginSuggestions';literatum.LoginSuggestionsWidget.binders={start:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var login=$(this).siblings('[name=login]').val();if(!login){login=widget.find("[name=login]").val();}
var id=widget.find("[name=id]").val();var $errorMessage=widget.find('.message.error');var $message=widget.find('.message.info');var redirect=widget.find('[name=redirectUri]').val();var firstTry=widget.find('[name=firstTry]').val();literatum.utils.send({'action':'doPasswordLessLogin','login':login,'loginAction':'start','id':id,'redirectUri':redirect,'firstTry':firstTry},function(data){if(data.success){var loginAction=data['loginAction'];widget.render({},{view:loginAction,'canSwitch':data.canSwitch,'newUser':data.newUser,'message':data.message,'errorMessage':data.errorMessage,'login':login,'redirectUri':data.redirect,'firstTry':data.login!=login});}else{$errorMessage.html(data.errorMessage);$message.html(data.message);}
loading.done();});},submitCode:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var code=widget.find(".code").val();var remember=widget.find("[name=remember]").val();var id=widget.find("[name=id]").val();var redirect=widget.find('[name=redirectUri]').val();literatum.utils.send({'action':'doPasswordLessLogin','code':code,'loginAction':'code','id':id,'remember':remember,'redirectUri':redirect,},function(data){var $message=widget.find('.message.info');var $hiddenMessage=widget.find('[name=hiddenMessage]');var $errorMessage=widget.find('[name=errorMessage]');if(data.success){if(data.newUser){widget.render({},{view:'new'});}else{window.location.href=data.redirect;}}else{$errorMessage.html(data.errorMessage);$message.html(data.message);$errorMessage.removeClass('hidden');$hiddenMessage.addClass('hidden');widget.registerListeners();}
loading.done();});},submitPassword:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var id=widget.find("[name=id]").val();var password=widget.find("[name=password]").val();var remember=widget.find("[name=remember]").val();var $message=widget.find('.message.info');var $errorMessage=widget.find('.message.error');var redirect=widget.find('[name=redirectUri]').val();literatum.utils.send({'action':'doPasswordLessLogin','password':password,'loginAction':'password','id':id,'remember':remember,'redirectUri':redirect},function(data){if(data.success){window.location.href=data.redirect;}else{$errorMessage.html(data.errorMessage);$message.html(data.message);}
loading.done();});},usePassword:function(e,widget){e.preventDefault();var redirect=widget.find('[name=redirectUri]').val();var login=widget.find("[name=login]").val();widget.render({},{view:'password_plw','canSwitch':true,'redirectUri':redirect,'login':login});},useCode:function(e,widget){e.preventDefault();var login=widget.find("[name=login]").val();var id=widget.find("[name=id]").val();var $errorMessage=widget.find('.message.error');var $message=widget.find('.message.info');var redirect=widget.find('[name=redirectUri]').val();literatum.utils.send({'action':'doPasswordLessLogin','login':login,'loginAction':'enablePL','id':id,'redirectUri':redirect},function(data){if(data.success){var loginAction=data['loginAction'];widget.render({},{view:loginAction,'canSwitch':true,'message':data.message,'errorMessage':data.errorMessage,'login':login,'redirectUri':redirect});}else{$errorMessage.html(data.errorMessage);$message.html(data.message);}});},back:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();widget.render({},{},function(){loading.done();});},showIndiv:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var currentView=widget.find("[name=currentView]").val();widget.render({},{view:'individual',currentView:currentView},function(){initIndividualView();loading.done();});},showOrg:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var currentView=widget.find("[name=currentView]").val();widget.render({},{view:'organizational',currentView:currentView},function(){loginSuggestionsInitSearch(function(){loading.done();});});},showPass:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var login=widget.find("[name=login]").val();var emailRegex=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;var phoneRegex=/^\+\d{12}$/;if(!emailRegex.test(login)&&!phoneRegex.test(login)){widget.render({},{view:'individual',login:login,error2:true},function(){initIndividualView();loading.done();});return;}
var currentView=widget.find("[name=currentView]").val();widget.render({},{view:'password',login:login,currentView:currentView},function(){initPasswordView();loading.done();});},localLogin:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var login=widget.find("[name=login]").val();var password=widget.find("[name=password]").val();var remember=widget.find("[name=remember]").is(':checked');literatum.utils.send({'action':'doLogin','login':login,'password':password,'remember':remember,'redirectUri':'/'},function(data){if(data.success)
window.location.href='/';else{var prevView=widget.find("[name=prevView]").val();widget.render({},{view:'password',error:true,login:login,currentView:prevView},function(){initPasswordView();loading.done();});}});},showAllInstitutions:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();widget.render({},{view:'fullInst'},function(){loading.done();})},removeAccount:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var userId=$(this).siblings('[name=userId]').val();var cloudId=$(this).closest('.suggestion.item').find('[name=cloudId]').val();widget.render({},{userId:userId,cloudId:cloudId},function(){loginSuggestionsInitSearch(function(){loading.done();});});},next:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var url=$(this).closest('.suggestion.item').find('[name=url]').val();if(url){window.location.href=url;}
else{var login=$(this).siblings('[name=login]').val();var currentView=widget.find("[name=currentView]").val();widget.render({},{view:'password',login:login,currentView:currentView},function(){loading.done();});}},showFed:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var fedName=$(this).find('[name=fedName]').val();widget.render({},{view:'fed',fedName:fedName},function(){loading.done();});},showHistory:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();widget.render({},{},function(){loading.done();});}};literatum.LoginSuggestionsWidget.find=function(){var $result=$("*[data-widget-def='"+literatum.LoginSuggestionsWidget.id+"']");if($result.length>0){return $result;}
$result=$("*[widget-def='"+literatum.LoginSuggestionsWidget.id+"']");if($result.length>0){return $result;}
return $("."+literatum.LoginSuggestionsWidget.id);};literatum.LoginSuggestionsWidget.prototype.registerListeners=function(){Object.getPrototypeOf(literatum.LoginSuggestionsWidget.prototype).registerListeners.call(this);this.find('.pass-less-form').each(function(){var $form=$(this);var $login=$form.find('.login');var $submit=$form.find('[name=submit]');$login.on('input',function(){if(!$login.val()){$submit.attr('disabled',true);}else{$submit.prop('disabled',false);}});});this.find('.pass-less-form').each(function(){var $form=$(this);var $login=$form.find('.code');var $submit=$form.find('[name=submit]');$login.on('input',function(){if(!$login.val()){$submit.attr('disabled',true);}else{$submit.prop('disabled',false);}});});this.find('.pass-less-form').each(function(){var $form=$(this);var $hiddenMessage=$form.find('[name=hiddenMessage]');var $errorMessage=$form.find('[name=errorMessage]');setTimeout(function(){$hiddenMessage.removeClass('hidden');$errorMessage.addClass('hidden');},30000);});};literatum.widgets.register(literatum.LoginSuggestionsWidget);$(function(){loginSuggestionsInitSearch();});function initPasswordView(){$('.lgn__sug__submit__pass').prop("disabled",!$('.lgn__sug__password__input').val());$('.lgn__sug__password__input').on('keypress',function(e){var key=e.which||e.keyCode;if(key===13){$('.lgn__sug__submit__pass').trigger("click");}});$('.lgn__sug__password__input').on('keyup',function(){$('.lgn__sug__submit__pass').prop("disabled",!$(this).val());});}
function initIndividualView(){$('.lgn__sug__submit__individual').prop("disabled",!$('.lgn__sug__text__input__individual').val());$('.lgn__sug__text__input__individual').on('keypress',function(e){var key=e.which||e.keyCode;if(key===13){$('.lgn__sug__submit__individual').trigger("click");}});$('.lgn__sug__text__input__individual').on('keyup',function(){$('.lgn__sug__submit__individual').prop("disabled",!$(this).val());});}
function loginSuggestionsInitSearch(fun){var $el=$('#login_suggestions_org_search');if($el.length){var ms=$el.magicSuggest({allowFreeEntries:false,data:'/action/ssostart',hideTrigger:true,maxSelection:1,placeholder:'Type the name of your organization',renderer:function(data){return'
';}});$(ms).on("load",fun);}};
var Track={};(function(undefined){var jquery=typeof jQuery!='undefined';var elements={};var userAgent=navigator.userAgent.toLowerCase();var defaultAjaxSettings={async:!/webkit/.test(userAgent),asynchronous:!/webkit/.test(userAgent),cache:false,timeout:/msie/.test(userAgent)?0:100,requestTimeout:/msie/.test(userAgent)?0:100,contentType:'application/x-www-form-urlencoded',url:'/action/clickThrough'};var extend=function(dst,src){if(jquery){extend=jQuery.extend;}else{extend=Object.extend;}
return extend(dst,src);};var each=function(o,iterator){if(jquery){each=jQuery.each;}else{each=function(object,callback){var name,i=0,length=object.length,isObj=length===undefined||typeof object==="function";if(isObj){for(name in object){if(callback.call(object[name],name,object[name])===false){break;}}}else{for(var value=object[0];i
-1){data.LinkIndex=linkIndex+1;}}}}}}});if(event.which==1){data.ClickPageX=event.pageX;data.ClickPageY=event.pageY;}
return data;}})();
(function(){var TrackSearchResults=function(Track,$,undefined){var $searchResults=$('.searchResultContainer, #frmSearchResults, #frmSearch, #searchResultsAll, #searchResults, .searchResult, .search-result, #searchResultContent, .os-search-results');if(!$searchResults.length){return;}
Track('setup',{ajax:{url:'/action/analytics',useBeacon:true}});var resultSelectorAction={selector:'a[href^="/doi"], a[href^="/article"]',addData:extractDataSearchResult,data:{EventType:'SearchResultClicked'}};Track({'.searchResultContainer .articleLinks, #frmSearch .articleEntry td, .searchResultsListing li':resultSelectorAction,'#searchResultsAll .articleEntry td, #searchResults .searchResultItem .articleInfo':resultSelectorAction,'#frmSearchResults .articleEntry td, #frmSearchResults .articleEntry div, #frmSearchResults .searchResultItem span':resultSelectorAction,'#frmSearchResults .searchResultItem .atcl-item, #frmSearchResults .searchResultItem div':resultSelectorAction,'#frmSearchResults .searchEntry .searchEntryTools, .searchResult .result-list li':resultSelectorAction,'.contentContainer .searchResult td, .search-result .items-results li span':resultSelectorAction,'#frmSearch .article-details, #frmSearchResults .search-results .search-result-item':resultSelectorAction,'#searchResultContent .o-results .m-result, #frmSearchResults .search-results .articleBox, .search-result .items-results .issue-item_metadata':resultSelectorAction,'.search-result .items-results .issue-item, .os-search-results .os-search-results_item':resultSelectorAction});};if(typeof Track!='undefined'){if(typeof jQuery!='undefined'){$(function(){TrackSearchResults(Track,jQuery);});}else if(typeof window.Prototype!='undefined'){document.observe('dom:loaded',function(){TrackSearchResults(Track,$$);});}}
function extractCommonData(data,options,event){var $this=$(this);var searchResultRows;var clickedRow;var $searchResultRow=$this.closest('#searchResultItems, .search-results, .searchEntry, .contentContainer, #frmSearch, #frmSearchResults, #searchResultContent .o-results, .search-result');if($searchResultRow.length){searchResultRows=$searchResultRow.find('.articleEntry, .searchResultItem, .searchEntry, .article-details, .search-result-item, .m-result, .articleBox, .issue-item');clickedRow=$this.closest('.articleEntry, .searchResultItem, .searchEntry, .article-details, .search-result-item, .m-result, .articleBox, .issue-item');}else{$searchResultRow=$this.closest('.searchResultsListing, .result-list, .items-results, .os-search-results_list ul');if($searchResultRow.length){searchResultRows=$searchResultRow.children('li');clickedRow=$this.closest('li');}}
if(searchResultRows.length&&clickedRow.length){data.searchPageRank=searchResultRows.index(clickedRow)+1;}
var $container=$this.closest('.searchResultContainer, .type-search-results, .searchNav, .searchResult, .search-result, #searchResultContent, .os-search-results');if(!$container.length){$container=$('.searchResults_paging, .searchResultsCont, .searchResults');}
if($container.length){var $selectedPage=$container.find('.pages .selected:first, .pages .activeLink:first, .pages .current:first, .searchPages .activeLink:first, .pagination .activeLink:first, .pagination .active:first, .pageLinks .selected:first, .paginationLinks .s-active:first, .pagination_pages .pagination_current');if($selectedPage.length&&isInt($selectedPage.text())){data.resultPageNum=parseInt($selectedPage.text());}else{var $paginationElements=$container.find('.paginationControls, .paginationLinks').first().find('li:not(:has(a))');if($paginationElements.length){$paginationElements.each(function(){var $innerMostChildOfPagination=$(this).children();while($innerMostChildOfPagination.length){$innerMostChildOfPagination=$innerMostChildOfPagination.children();}
$selectedPage=$.trim($innerMostChildOfPagination.end().text());if($selectedPage.length&&isInt($selectedPage)){data.resultPageNum=parseInt($selectedPage);return false;}});}}}
if(!data.resultPageNum){var startPageFromSearchForm=$('#searchResultsAll, #frmSearch, #frmSearchResults').find('input[name=startPage]');if(startPageFromSearchForm.length&&isInt(startPageFromSearchForm.val())){data.resultPageNum=parseInt(startPageFromSearchForm.val())+1;}}}
function isInt(n){return parseInt(n)+0===parseInt(n);}
function extractDataSearchResult(options,event){var data={};var $this=$(this);var $articleEntry=$this.closest('.articleEntry, .searchResultItem, .articleCitation, .m-result');if($articleEntry.length){data.doi=$articleEntry.find(':input[name="doi"]').val();if(!data.doi){data.pii=$articleEntry.find(':input[name="pii"]').val();}}
if(!data.doi&&!data.pii){var href=$this.attr('href');if(typeof href=='undefined'){var link=$this.closest('a');href=link.attr('href');}
if(href.includes("doi")){var doi=href.split("/doi/")[1];var doiPattern=new RegExp('^10\\.\\d\\d\\d\\d(\\d*)/(.+)');if(doiPattern.test(doi)){data.doi=doi;}else{data.doi=doi.substring(doi.indexOf('/')+1);}}else if(href.includes("article/")){var pii=href.split("/article/")[1];data.pii=pii.substring(0,pii.indexOf("/"));}}
extractCommonData.call(this,data,options,event);return data;}
function extractDataForPagination(options,event){var data={};var $this=$(this);var page=$this.text();if(page){data.SearchResultsPageClicked=page;}
extractCommonData(data,options,event);return data;}})();
$(function(){$(".allowance__message").on("click",function(){$(".allowance__text").toggleClass("hidden");$(".allowance__message .arrow_d_n").toggleClass("openAllowance");$(".allowance__message .icon-angle-down").toggleClass("openAllowance");});$(".preview_button").on("click",function(){$(".preview__modal.popup").removeClass("hidden");$("body.pb-ui").addClass("noscroll");});$(".preview__modal .icon-preview-close_thin,.preview__options .btn-cancel,.preview__content .close").on("click",function(){$(".preview__modal.popup").addClass("hidden");$("body.pb-ui").removeClass("noscroll");})});
(function($){$.fn.multiSelect=function(options){$.fn.multiSelect.init($(this),options);};$.extend($.fn.multiSelect,{defaults:{actcls:'active',selector:'tbody tr',except:['tbody'],statics:['.static'],callback:false},first:null,last:null,init:function(scope,options){this.scope=scope;this.options=$.extend({},this.defaults,options);this.initEvent();},checkStatics:function(dom){for(var i in this.options.statics){if(dom.is(this.options.statics[i])){return true;}}},initEvent:function(){var self=this,scope=self.scope,options=self.options,callback=options.callback,actcls=options.actcls;scope.on('click.mSelect',options.selector,function(e){if(!e.shiftKey&&self.checkStatics($(this))){return;}
if($(this).hasClass(actcls)){$(this).removeClass(actcls);}else{$(this).addClass(actcls);}
if(e.shiftKey&&self.last){if(!self.first){self.first=self.last;}
var start=self.first.index();var end=$(this).index();if(start>end){var temp=start;start=end;end=temp;}
$(options.selector,scope).removeClass(actcls).slice(start,end+1).each(function(){if(!self.checkStatics($(this))){$(this).addClass(actcls);}});window.getSelection?window.getSelection().removeAllRanges():document.selection.empty();}else if(!e.ctrlKey&&!e.metaKey){$(this).siblings().removeClass(actcls);}
self.last=$(this);$.isFunction(callback)&&callback($(options.selector+'.'+actcls,scope));});$(document).on('click.mSelect',function(e){for(var i in options.except){var except=options.except[i];if($(e.target).is(except)||$(e.target).parents(except).length){return;}}
scope.find(options.selector).each(function(){if(!self.checkStatics($(this))){$(this).removeClass(actcls);}});$.isFunction(callback)&&callback($(options.selector+'.'+actcls,scope));});$(document).on('keydown.mSelect',function(e){if((e.keyCode==65)&&(e.metaKey||e.ctrlKey)){$(options.selector,scope).each(function(){if(!self.checkStatics($(this))){$(this).addClass(actcls);}});$.isFunction(callback)&&callback($(options.selector+'.'+actcls,scope));e.preventDefault();return false;}});$(document).on('keyup.mSelect',function(e){if(e.keyCode==16){self.first=null;}});}});})(jQuery);
function initRemoveButton(name,topicCode){$('.specify_membership__remove_button_'+name).on("click",function(){var loading=new literatum.FullPageLoading();loading.start();var ids=[];var selectedItems=$('.specify_membership__'+name+'_table tr.active');$('.specify_membership__'+name+'_table tr.active td:first-child').each(function(){ids.push($(this).html());});literatum.utils.send({action:'specifyMembership',subAction:'remove',isNeg:name==='neg',id:ids,topicCode:topicCode},function(data){if(data.status==='error'){alert('Removing the selected rules have failed.');}
else if(data.status==='unauthorized'){window.location.replace('action/showLogin');}
else if(data.status==='refresh'){location.reload();}
else{selectedItems.remove();}
loading.done();},function(){alert('Removing the selected rules have failed.');loading.done();});});}
literatum.SpecifyMembershipWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);};literatum.SpecifyMembershipWidget.prototype=new literatum.Widget();literatum.SpecifyMembershipWidget.id='specifyMembership';literatum.SpecifyMembershipWidget.action='/pb/widgets/specify-membership/specifyMembership';literatum.SpecifyMembershipWidget.binders={showPubs:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();var topicCode=widget.find("[name=topicCode]").val();widget.render({},{showPubs:true,topicCode:topicCode},function(){$('.specify_membership__pos_table').multiSelect();$('.specify_membership__neg_table').multiSelect();$('.search-popup__container .result_table').multiSelect();initRemoveButton('pos',topicCode);initRemoveButton('neg',topicCode);$('.specify_membership__add_button_pos').on("click",function(){$('.search-popup').removeClass('hidden');$('.search-popup').addClass('pos');$('html').addClass('disable_scroll');});$('.specify_membership__add_button_neg').on("click",function(){$('.search-popup').removeClass('hidden');$('.search-popup').addClass('neg');$('html').addClass('disable_scroll')});var cancel_function=function(){$('.search-popup').addClass('hidden');$('.search-popup').removeClass('neg');$('.search-popup').removeClass('pos');$('html').removeClass('disable_scroll')};$('.search-popup .cancel').on("click",cancel_function);var marker;$('.search-popup .add').on("click",function(){var name=$('.search-popup').hasClass('pos')?'pos':'neg';var loading=new literatum.FullPageLoading();loading.start();var ids=[];$('.result_container .result_table tr.active td:first-child').each(function(){ids.push($(this).html());});var selectedItems=$('.result_container .result_table tr.active');cancel_function();literatum.utils.send({action:'specifyMembership',subAction:'add',id:ids,isNeg:name==='neg',topicCode:topicCode},function(data){if(data.status==='error'){alert('Adding the selected rules have failed.');}
else if(data.status==='unauthorized'){window.location.replace('action/showLogin');}
else if(data.status==='refresh'){location.reload();}
else{selectedItems.each(function(){marker=$(this).html()+' | ';marker=''+marker+'
';$('.specify_membership__'+name+'_table tbody').prepend(marker);});}
loading.done();},function(){alert('Adding the selected rules have failed.');loading.done();});});loading.done();});},hidePubs:function(e,widget){e.preventDefault();if($('.specify_membership__button').html().indexOf('Show')==-1){$('.specify_membership__button').html('Show Specify Membership');}
else{$('.specify_membership__button').html('Hide Specify Membership');}
$('.specify_membership__tables_container').toggleClass("hidden");},doTitleSearch:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();var title=widget.find("[name=title_filter]").val();literatum.utils.send({action:'doTitleSearch',title:title},function(data){widget.find('.search-popup__container .input_container').toggleClass('hidden');widget.find('.search-popup__container .result_container').toggleClass('hidden');widget.find('.search-popup__container .back_forward_container .back').removeClass('nav_disabled');widget.find('.search-popup__container .back_forward_container .forward').addClass('nav_disabled');widget.find('.search-popup__container .add').removeClass('hidden');var result_table=widget.find('.search-popup__container .result_table tbody');result_table.empty();var markup;for(var i=0;i'+data[i].DOI+' | '+data[i].Title+' | ';result_table.append(markup);}
loading.done();},function(){console.error('An error occurred while searching using title within topicStory widget.');loading.done();});},forward:function(e,widget){if(widget.find('.search-popup__container .back_forward_container .forward').hasClass('nav_disabled'))
return;widget.find('.search-popup__container .input_container').addClass('hidden');widget.find('.search-popup__container .result_container').removeClass('hidden');widget.find('.search-popup__container .back_forward_container .back').removeClass('nav_disabled');widget.find('.search-popup__container .back_forward_container .forward').addClass('nav_disabled');widget.find('.search-popup__container .add').removeClass('hidden');},back:function(e,widget){if(widget.find('.search-popup__container .back_forward_container .back').hasClass('nav_disabled'))
return;widget.find('.search-popup__container .input_container').removeClass('hidden');widget.find('.search-popup__container .result_container').addClass('hidden');widget.find('.search-popup__container .back_forward_container .back').addClass('nav_disabled');widget.find('.search-popup__container .back_forward_container .forward').removeClass('nav_disabled');widget.find('.search-popup__container .add').addClass('hidden');},reset:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();var topicCode=widget.find("[name=topicCode]").val();literatum.utils.send({action:'specifyMembership',subAction:'reset',topicCode:topicCode},function(data){if(data.status==='refresh'){location.reload();}
else if(data.status==='unauthorized'){window.location.replace('action/showLogin');}
else if(data.status==='error'){alert('Reset operation failed!');}
loading.done();},function(){alert('Reset operation failed!');loading.done();});},saveAndRefresh:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();var topicCode=widget.find("[name=topicCode]").val();literatum.utils.send({action:'specifyMembership',subAction:'save',topicCode:topicCode},function(data){if(data.status==='refresh'){location.reload();}
else if(data.status==='unauthorized'){window.location.replace('action/showLogin');}
else if(data.status==='error'){alert('Saving operation failed!');}
loading.done();},function(){alert('Saving operation failed!');loading.done();});}};literatum.SpecifyMembershipWidget.find=function(){var $result=$("*[data-widget-def='"+literatum.SpecifyMembershipWidget.id+"']");if($result.length>0){return $result;}
$result=$("*[widget-def='"+literatum.SpecifyMembershipWidget.id+"']");if($result.length>0){return $result;}
return $("."+literatum.SpecifyMembershipWidget.id);};literatum.SpecifyMembershipWidget.prototype.registerListeners=function(){Object.getPrototypeOf(literatum.SpecifyMembershipWidget.prototype).registerListeners.call(this);};literatum.widgets.register(literatum.SpecifyMembershipWidget);
$(function(){$('.relatedArtContainer .showMore').on('click',function(){var max=$('.relatedArtContainer .relatedArt').data('collapse');$('.relatedArtContainer .relatedArt li:gt('+max+')').toggleClass('hidden');var a=$(this).find('a');a.html(a.html()==='more'?'collapse':'more');var arrow=$(this).find('div');arrow.toggleClass('arrow-down');arrow.toggleClass('arrow-up');});});
$(function(){function loadContent(){const $this=$(this).closest(".general-rss-feed-reader");var $resultsTarget=$(this).find('.rss-body');var url=$(this).data('rss-url');var data={};if(url){data.url=url;}
$this.pbAjax({type:'POST',url:'/pb/widgets/rssWidget/loadWidget',data:data,dataType:'html',async:'false',success:function(data){$resultsTarget.html(data);}});}
function init(){$(".general-rss-feed-reader").each(loadContent);}
if(window.PB&&window.PB.$){window.PB.$(document.documentElement).on("WidgetReinit.general-rss-feed-reader",init);}
init();});
$(document).ready(()=>{const recentInstitutionsSection=$(".recent-institutions-section");if(recentInstitutionsSection.length){getSupportedIDPEntities().then((supportedIDPEntities)=>{if(supportedIDPEntities.length>0){addEntityListToRecentInstitutions(supportedIDPEntities.reverse());recentInstitutionsSection.removeClass("hidden");}});}});function escapeHTML(unsafeText){return unsafeText.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'");}
async function getSupportedIDPEntities(){let allIDPEntitiesList=[];let supportedIDPEntitiesList=[];try{let idpEntitiesList=await SeamlessAccessService.retrieveEntity();while(idpEntitiesList.length>0&&supportedIDPEntitiesList.length<3){allIDPEntitiesList=[...idpEntitiesList,...allIDPEntitiesList];const areSupportedResults=await areSupportedIDPEntities(idpEntitiesList);const currentSupportedIDPEntities=idpEntitiesList.filter((entity)=>areSupportedResults[entity.entity.entityID]==="true");supportedIDPEntitiesList=[...currentSupportedIDPEntities,...supportedIDPEntitiesList];for(const entityObject of idpEntitiesList){await SeamlessAccessService.removeEntity(entityObject.entity.entityID);}
idpEntitiesList=await SeamlessAccessService.retrieveEntity();}
for(const entityObject of allIDPEntitiesList){await SeamlessAccessService.updateEntity(entityObject.entity);}}catch(error){console.error('An error occurred while getting Supported identity provider Entities');}
return supportedIDPEntitiesList.length>3?supportedIDPEntitiesList.slice(-3):supportedIDPEntitiesList;}
async function areSupportedIDPEntities(entities){const idpEntities=entities.map(entity=>entity.entity);const entityIDs=idpEntities.map(idpEntity=>idpEntity.entityID);const entityIDParams=entityIDs.map(id=>`entitiesId=${id}`).join('&');const areSupportedEntitiesUrl=`/pb/widgets/shibboleth/areSupportedEntities?${entityIDParams}`;try{const areSupportedEntitiesResponse=await fetch(areSupportedEntitiesUrl);if(!areSupportedEntitiesResponse.ok){throw new Error(`HTTP error! status: ${areSupportedEntitiesResponse.status}`);}
const areSupportedEntitiesData=await areSupportedEntitiesResponse.json();return areSupportedEntitiesData;}catch(error){console.error('An error occurred while checking if the entities are supported');return{};}}
function addEntityListToRecentInstitutions(entityList){let html='';entityList.forEach((entity)=>{const idpEntity=entity.entity
const updateEntityData={entityID:idpEntity.entityID,title:idpEntity.title};let recentInstitutionDomain=""
if(idpEntity.domain){updateEntityData.domain=idpEntity.domain
recentInstitutionDomain=""+escapeHTML(idpEntity.domain)+""}
if(idpEntity.entity_icon_url&&idpEntity.entity_icon_url.url){updateEntityData.entity_icon_url=idpEntity.entity_icon_url
html+="+")
"+escapeHTML(idpEntity.title)+""+recentInstitutionDomain+"
"+" ";}else{html+=""+escapeHTML(idpEntity.title)+""+recentInstitutionDomain+"
"+" ";}});$('#recent-institutions-list').append(html);}
$("#edit-btn").click(function(){$("#recent-institutions").removeClass('choose-view').addClass('edit-view');$("#choose-view-header").addClass("hidden")
$("#edit-view-header").removeClass("hidden")
$("#edit-btn").addClass("hidden")
$("#done-btn").removeClass("hidden")
$(".icon-arrow_r").addClass("hidden");$(".icon-close").removeClass("hidden");$("#recent-institutions .recent-institution-item:first").focus();});$("#done-btn").click(function(){$("#recent-institutions").removeClass('edit-view').addClass('choose-view');$("#choose-view-header").removeClass("hidden")
$("#edit-view-header").addClass("hidden")
$("#edit-btn").removeClass("hidden")
$("#done-btn").addClass("hidden")
$(".icon-arrow_r").removeClass("hidden");$(".icon-close").addClass("hidden");$("#recent-institutions .recent-institution-item:first").focus();});$(document).on('click','#recent-institutions .icon-close',function(event){event.stopPropagation();let recentInstitutionItem=$(this).closest(".recent-institution-item");let recentInstitutionEntity=recentInstitutionItem.children('.idp-institution-entity').first();let updateEntityData=recentInstitutionEntity.data('updateentity');SeamlessAccessService.removeEntity(updateEntityData.entityID).then((res)=>{recentInstitutionItem.remove();if(!$("#recent-institutions-list").find('li').length){$(".recent-institutions-section").addClass("hidden");}}).catch((error)=>{console.error('could not remove the entity');});});$(document).on('keydown','.recent-institution-item',function(event){if(event.key==='Enter'){event.preventDefault();if($('#recent-institutions').hasClass('edit-view')){$(this).find('.icon-close').click();}else{$(this).find('.idp-institution-entity').click();}}});$(document).on('click','#recent-institutions .idp-institution-entity',function(event){const updateEntityData=$(this).data('updateentity');let href=$(this).data('idpurl');SeamlessAccessService.updateEntity(updateEntityData).then(function(res){if(href!==undefined){window.location.href=href;}}).catch(function(err){if(href!==undefined){window.location.href=href;}});});$(document).on('mouseenter','#recent-institutions .idp-institution-entity',function(){$(this).addClass("active");});$(document).on('mouseleave','#recent-institutions .idp-institution-entity',function(){$(this).removeClass("active");});$('.federation--list-inner li a').on('click',function(e){e.preventDefault()
const inst=$(this).data("name");const entityId=$(this).data("entityid");const direction=$(this).attr("href");try{SeamlessAccessService.updateEntity({title:inst,entityID:entityId,}).then(function(){window.location.href=direction;}).catch(function(e){window.location.href=direction;});}
catch(e){window.location.href=direction;console.error(e)}});
(function(){async function fetchUserInfo(){try{const response=await fetch("/action/connectTeaserInfo",{method:'GET',credentials:'include',headers:{'Accept':'application/json',},});if(response.ok){const userInfo=await response.json();return userInfo;}else{console.error("Failed to fetch user info:",response.status,response.statusText);return null;}}catch(error){console.error("Error fetching user info:",error);return null;}}
window.addEventListener("message",async function(event){if(event.data==="requestHost"){event.source.postMessage({origin:window.location.origin,path:window.location.pathname},event.origin);}
if(event.data.iframeHasData===false){document.querySelector('.connect-teaser').style.display='none';}else if(event.data.iframeHasData===true){document.querySelector('.connect-teaser').style.display='block';}
if(event.data==="requestUserInfo"){const userInfo=await fetchUserInfo();if(userInfo){event.source.postMessage({userInfo},event.origin);}else{event.source.postMessage({error:"Failed to retrieve user info"},event.origin);}}
if(event.data?.type==="SET_TEASER_COOKIE"){document.cookie="connect_teaser_closed_session=true; path=/";}
if(event.data?.type==="CHECK_TEASER_COOKIE"){const cookieMatch=document.cookie.match(/connect_teaser_closed_session=(true|false)/)
const value=cookieMatch?cookieMatch[1]:"false"
event.source.postMessage({type:"REPLY_TEASER_COOKIE",value},event.origin)}});})();
commerce.cart=(function(){var instance={};var cartInfo;var listeners={};var callbacks=[];var errorHandler;var debugLog=function(message){var hostname=window.location.hostname;var isProduction=!hostname.includes('stag')&&!hostname.includes('test')&&!hostname.includes('localhost');if(!isProduction){console.log(message);}};function triggerRefresh(updatedCartInfo){debugLog("Trying to refresh current cart state...");Object.keys(listeners).forEach(function(key){commerce.cart.notify(key,updatedCartInfo);});cartInfo=updatedCartInfo;}
instance.refresh=function(){literatum.utils.send({action:'showCart'},triggerRefresh,errorHandler);};instance.identity={name:'identity',guest:function(email,acceptTermsConditions){literatum.utils.send({action:'guestCheckout',email:email,acceptTermsConditions:acceptTermsConditions},function(response){if(response.guestRedirectPath){var baseUrl=window.location.origin;var fullUrl=baseUrl+response.guestRedirectPath;window.location.href=fullUrl;}else{commerce.cart.identity.refresh(response);}},errorHandler);},login:function(email,password){literatum.utils.send({action:'doLogin',email:email,password:password},commerce.cart.identity.refresh,errorHandler);},registration:function(email){literatum.utils.send({action:'register',email:email},commerce.cart.identity.refresh,errorHandler);},clear:function(){literatum.utils.send({action:'resetCartAction'},commerce.cart.identity.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.identity,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.identityHash!=updatedCartInfo.identityHash);}};instance.buyingList={name:'buyingList',addItem:function(itemId){literatum.utils.send({action:'addToCart',id:itemId},commerce.cart.buyingList.refresh,errorHandler);},remove:function(itemId){literatum.utils.send({action:'removeCartItem',id:itemId},commerce.cart.buyingList.refresh,errorHandler);},decreaseQuantity:function(itemId){literatum.utils.send({action:'decreaseQuantity',id:itemId},commerce.cart.buyingList.refresh,errorHandler);},increaseQuantity:function(itemId){literatum.utils.send({action:'increaseQuantity',id:itemId},commerce.cart.buyingList.refresh,errorHandler);},updateQuantity:function(itemId,currentQuantity,requiredQuantity){literatum.utils.send({action:'updateQuantity',id:itemId,currentQuantity:currentQuantity,requiredQuantity:requiredQuantity},commerce.cart.buyingList.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.buyingList,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.buyingItemHash!=updatedCartInfo.buyingItemHash);}};instance.restoreAccess={name:'restoreAccess',request:function(email){literatum.utils.send({action:'restoreContentAccess',email:email},commerce.cart.restoreAccess.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.restoreAccess,cartInfo);},changed:function(updatedCartInfo){return true;}};instance.discounts={name:'discounts',apply:function(discountCode){literatum.utils.send({action:'applyDiscount',discount:discountCode},commerce.cart.discounts.refresh,errorHandler);},remove:function(discountCode){literatum.utils.send({action:'removeDiscount',discount:discountCode},commerce.cart.discounts.refresh,errorHandler);},enable:function(discountCode){literatum.utils.send({action:'enableDiscount',discount:discountCode},commerce.cart.discounts.refresh,errorHandler);},disable:function(discountCode){literatum.utils.send({action:'disableDiscount',discount:discountCode},commerce.cart.discounts.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.discounts,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.cartHash!=updatedCartInfo.cartHash);}};instance.summary={name:'summary',refresh:function(){commerce.cart.notify(commerce.cart.summary,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.cartHash!=updatedCartInfo.cartHash);}};instance.shipping={name:'shipping',update:function(form){var request={};$.extend(request,{action:'updateShippingAddress'},form);literatum.utils.send(request,commerce.cart.shipping.refresh,errorHandler);},getShippingCosts:function(country,state,callback){literatum.utils.send({action:'getShippingCosts',country:country,state:state},callback);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.shipping,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.shippingHash!=updatedCartInfo.shippingHash||cartInfo.buyingItemHash!=updatedCartInfo.buyingItemHash||cartInfo.identityHash!=updatedCartInfo.identityHash);}};instance.tax={name:'tax',update:function(form){var request={};$.extend(request,{action:'updateTax'},form);literatum.utils.send(request,commerce.cart.tax.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.tax,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.cartHash!=updatedCartInfo.cartHash);}};instance.billing={name:'billing',update:function(form){var request={};$.extend(request,{action:'updateBillingAddress'},form);literatum.utils.send(request,commerce.cart.billing.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.billing,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.billingHash!=updatedCartInfo.billingHash||cartInfo.identityHash!=updatedCartInfo.identityHash);}};instance.savedItems={name:'savedItems',saveById:function(itemId){literatum.utils.send({action:'saveItem',id:itemId},commerce.cart.savedItems.refresh,errorHandler);},saveByDoi:function(doi){literatum.utils.send({action:'saveItem',doi:doi},commerce.cart.savedItems.refresh,errorHandler);},remove:function(id){literatum.utils.send({action:'removeSavedItem',id:id},commerce.cart.savedItems.refresh,errorHandler);},refresh:function(cartInfo){commerce.cart.notify(commerce.cart.savedItems,cartInfo);},changed:function(updatedCartInfo){return(cartInfo==null||cartInfo.savedItemsHash!=updatedCartInfo.savedItemsHash);}};instance.register=function(service,callback){debugLog("Commerce Cart :: Registering service "+service.name+" listener...");if(service){var serviceName=typeof service==='string'?service:service.name;if(!listeners[serviceName]){listeners[serviceName]=[];}
listeners[serviceName].push(callback);}};instance.notify=function(service,updatedCartInfo){if(updatedCartInfo){if(updatedCartInfo.sessionChanged){location.reload();return;}}
if(updatedCartInfo&&cartInfo){if(cartInfo.sessionHash!=updatedCartInfo.sessionHash){location.reload();return;}}
var result=[];var serviceName=typeof service==='string'?service:service.name;debugLog("Commerce Cart :: Notifying "+serviceName+" listeners...");if(typeof serviceName==='string'||(service&&service.changed&&service.changed(updatedCartInfo))||literatum.utils.hasAttributes(updatedCartInfo.attributes)){if(listeners[serviceName]){listeners[serviceName].forEach(function(listener){var value=listener(updatedCartInfo);result.push(value);});}}
var clone=callbacks;$.when.apply($,result).then(function(){clone.forEach(function(callback){callback();});});commerce.cart.clearCallbacks();if(updatedCartInfo){cartInfo=updatedCartInfo;}};instance.setErrorHandler=function(handler){errorHandler=handler;};instance.addCallback=function(callback){callbacks.push(callback);};instance.clearCallbacks=function(){callbacks=[];};instance.debugLog=debugLog;return instance;}());(function(){var hostname=window.location.hostname;var isProduction=!hostname.includes('stag')&&!hostname.includes('test')&&!hostname.includes('localhost');if(!isProduction){console.log("Cart Service initialized!");}})();$(document).ready(function(){instructorServiceWarningMessage();});$(document).ajaxComplete(function(event,request,settings){if(settings.url.startsWith("/pb/widgets/commerce/buyingItems")){instructorServiceWarningMessage();}});function instructorServiceWarningMessage(){if($(".checkoutDropZone").length>0){if($(".instructor__warning__message__text").length>0){if($(".instructor__warning__message__clone").length>0){$(".instructor__warning__message__text").remove();}else{$(".instructor__warning__message__text").addClass("instructor__warning__message__clone");$(".instructor__warning__message__clone").removeClass("instructor__warning__message__text");$(".instructor__warning__message__clone").clone().prependTo($(".checkoutDropZone").closest(".row").parent());$(".instructor__warning__message__clone").last().remove();$(".instructor__warning__message__clone").css("display","");}}else{$(".instructor__warning__message__clone").remove();}}
setTimeout(function(){$(".instructor__warning__message__text").fadeOut("fast");},50);};
commerce.validators=(function(){var instance={};var creditCardsPattern={};creditCardsPattern['visa']=new RegExp("^4[0-9]{12}(?:[0-9]{3})?$");creditCardsPattern['mastercard']=new RegExp("^[25][1-5][0-9]{14}$");creditCardsPattern['amex']=new RegExp("^3[47][0-9]{13}$");creditCardsPattern['dinner']=new RegExp("^3(?:0[0-5]|[68][0-9])[0-9]{11}$");creditCardsPattern['discover']=new RegExp("^6(?:011|5[0-9]{2})[0-9]{12}$");creditCardsPattern['jcb']=new RegExp("^(?:2131|1800|35\\d{3})\\d{11}$");creditCardsPattern['maestro']=new RegExp("^(5018|5020|5038|5893|6304|6759|6761|6762|6763)[0-9]{8,15}$");instance.creditcard=function(value,element){var number=value.match(/\d/g);if(!number)
return true;value=number.join("");var invalid=true;$(element).closest(".input-group").prop("class","input-group cc-number");Object.keys(creditCardsPattern).forEach(function(k){if(creditCardsPattern[k].test(value)&&invalid&&/^\d+$/.test($("#realNumber").val())){invalid=false;$(element).closest(".input-group").addClass(k);}});return invalid;};instance.creditcardDate=function(value,element,form){var currentDate=new Date();var currentMonth=currentDate.getMonth(5)+1;var currentYear=currentDate.getFullYear();var monthExpiry=form.find("select[name='expMonth']").val();var yearExpiry=form.find("select[name='expYear']").val();var expireMonth=parseInt(monthExpiry);var expireYear=parseInt(yearExpiry);var expireDate=new Date();expireDate.setMonth(expireMonth-1);expireDate.setYear(expireYear);if(expireYear=="0000"||expireMonth=="00")
return true;if(currentYear>expireYear){return true;}
if(currentMonth>expireMonth&&monthExpiry=="00"){return true;}
return expireDate");commerce.Notification.prototype.show=function(){this.$element.show();this.$element.removeClass('hidden');};commerce.Notification.prototype.showFlex=function(){this.$element.css('display','flex');this.$element.removeClass('hidden');};commerce.Notification.get=function(element){return new commerce.Notification(element);};commerce.Notification.create=function(element){if(!(element instanceof jQuery)){element=$(element);}
element.html("
");return new commerce.Notification(element);};commerce.Notification.prototype.hide=function(){this.$element.hide();};commerce.Notification.prototype.reset=function(){this.$p.removeClass("itemAddedMsgBox");this.$p.removeClass("errorMsgBox");this.$element.hide();};commerce.Notification.prototype.error=function(){this.$p.removeClass("itemAddedMsgBox");this.$p.addClass("errorMsgBox");this.$p.parent(".purchaseMessage").addClass("errorMsgParent");this.$p.parent(".purchaseMessage").removeClass("hidden");};commerce.Notification.prototype.warning=function(){this.$p.removeClass("itemAddedMsgBox");this.$p.addClass("errorMsgBox");};commerce.Notification.prototype.info=function(){this.$p.removeClass("errorMsgBox");this.$p.addClass("itemAddedMsgBox");};commerce.Notification.prototype.setMessage=function(message){this.$p.html(message);};commerce.FieldNotification=function(element){if(element instanceof jQuery){this.$element=element;}else{this.$element=$(element);}
this.$message=$(this.$element.find(".message"));this.$label=$(this.$element.find(".label"));this.$show=$(this.$element.find(".field-info"));};commerce.FieldNotification.prototype.show=function(){if(this.$message.text().length>0){this.$show.show();this.$show.removeClass("hidden");}else{this.$show.hide();}};commerce.FieldNotification.get=function(element){return new commerce.FieldNotification(element);};commerce.FieldNotification.prototype.hide=function(){this.$show.hide();};commerce.FieldNotification.prototype.error=function(){this.$label.removeClass("warning");this.$label.removeClass("info");this.$label.addClass("error");};commerce.FieldNotification.prototype.warning=function(){this.$label.removeClass("error");this.$label.removeClass("info");this.$label.addClass("warning");};commerce.FieldNotification.prototype.info=function(){this.$label.removeClass("warning");this.$label.removeClass("error");this.$label.addClass("info");};commerce.FieldNotification.prototype.reset=function(){this.hide();this.$label.removeClass("warning");this.$label.removeClass("error");this.$label.removeClass("info");this.setMessage("");};commerce.FieldNotification.prototype.setMessage=function(message){this.$message.html(message);};
commerce.SavedItemsWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);this.register(commerce.cart.identity);};commerce.SavedItemsWidget.prototype=new literatum.Widget();commerce.SavedItemsWidget.id='eCommerceCheckoutSavedForLaterItemsWidget';commerce.SavedItemsWidget.action='/pb/widgets/commerce/savedItems';commerce.SavedItemsWidget.notifications={info:commerce.Notification};commerce.SavedItemsWidget.binders={saveItem:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var itemId=$(this).data("item-id");if(itemId){commerce.cart.savedItems.saveById(itemId);}else{commerce.cart.savedItems.saveByDoi($(this).data("item-doi"));}},removeSavedItem:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.savedItems.remove($(this).data("item-id"));},expand:function(e){e.preventDefault();$(this).closest(".add-to-cart").toggleClass("opened");var offerAddToCart=$(this).next(".purchaseArea");var offerVisibility=$(this).next(".purchaseArea").is(':visible');$(".purchaseArea").slideUp();if(!offerVisibility){$(this).next(".purchaseArea").slideToggle();var subject=$(".demo");if(e.target.id!=subject.attr('id')){subject.show();offerAddToCart.removeClass('hidden');}}},addItem:function(e,widget){if(!$(e.target).parents('.disable-click').length){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-key");commerce.cart.buyingList.addItem(key);}}};commerce.SavedItemsWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.SavedItemsWidget.prototype).registerListeners.call(this);if($(window).width()>=992){$(document).on('touchend click',function(e){var container=$(".demoContainer");if(!$(e.target).closest('.superDemo').length){$(".add-to-cart.opened").removeClass("opened");container.hide();container.find('.add-journal-to-cart').removeClass('disable-click');container.find('.add-journal-to-cart header').removeClass('open');container.find('.add-journal-to-cart').css('margin-bottom','10px');e.stopPropagation();}});}};commerce.SavedItemsWidget.infoHandlers={savedItemError:function(message,widget){var notification=widget.getNotification('info');if(notification){notification.setMessage(message);notification.error();notification.show();}}};commerce.SavedItemsWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.SavedItemsWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.SavedItemsWidget.id);};literatum.widgets.register(commerce.SavedItemsWidget);
commerce.RecommendedWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);};commerce.RecommendedWidget.prototype=new literatum.Widget();commerce.RecommendedWidget.id='eCommerceCheckoutRecommendedItemsWidget';commerce.RecommendedWidget.action='/pb/widgets/commerce/recommended';commerce.RecommendedWidget.binders={expand:function(e){e.preventDefault();$(this).closest(".add-to-cart").toggleClass("opened");var offerAddToCart=$(this).next(".purchaseArea");var offerVisibility=$(this).next(".purchaseArea").is(':visible');$(".purchaseArea").slideUp();if(!offerVisibility){$(this).next(".purchaseArea").slideToggle();var subject=$(".demo");if(e.target.id!=subject.attr('id')){subject.show();offerAddToCart.removeClass('hidden');}}},addItem:function(e){if(!$(e.target).parents('.disable-click').length){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-key");commerce.cart.buyingList.addItem(key);}},saveItem:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var itemId=$(this).data("item-id");if(itemId){commerce.cart.savedItems.saveById(itemId);}else{commerce.cart.savedItems.saveByDoi($(this).data("item-doi"));}}};commerce.RecommendedWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.RecommendedWidget.prototype).registerListeners.call(this);if($(window).width()>=992){$(document).on('touchend click',function(e){var container=$(".demoContainer");if(!$(e.target).closest('.superDemo').length){$(".add-to-cart.opened").removeClass("opened");container.hide();container.find('.add-journal-to-cart').removeClass('disable-click');container.find('.add-journal-to-cart header').removeClass('open');container.find('.journal-options-expanded').hide();container.find('.add-journal-to-cart').css('margin-bottom','10px');e.stopPropagation();}});}};commerce.RecommendedWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.RecommendedWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.RecommendedWidget.id);};literatum.widgets.register(commerce.RecommendedWidget);
commerce.RecentlyViewedWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);};commerce.RecentlyViewedWidget.prototype=new literatum.Widget();commerce.RecentlyViewedWidget.id='eCommerceCheckoutRecentlyViewedItemsWidget';commerce.RecentlyViewedWidget.action='/pb/widgets/commerce/recentlyViewed';commerce.RecentlyViewedWidget.binders={expand:function(e){e.preventDefault();$(this).closest(".add-to-cart").toggleClass("opened");var offerAddToCart=$(this).next(".purchaseArea");var offerVisibility=$(this).next(".purchaseArea").is(':visible');$(".purchaseArea").slideUp();if(!offerVisibility){$(this).next(".purchaseArea").slideToggle();var subject=$(".demo");if(e.target.id!=subject.attr('id')){subject.show();offerAddToCart.removeClass('hidden');}}},addItem:function(e,widget){if(!$(e.target).parents('.disable-click').length){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-key");commerce.cart.buyingList.addItem(key);}},saveItem:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var itemId=$(this).data("item-id");if(itemId){commerce.cart.savedItems.saveById(itemId);}else{commerce.cart.savedItems.saveByDoi($(this).data("item-doi"));}}};commerce.RecentlyViewedWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.RecentlyViewedWidget.prototype).registerListeners.call(this);if($(window).width()>=992){$(document).on('touchend',function(e){var container=$(".demoContainer");if(!$(e.target).closest('.superDemo').length){$(".add-to-cart.opened").removeClass("opened");container.hide();container.find('.add-journal-to-cart').removeClass('disable-click');container.find('.add-journal-to-cart header').removeClass('open');container.find('.journal-options-expanded').hide();container.find('.add-journal-to-cart').css('margin-bottom','10px');e.stopPropagation();}});}};commerce.RecentlyViewedWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.RecentlyViewedWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.RecentlyViewedWidget.id);};literatum.widgets.register(commerce.RecentlyViewedWidget);
commerce.OrderSummaryWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.buyingList);this.register(commerce.cart.discounts);this.register(commerce.cart.savedItems);this.register(commerce.cart.shipping);this.register(commerce.cart.billing);this.register(commerce.cart.tax);this.register(commerce.cart.summary);this.register("quantityIncreased");this.register("quantityDecreased");this.register("updateQuantity");var $isEditPage=$('.edit-billing-info');if($isEditPage.length){$('.eCommerceCheckoutSummaryWidget').hide();}else{$('#email-identity').attr('data-id','summary-email-edit');}};commerce.OrderSummaryWidget.prototype=new literatum.Widget();commerce.OrderSummaryWidget.id='eCommerceCheckoutSummaryWidget';commerce.OrderSummaryWidget.action='/pb/widgets/commerce/orderSummary';commerce.OrderSummaryWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.OrderSummaryWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.OrderSummaryWidget.id);};literatum.widgets.register(commerce.OrderSummaryWidget);commerce.OrderSummaryWidget.binders={removeItem:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.buyingList.remove($(this).data("item-id"));}};
commerce.TaxWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);this.register(commerce.cart.billing);this.register(commerce.cart.shipping);this.register(commerce.cart.tax);};commerce.TaxWidget.prototype=new literatum.Widget();commerce.TaxWidget.id='eCommerceCheckoutTaxWidget';commerce.TaxWidget.action='/pb/widgets/commerce/tax';commerce.TaxWidget.prototype.lostFocus=function(){if(this.find("form").length){return literatum.widgets.render(this,{},{});}};commerce.TaxWidget.binders={updateTax:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(literatum.utils.nextCheckoutSection);commerce.cart.addCallback(loading.done);e.preventDefault();var d=literatum.widgets.render(widget,{},{editing:true});literatum.widgets.all().forEach(function(item){if(widget.widgetDef.id!=item.widgetDef.id){d=d.then(item.lostFocus());}});d.then(function(){literatum.utils.nextCheckoutSection();loading.done();});},tax:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(literatum.utils.nextCheckoutSection);commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.tax.update($("form.tax").serializeObject());}};commerce.TaxWidget.notifications={countrySelect:commerce.FieldNotification};commerce.TaxWidget.infoHandlers={taxErrorMissingCountry:function(message,widget){var notification=widget.getNotification('countrySelect');if(notification){notification.error();notification.setMessage(message);notification.show();}}};commerce.TaxWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.TaxWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.TaxWidget.id);};literatum.widgets.register(commerce.TaxWidget);
commerce.PaymentWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.billing);this.register(commerce.cart.shipping);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);this.register(commerce.cart.discounts);this.register(commerce.cart.tax);var $error=this.find('.errorMsgBox').not('.hidden');if($error.length==0){$error=this.find(".label.error");}
if($error.length>0){if(commerce.page.cart.show!==undefined){commerce.page.cart.show();}
literatum.utils.scroll($error,800,100);}};commerce.PaymentWidget.prototype=new literatum.Widget();commerce.PaymentWidget.id='eCommerceCheckoutPaymentWidget';commerce.PaymentWidget.action='/pb/widgets/commerce/payment';commerce.PaymentWidget.notifications={holderName:commerce.FieldNotification,realNumber:commerce.FieldNotification,creditcardDate:commerce.FieldNotification,secNumber:commerce.FieldNotification};commerce.PaymentWidget.binders={expandPayment:function(e,widget){e.preventDefault();widget.find(".payment").slideToggle();},placeOrder:function(e,widget){var $form=widget.find("form[name='apg']");var valid=true;$form.find("input[data-validate],select[data-validate]").each(function(){var $this=$(this);var $group=$this.closest(".input-group");var invalid=commerce.validators.validateField($this,$form);var fieldsValidation=[];fieldsValidation.push(invalid);var notification=widget.getNotification($group.data('notification'));if(!notification){return;}
if(invalid){notification.reset();notification.setMessage('');notification.error();notification.show();}else{notification.reset()}
valid=!invalid&&valid;if(!valid||fieldsValidation.includes(true)){var loading=new literatum.FullPageLoading();loading.done();e.preventDefault();}else{var loading=new literatum.FullPageLoading();loading.setMessage("Do not close your browser while we are processing your payment");loading.start();}});},expand:function(e,widget){var $header=widget.find(".checkout-expand");$header.stop(true,true);$header.slideToggle();}};commerce.PaymentWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.PaymentWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.PaymentWidget.id);};commerce.PaymentWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.PaymentWidget.prototype).registerListeners.call(this);var widget=this;var $date=$(this.find("input[name='expireDate']"));$date.on('keyup',function(e){var thisVal=$(this).val();if(thisVal.length==0)
$(this).closest(".input-group").removeClass("focused");else
$(this).closest(".input-group").addClass("focused");var numChars=$(this).val().length;if(numChars===2){if(thisVal>12){thisVal=12;}
if(!/\//.test(thisVal)){thisVal+='/';}
$(this).val(thisVal);}
if(e.which==8&&numChars===2){thisVal=thisVal.substring(0,thisVal.length-2);$(this).val(thisVal);}});$date.on('blur',function(){var dateValue=$date.val().split('/');var numChars=$date.val().length;var thisVal=$date.val();if(this.value){$(widget.find("input[name='expYear']")).val(dateValue[1]);$(widget.find("input[name='expMonth']")).val(dateValue[0]);}else{$(widget.find("input[name='expYear']")).val("");$(widget.find("input[name='expMonth']")).val("");}
if(numChars>6){var currentDate=new Date();var currentYear=currentDate.getFullYear();var value=thisVal.split('/');var yearExpiry=value[1];var expireYear=parseInt(yearExpiry);}});$(this.find("#realNumber")).on("blur",function(e){var $value=$("#realNumber").val();var $cElement=$("#realNumber");var creditCard=commerce.validators.creditcard($value,$cElement);});$(this.find(".creditCarPayment .actions .primary")).on("click",function(e){var $form=widget.find("form[name='apg']");var $this=$('input[data-validate]');var $group=$this.closest(".input-group");var invalid=commerce.validators.validateField($this,$form);var notification=widget.getNotification($group.data('notification'));var $message=[];if($("#expYear").val()=="0000"){$message.push("year ");}
if($("#expMonth").val()=="00"){$message.push(" month");}
if($("#expMonth").val()=="00"&&$("#expYear").val()=="0000"){$message=$message.join("and");}
if($("#expMonth").val()!="00"&&$("#expYear").val()!="0000"){$message.push("a valid date");}
if(!notification){return;}
if(invalid){notification.reset();notification.setMessage('');notification.error();notification.show();}else{notification.reset()}
var inputContainer=$(".creditCarPayment .input-group");inputContainer.each(function(){var $cont=$(this);var $contError=$(this).find(".error");if($contError.length>0){if($contError.find(".invalid-cc").length===0&&!$cont.hasClass("credit-card-date-field")){$contError.find(".field-info").after("
- IS MISSING
");}
else if($cont.hasClass("credit-card-date-field")){if($contError.find(".invalid-cc").length===0){$contError.find(".field-info").after("
Please enter "+$message+"
");}
else{$contError.find(".invalid-cc").replaceWith("
Please enter "+$message+"
");}}}
else{$cont.find(".invalid-cc").remove();}});});if(commerce.PaymentWidget.registerAdditionalListeners)
commerce.PaymentWidget.registerAdditionalListeners();};literatum.widgets.register(commerce.PaymentWidget);
commerce.PaymentWidget.registerAdditionalListeners=function(){$(function(){var $confirmOrderMsg=$('.eCommerceCheckoutPaymentWidget .infoMsgBox');if($confirmOrderMsg.is(':visible')){$confirmOrderMsg[0].scrollIntoView();}
if($(".checkout-expand > .errorMsgBox").length>0&&!$(".checkout-expand > .errorMsgBox").hasClass("hidden")){$('html, body').animate({scrollTop:$(".checkout-expand > .errorMsgBox").offset().top},1000);}
initTNSIFormJS();});};function initTNSIFormJS(){var TNSISessionJS=$("#TNSISessionJS");if(TNSISessionJS.length){$.getScript(TNSISessionJS.attr("src"),function(){PaymentSession.configure({fields:{card:{number:"#card-number",securityCode:"#security-code",expiryMonth:"#expiry-month",expiryYear:"#expiry-year",nameOnCard:"#cardholder-name"}},frameEmbeddingMitigation:["javascript"],callbacks:{formSessionUpdate:function(response){var
paymentWarningMessagesArr=[],paymentWarningMessages='',isFieldError=false,paymentWarningElement=document.querySelector('.payment__warning'),paymentWarningMessageElement=document.querySelector('.payment__warning .warning-message');if(response.status){if("ok"==response.status){var isValid=true;if(response.sourceOfFunds!==undefined&&response.sourceOfFunds.provided!==undefined&&response.sourceOfFunds.provided.card!==undefined){if(response.sourceOfFunds.provided.card.securityCode===undefined){paymentWarningMessagesArr.push('Security code,');isFieldError=true;isValid=false;}
if(response.sourceOfFunds.provided.card.nameOnCard===undefined){paymentWarningMessagesArr.push(' Name on card,');isFieldError=true;isValid=false;}}
if(isValid){$('#placeOrderButton').prop('disabled',true);$.redirectPost('/action/TNSIRedirect',{'TNSISessionId':response.session.id,'cartHash':$('#cartHash').val()});}}else if("fields_in_error"==response.status){if(response.errors.cardNumber){paymentWarningMessagesArr.push('Card number,');isFieldError=true;}
if(response.errors.expiryYear){paymentWarningMessagesArr.push(' Expiry year,');isFieldError=true;}
if(response.errors.expiryMonth){paymentWarningMessagesArr.push(' Expiry month,');isFieldError=true;}
if(response.errors.securityCode){paymentWarningMessagesArr.push(' Security code,');isFieldError=true;}}else if("request_timeout"==response.status){paymentWarningMessagesArr.push('Session update failed with request timeout: '+response.errors.message+',')}else if("system_error"==response.status){paymentWarningMessagesArr.push('Session update failed with system error: '+response.errors.message+',')}}else{paymentWarningMessagesArr.push('Session update failed: '+response+',')}
if(paymentWarningMessagesArr.length){paymentWarningMessagesArr.forEach(function(message){paymentWarningMessages+=message;})
paymentWarningMessages=paymentWarningMessages.replace(/.$/,"")
paymentWarningMessageElement.textContent=paymentWarningMessagesArr.length===1&&isFieldError?paymentWarningMessages+' is invalid or missing.':paymentWarningMessagesArr.length>1&&isFieldError?paymentWarningMessages+' are invalid or missing.':paymentWarningMessages;paymentWarningElement.style.display='flex';paymentWarningElement.focus();}else{paymentWarningElement.style.display='none';}}},interaction:{displayControl:{formatCard:"EMBOSSED",invalidFieldCharacters:"REJECT"}}});});}}
$.extend({redirectPost:function(location,args){var form='';$.each(args,function(key,value){value=value.split('"').join('\"');form+='
';});$('
').appendTo($(document.body)).submit();}});
commerce.CartIndicatorWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);this.register("quantityIncreased");this.register("quantityDecreased");this.register("updateQuantity");};commerce.CartIndicatorWidget.prototype=new literatum.Widget();commerce.CartIndicatorWidget.id='eCommerceCartIndicatorWidget';commerce.CartIndicatorWidget.action=null;commerce.CartIndicatorWidget.prototype.update=function(model){var $cartSize=this.find("*[data-id='cart-size']");if(model.size==0){$cartSize.hide();$cartSize.html(model.size);console.log('cart size is empty ');$('#loginbar-cart .cartLabel').removeClass('items-in-cart');$('#loginbar-cart a#cartLabel, #mobileCartButton a#cartLabel, #mobile-menu-cart a#cartLabel').attr('aria-label','Your cart is empty');$('#loginbar-cart a#cartLabel, #mobileCartButton a#cartLabel').attr('href','#');$('.responsiveEcomm').addClass('cart-empty');}else{$cartSize.show("hidden");$cartSize.html(model.size);}};commerce.CartIndicatorWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.CartIndicatorWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.CartIndicatorWidget.id);};literatum.widgets.register(commerce.CartIndicatorWidget);
commerce.AddToCartWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.buyingList);};commerce.AddToCartWidget.prototype=new literatum.Widget();commerce.AddToCartWidget.id='eCommerceCheckoutAddToCartWidget';commerce.AddToCartWidget.action='/pb/widgets/commerce/addToCart';commerce.AddToCartWidget.binders={expand:function(e,widget){e.preventDefault();if(widget.find(".add-journal-to-cart-container").length>0){var addToCart=document.createElement('div');$(addToCart).addClass('eCommerceCheckoutAddToCartWidgetExpanded');$(addToCart).appendTo('body');$('body').css('overflow','hidden');var closeButton='
';widget.find(".add-journal-to-cart-container").clone().prepend(closeButton).appendTo(addToCart).slideToggle().find("a").first().focus();var overlay=document.createElement('div');$(overlay).addClass('overlay-fixed');$(overlay).appendTo('.eCommerceCheckoutAddToCartWidgetExpanded');$(overlay).find("a").first().focus();$(addToCart).find(".add-journal-to-cart-container.hidden").removeClass("hidden");}
widget.registerListeners();},addItem:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-key");commerce.cart.buyingList.addItem(key);}};commerce.AddToCartWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.AddToCartWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.AddToCartWidget.id);};commerce.AddToCartWidget.infoHandlers={info:function(message,widget,model){var key=model.attributes['itemAdded'];var notification=commerce.Notification.get($(".eCommerceCheckoutAddToCartWidgetExpanded .purchaseMessage[data-item='"+key+"'].info"));if(notification){notification.setMessage(message);notification.info();notification.show();notification.$element.siblings("a").find(".add-to-cart-msg").remove();setTimeout(function(){notification.$element.fadeOut();$(".eCommerceCheckoutAddToCartWidgetExpanded *[data-entity='"+key+"']").hide();commerce.Notification.get(".addedMessage[data-item='"+key+"']").showFlex();},1000);}},error:function(message,widget,model){var key=model.attributes['itemAdded'];var notification=commerce.Notification.get($(".eCommerceCheckoutAddToCartWidgetExpanded .purchaseMessage[data-item='"+key+"'].error"));if(notification){notification.setMessage(message);notification.error();notification.show();}
$(".eCommerceCheckoutAddToCartWidgetExpanded *[data-entity='"+key+"']").hide();},savedItemInfo:function(message,widget){var notification=commerce.Notification.get(widget.find(".savedItem-info"));if(notification){notification.setMessage(message);notification.info();notification.show();}
$(".eCommerceCheckoutAddToCartWidgetExpanded .save-for-later-link").hide();},savedItemError:function(message,widget){var notification=commerce.Notification.get(widget.find(".savedItem-info"));if(notification){notification.setMessage(message);notification.error();notification.show();}},nextAction:function(message){if(message=='refreshPage'){setTimeout(function(){location.reload();},5000);}}};commerce.AddToCartWidget.prototype.render=function(model,params){params['doi']=this.find("a[data-doi]").attr("data-doi");Object.getPrototypeOf(commerce.AddToCartWidget.prototype).render.call(this,model,params);};commerce.AddToCartWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.AddToCartWidget.prototype).registerListeners.call(this);$(document).on('click',function(event){if(!$(event.target).closest('.eCommerceCheckoutAddToCartWidgetExpanded').length&&!$(event.target).closest('.eCommerceCheckoutAddToCartWidget').length&&$('.eCommerceCheckoutAddToCartWidgetExpanded').is(':visible')){event.preventDefault();$('.eCommerceCheckoutAddToCartWidgetExpanded').remove();$('body').css('overflow','auto');}});$(document).on('click','.eCommerceCheckoutAddToCartWidgetExpanded .close',function(){$('.eCommerceCheckoutAddToCartWidgetExpanded').remove();$('body').css('overflow','auto');});$(".eCommerceCheckoutAddToCartWidgetExpanded *[data-bind='addItem']").off();$(".eCommerceCheckoutAddToCartWidgetExpanded *[data-bind='addItem']").on("click",function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-key");commerce.cart.buyingList.addItem(key);});};literatum.widgets.register(commerce.AddToCartWidget);
commerce.CartInfoWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.discounts);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);this.register(commerce.cart.billing);this.register(commerce.cart.shipping);};commerce.CartInfoWidget.prototype=new literatum.Widget();commerce.CartInfoWidget.id='eCommerceCartInfoWidget';commerce.CartInfoWidget.action=null;commerce.CartInfoWidget.prototype.update=function(){var notification=commerce.Notification.get(this.find(".cartInfo"));if(notification){notification.reset();}};commerce.CartInfoWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.CartInfoWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.CartInfoWidget.id);};literatum.widgets.register(commerce.CartInfoWidget);
commerce.IdentityBarWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);};commerce.IdentityBarWidget.prototype=new literatum.Widget();commerce.IdentityBarWidget.id='literatumNavigationLoginBar';commerce.IdentityBarWidget.action='/pb/widgets/commerce/identityBar';commerce.IdentityBarWidget.binders={expand:function(e,widget){widget.find(".navigation-login-dropdown-container").toggle();}};commerce.IdentityBarWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.IdentityBarWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.IdentityBarWidget.id);};commerce.IdentityBarWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.RecommendedWidget.prototype).registerListeners.call(this);var $popups=$('.popup');var $popup=$('.login-popup');$('.show-login').off();$('.show-login').on("click",function(event){if($popups.length){$popups.addClass('hidden');$popup.removeClass('hidden');$('body').addClass('noscroll');$(".login-form form .login").trigger("focus");event.preventDefault();}});};literatum.widgets.register(commerce.IdentityBarWidget);
commerce.RestoreAccessWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.restoreAccess);};commerce.RestoreAccessWidget.prototype=new literatum.Widget();commerce.RestoreAccessWidget.id='eCommerceRestoreContentAccessWidget';commerce.RestoreAccessWidget.action='/pb/widgets/commerce/restoreAccess';commerce.RestoreAccessWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.RestoreAccessWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.RestoreAccessWidget.id);};commerce.RestoreAccessWidget.binders={request:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.restoreAccess.request(widget.find("input[name='email']").val());}};commerce.RestoreAccessWidget.prototype.update=function(model){this.triggerInfoHandlers(this,model);this.loaded();};commerce.RestoreAccessWidget.infoHandlers={restoreError:function(message,widget){widget.find('.restore-info').hide();widget.find('.restore-error').hide();var notification=commerce.Notification.get(widget.find(".restore-error"));notification.setMessage(message);notification.error();notification.show();},error:function(message,widget){widget.find('.restore-info').hide();var $inputGroup=widget.find("input[name='email']").closest(".input-group");var notification=commerce.FieldNotification.get($inputGroup);if(notification){notification.error();notification.setMessage(message);notification.show();}},info:function(message,widget){widget.find('.restore-error').hide();var $inputGroup=widget.find("input[name='email']").closest(".input-group");var notification=commerce.Notification.get(widget.find(".restore-info"));var fieldNotification=commerce.FieldNotification.get($inputGroup);if(fieldNotification){fieldNotification.reset();fieldNotification.hide();}
if(notification){notification.setMessage(message);notification.info();notification.show();}}};literatum.widgets.register(commerce.RestoreAccessWidget);
commerce.page.cart.checkoutButton=function(data){var $leftCol=$('.checkoutProcessLeftCol');if(data.size==0){$leftCol.removeClass('no-buying');}else{$leftCol.addClass('no-buying');}
if(data.size>0&&$(window).width()<993&&$('.checkoutStickyBtn').length==0&&$leftCol.length){$leftCol.append('
');}
if(!data.size||$(window).width()>=993){$('.checkoutStickyBtn').remove();}};commerce.cart.register(commerce.cart.buyingList,commerce.page.cart.checkoutButton);commerce.cart.register(commerce.cart.savedItems,commerce.page.cart.checkoutButton);
$(function(){var checkout=location.hash.indexOf("checkout")>-1||location.href.indexOf('checkout')>-1;if(checkout&&$(".cartLabel .shopping-cart").html()>0){if(commerce.page.cart.show!==undefined){commerce.page.cart.show();}}
if(checkout){literatum.utils.nextCheckoutSection();}
if(commerce.page.cart.checkoutButton!==undefined)
commerce.page.cart.checkoutButton({size:$('.shopping-cart-indicator__badge .cart-count').html()});$(document).on('click','.add-journal-to-cart .prevent-fix, .add-journal-to-cart .tab-nav a',function(e){if($(this).parent().hasClass('disable-click')){return false;}else{$(this).next(".journal-options-expanded").slideToggle();$(this).toggleClass("open");setTimeout(function(){$('.eCommerceCheckoutSavedForLaterItemsWidget .journal-options-expanded,.eCommerceCheckoutRecommendedItemsWidget .journal-options-expanded,.eCommerceCheckoutRecentlyViewedItemsWidget .journal-options-expanded').each(function(){var expandedMargin=$(this).height()+21;if(expandedMargin>25&&$(this).is(':visible')){$(this).closest('.add-journal-to-cart').css('margin-bottom',expandedMargin);}else{$(this).closest('.add-journal-to-cart').css('margin-bottom','10px');}});},400);if($(this).closest('.purchaseArea').css('position')=='absolute'&&!$(e.target).closest('.tab-nav').length){$('.add-journal-to-cart').toggleClass('disable-click');$(this).closest('.add-journal-to-cart').toggleClass("disable-click");}}
return false;});verifyAddress();});function verifyAddress(){$(".eCommerceCheckoutFieldsWidget").on("focusout, blur","form .js__verifyAddress input",function(e){var input=$(this);var val=input.val();var POBoxPattern=new RegExp('^p.*o.*box.*','i');var isPoBoxString=val.match(POBoxPattern);var validPOBoxPattern=new RegExp('(?:p\\.?\\s*o\\.?|post(?:al|s)?\\s+office)\\s*(?:box)?\\s*(\\d+)','gim');if(isPoBoxString&&!val.match(validPOBoxPattern)){input.addClass("error");$("#poBoxError").removeClass("hidden")}else{input.removeClass("error");$("#poBoxError").addClass("hidden")}});}
if(commerce.page.cart.checkoutButton!==undefined){$(window).on("resize",function(){commerce.page.cart.checkoutButton({size:$('.shopping-cart-indicator__badge .cart-count').html()});});}
literatum.events.register('user-action',function(){literatum.widgets.all().forEach(function(item){item.reset()});});literatum.events.register('widget-rendered',function(){var $document=$(document);if(typeof $document.Tabs!='undefined'){$(document).Tabs();}});commerce.cart.setErrorHandler(function(){location.reload();});
$(function(){$(".commerceExplainer .header").on("click",function(){$header=$(this);$content=$header.next();$content.slideToggle(function(){if($("li",$content).length==0)
return;if($content.is(":visible")){$header.removeClass("collapsed");$header.addClass("expanded")}else{$header.removeClass("expanded");$header.addClass("collapsed");}});});$(".commerceExplainer .content").each(function(index,element){if($("li",element).length==0){$(element).closest(".container").children(".header").addClass("empty expanded");}});});
commerce.RedeemAllowanceWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);};commerce.RedeemAllowanceWidget.prototype=new literatum.Widget();commerce.RedeemAllowanceWidget.id='eCommerceRedeemOfferWidget';commerce.RedeemAllowanceWidget.action='/pb/widgets/commerce/redeemAllowance';commerce.RedeemAllowanceWidget.binders={expand:function(e,widget){e.preventDefault();widget.find('.expand-purchase-options').toggleClass('expanded');widget.find(".add-allowance").slideToggle();}};commerce.RedeemAllowanceWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.RedeemAllowanceWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.RedeemAllowanceWidget.id);};literatum.widgets.register(commerce.RedeemAllowanceWidget);
commerce.PurchaseOptionsWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.savedItems);this.register(commerce.cart.buyingList);var $obj=this.find(".scroll-into-view").closest(".purchaseArea");if($obj&&$obj.length>0){literatum.utils.scroll($obj,1000,50);var $expandSection=this.find("*[data-bind='expandSection']");if($expandSection.length&&!$expandSection.hasClass('active')){$expandSection.click();}}};commerce.PurchaseOptionsWidget.prototype=new literatum.Widget();commerce.PurchaseOptionsWidget.id='eCommercePurchaseAccessWidget';commerce.PurchaseOptionsWidget.action='/pb/widgets/commerce/purchaseOptions';commerce.PurchaseOptionsWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.PurchaseOptionsWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.PurchaseOptionsWidget.id);};commerce.PurchaseOptionsWidget.binders={saveItem:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-doi");commerce.cart.savedItems.saveByDoi(key);},addItem:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var key=$(this).attr("data-key");commerce.cart.buyingList.addItem(key);},expandSection:function(e,widget){e.preventDefault();widget.find('.purchaseAreaList_expanded').slideUp();widget.find('.purchaseAreaList_expand').attr("aria-expanded",false);if($(e.target).hasClass('active')){$(e.target).removeClass('active');$(e.target).siblings('.purchaseAreaList_expanded').slideUp();$(e.target).attr("aria-expanded",false);}else{$(e.target).addClass('active');widget.find(".purchaseAreaList_expand").not($(e.target)).removeClass('active');$(e.target).siblings('.purchaseAreaList_expanded').slideDown();$(e.target).attr("aria-expanded",true);}}};commerce.PurchaseOptionsWidget.prototype.update=function(model){this.triggerInfoHandlers(this,model);this.loaded();};commerce.PurchaseOptionsWidget.infoHandlers={info:function(message,widget,model){var key=model.attributes['itemAdded'];var $cartIcon_notEmpty="/templates/jsp/_ux3/_themes/_photo/_sage/images/cart-notEmpty.svg";var $cartLogo=$('.cart-logo');var $cartSize=$('.cartItemSize');var $cartAnchor=$('.cart-logo-link');var notification=commerce.Notification.get(widget.find(".purchaseMessage[data-item='"+key+"'].info"));if(notification){notification.setMessage(message);notification.info();notification.show();notification.$element.siblings("a").find(".add-to-cart-msg").remove();setTimeout(function(){notification.$element.fadeOut();$(widget.find("*[data-entity='"+key+"']")).parent().hide();var $addedMessage=widget.find(".addedMessage[data-item='"+key+"']");commerce.Notification.get($addedMessage).showFlex();$addedMessage.find('a.btn').first().focus();if($cartSize&&$cartAnchor&&$cartLogo){$cartLogo.attr("src",$cartIcon_notEmpty);var $newCartSize=parseInt($cartSize.html(),10)+1;$cartSize.html($newCartSize);$cartSize.css('display','inline');$cartAnchor.removeClass('disable-me');$cartAnchor.attr('aria-label','Your cart contains '+$newCartSize+' items')}},1000);}},error:function(message,widget,model){var key=model.attributes['itemAdded'];var notification=commerce.Notification.get(widget.find(".purchaseMessage[data-item='"+key+"']"));if(notification){notification.setMessage(message);notification.error();notification.show();}
$(widget.find("*[data-entity='"+key+"']")).hide();},savedItemInfo:function(message,widget){var notification=commerce.Notification.get(widget.find(".savedItem-info"));if(notification){notification.setMessage(message);notification.info();}
$(widget.find(".save-for-later-link")).hide();},savedItemError:function(message,widget){var notification=commerce.Notification.get(widget.find(".savedItem-info"));if(notification){notification.setMessage(message);notification.error();notification.show();}},nextAction:function(message){if(message=='refreshPage'){setTimeout(function(){location.reload();},5000);}}};literatum.widgets.register(commerce.PurchaseOptionsWidget);
commerce.BuyingItemWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.buyingList);this.register(commerce.cart.discounts);this.register(commerce.cart.savedItems);this.register(commerce.cart.summary);this.register("quantityIncreased");this.register("quantityDecreased");this.register("updateQuantity");};commerce.BuyingItemWidget.prototype=new literatum.Widget();commerce.BuyingItemWidget.id='eCommerceCheckoutBuyingItemsWidget';commerce.BuyingItemWidget.action='/pb/widgets/commerce/buyingItems';commerce.BuyingItemWidget.notifications={info:commerce.Notification};commerce.BuyingItemWidget.binders={applyDiscount:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.discounts.apply(widget.find("input[name='discount']").val());},expandAccessInfoArea:function(e){var $this=$(this);var $wrapper=$this.closest('.showMoreAndLess-wrapper-access');if($wrapper){$this.hide();$wrapper.find('.show-less-access').show();$wrapper.next('.accessTypeDropZone').show();}},collapsedAccessInfoArea:function(e){var $this=$(this);var $wrapper=$this.closest('.showMoreAndLess-wrapper-access');if($wrapper){$this.hide();$wrapper.find('.show-more-access').show();$wrapper.next('.accessTypeDropZone').hide();}},updateCartIcon:function(e){var $imagePath="/templates/jsp/_ux3/_themes/_photo/_sage/images/";var $cartIcon_notEmpty=$imagePath+"cart-notEmpty.svg";var $cartIcon_empty=$imagePath+"cart-active.svg";var $cartLogo=$('.cart-logo');var $cartSize=$('.cartItemSize');var $cartAnchor=$('.cart-logo-link');if($cartSize&&$cartAnchor&&$cartLogo){var $imgSrc,$ariaLabelText;var $newCartSize=parseInt($cartSize.html(),10)-1;$cartSize.html($newCartSize);$cartSize.css('display','inline');if($newCartSize<=0){$imgSrc=$cartIcon_empty
$ariaLabelText="Your cart is empty";$cartAnchor.addClass('disable-me');}else{$imgSrc=$cartIcon_notEmpty;$ariaLabelText='Your cart contains '+$newCartSize+' items';$cartAnchor.removeClass('disable-me');}
$cartLogo.attr("src",$imgSrc);$cartAnchor.attr('aria-label',$ariaLabelText);}},removeDiscount:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.discounts.remove($(this).data('discount'));},disableDiscount:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.discounts.disable($(this).data('discount'));},enableDiscount:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.discounts.enable($(this).data('discount'));},saveItem:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var itemId=$(this).data("item-id");if(itemId){commerce.cart.savedItems.saveById(itemId);}else{commerce.cart.savedItems.saveByDoi($(this).data("item-doi"));}},removeItem:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.buyingList.remove($(this).data("item-id"));},increaseQuantity:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.buyingList.increaseQuantity($(this).data("item-id"));},decreaseQuantity:function(e){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.buyingList.decreaseQuantity($(this).data("item-id"));},updateQuantity:function(e){var currentQuantity=$(this).parent().find("#quantity").attr("value");var requiredQuantity=$(this).parent().find("#quantity").val();var MAXIMUM_ALLOWED_VALUE=$(this).attr("data-max-quote-items");if(Number(requiredQuantity)<1||Number(requiredQuantity)>Number(MAXIMUM_ALLOWED_VALUE)){$(this).parent().find(".quantity_number.error").removeClass("hidden");}
else{$(this).parent().find(".quantity_number.error").addClass("hidden");if(currentQuantity!=requiredQuantity){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();commerce.cart.buyingList.updateQuantity($(this).data("item-id"),currentQuantity,requiredQuantity);}}}};commerce.BuyingItemWidget.prototype.reset=function(){Object.getPrototypeOf(commerce.BuyingItemWidget.prototype).reset.call(this);this.find("input[name='discount']").removeClass("errorMsg");this.find(".promoCodeMsg .errorMsg").hide();this.find(".promoCodeMsg .infoMsg").hide();};commerce.BuyingItemWidget.infoHandlers={discountError:function(message,widget){widget.find(".promoCodeMsg .infoMsg").hide();widget.find("input[name='discount']").addClass("errorMsg");var $error=widget.find(".promoCodeMsg .errorMsg");$error.html(message);$error.show();},discountInfo:function(message,widget){widget.find(".promoCodeMsg .errorMsg").hide();widget.find("input[name='discount']").removeClass("errorMsg");var $info=widget.find(".promoCodeMsg .infoMsg");$info.html(message);$info.show();},discount:function(message,widget){$(widget.find("input[name='promoCode']")).val(message);},savedItemError:function(message,widget){var notification=widget.getNotification('info');if(notification){notification.error();notification.setMessage(message);notification.show();}},error:function(message,widget){var notification=widget.getNotification('info');if(notification){notification.error();notification.setMessage(message);notification.show();}}};commerce.BuyingItemWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.BuyingItemWidget.prototype).registerListeners.call(this);var widget=this;var $applyButton=this.find("#applyDiscountForm input.applyDiscount");var $discountField=this.find("input[name='discount']");$discountField.on('keyup',function(){if($discountField.val()){$applyButton.addClass('primary');$applyButton.prop('disabled',false);}else{$applyButton.removeClass('primary');$applyButton.prop('disabled',true);widget.find(".promoCodeMsg .errorMsg").hide();widget.find("input[name='discount']").removeClass("errorMsg");var $info=widget.find(".promoCodeMsg .infoMsg");$info.html(message);$info.show();}});$('.item-price span, .totalPrice span').text(function(){return $(this).text().replace('GBP','£').replace('USD','$').replace('EUR','€');});};commerce.BuyingItemWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.BuyingItemWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.BuyingItemWidget.id);};literatum.widgets.register(commerce.BuyingItemWidget);
commerce.eCommerceOrderConfirmationWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);};commerce.eCommerceOrderConfirmationWidget.prototype=new literatum.Widget();commerce.eCommerceOrderConfirmationWidget.id='eCommerceOrderConfirmationWidget';commerce.eCommerceOrderConfirmationWidget.binders={expandAccessInfoArea:function(e){var $this=$(this);var $wrapper=$this.closest('.showMoreAndLess-wrapper-access');if($wrapper){$this.hide();$wrapper.find('.show-less-access').show();$wrapper.next('.sageOrderConfirmDropZone').show();}},collapsedAccessInfoArea:function(e){var $this=$(this);var $wrapper=$this.closest('.showMoreAndLess-wrapper-access');if($wrapper){$this.hide();$wrapper.find('.show-more-access').show();$wrapper.next('.sageOrderConfirmDropZone').hide();}},};commerce.eCommerceOrderConfirmationWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.eCommerceOrderConfirmationWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.eCommerceOrderConfirmationWidget.id);};literatum.widgets.register(commerce.eCommerceOrderConfirmationWidget);
commerce.IdentityWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);};commerce.IdentityWidget.prototype=new literatum.Widget();commerce.IdentityWidget.id='eCommerceCheckoutIdentityWidget';commerce.IdentityWidget.action='/pb/widgets/commerce/identity';commerce.IdentityWidget.find=function(){var $result=$("*[data-widget-def='"+commerce.IdentityWidget.id+"']");if($result.length>0){return $result;}
return $("."+commerce.IdentityWidget.id);};commerce.IdentityWidget.notifications={identity:commerce.Notification,email:commerce.FieldNotification,acceptTermsConditions:commerce.FieldNotification};commerce.IdentityWidget.binders={guest:function(e,widget){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(literatum.utils.nextCheckoutSection);commerce.cart.addCallback(function(){loading.done();commerce.sageUtil.hideOrderSummarySection(e);});var acceptTermsConditions=widget.find("input[name='acceptTermsConditions']").is(":checked");commerce.cart.identity.guest(widget.find("input[name='email'].user").val(),acceptTermsConditions);},showUserLogin:function(e,widget){e.preventDefault();var $loginForm=widget.find(".frmLogin");var email=widget.find("input[name='email'].user").val();widget.find(".checkoutLogin").hide();if($loginForm.length>0){$loginForm.show();$loginForm.removeClass('hidden');if(email!=undefined){$loginForm.find("input[name='login']").val(email).focus();}}},register:function(e,widget){var email=widget.find("input[name='email'].user").val();if(email){e.preventDefault();window.location="/action/registration?email="+encodeURIComponent(email)+"&redirectUri="+encodeURIComponent(location.href);}},cancelLogin:function(e,widget){e.preventDefault();var notification=widget.getNotification("identity");if(notification){notification.reset();}
widget.find(".message.error").remove();widget.find(".checkoutLogin").show();if(widget.find(".frmLogin").length>0){widget.find(".frmLogin").hide();}},userLogin:function(e){var loading=new literatum.FullPageLoading();loading.start();},resetCart:function(e){e.preventDefault();var loading=new literatum.FullPageLoading();loading.start();literatum.utils.send({action:'resetCartAction'},function(){location.reload();},function(){location.reload();});},expand:function(e,widget){widget.find(".checkout-expand").slideToggle();}};commerce.IdentityWidget.prototype.registerListeners=function(){Object.getPrototypeOf(commerce.IdentityWidget.prototype).registerListeners.call(this);if(this.find("#frmLoginEcomm").length>0){var $isErrorFounded=this.find("#frmLoginEcomm .error")
if(($isErrorFounded.length>0)){$('.btn[aria-controls="checkoutLogin frmLogin"]').trigger('click');$('#checkoutLogin').hide();}}};commerce.IdentityWidget.prototype.triggerInfoHandlers=function(widget,model){Object.getPrototypeOf(commerce.IdentityWidget.prototype).triggerInfoHandlers.call(this,widget,model);widget.find("input,select").each(function(){var $this=$(this);var name=$this.attr('name');var errorName=name+"Error";var notification=widget.getNotification(name);if(notification){notification.reset();if(model&&model.attributes&&model.attributes[errorName]){notification.error();notification.setMessage(model.attributes[errorName]);notification.show();}}});};commerce.IdentityWidget.infoHandlers={identityError:function(message,widget){var notification=widget.getNotification("identity");if(notification){notification.setMessage(message);notification.error();notification.show();}},emailError:function(message,widget){var notification=widget.getNotification("email");if(notification){notification.error();notification.setMessage(message);notification.show();}},acceptTermsConditionsError:function(message,widget){var notification=widget.getNotification("acceptTermsConditions");if(notification){notification.error();notification.setMessage(message);notification.show();}}};commerce.IdentityWidget.prototype.triggerInfoHandlers=function(widget,model){Object.getPrototypeOf(commerce.IdentityWidget.prototype).triggerInfoHandlers.call(this,widget,model);widget.find("input,select").each(function(){var $this=$(this);var name=$this.attr('name');var errorName=name+"Error";var notification=widget.getNotification(name);if(notification){notification.reset();if(model&&model.attributes&&model.attributes[errorName]){$this.addClass('is-invalid');$this.attr('aria-invalid','true');notification.error();notification.setMessage(model.attributes[errorName]);notification.show();}}});};literatum.widgets.register(commerce.IdentityWidget);
commerce.BillingWidget=function(widgetDef,element){literatum.Widget.call(this,widgetDef,element);this.register(commerce.cart.identity);this.register(commerce.cart.shipping);this.register(commerce.cart.billing);this.register(commerce.cart.buyingList);this.register(commerce.cart.savedItems);};commerce.BillingWidget.prototype=new literatum.Widget();commerce.BillingWidget.id='eCommerceCheckoutBillingWidget';commerce.BillingWidget.action='/pb/widgets/commerce/sageBilling';commerce.BillingWidget.selectedCountry;commerce.BillingWidget.notifications={info:commerce.Notification,givennames:commerce.FieldNotification,surname:commerce.FieldNotification,email:commerce.FieldNotification,phone:commerce.FieldNotification,organization:commerce.FieldNotification,address1:commerce.FieldNotification,address2:commerce.FieldNotification,city:commerce.FieldNotification,country:commerce.FieldNotification,state:commerce.FieldNotification,zipCode:commerce.FieldNotification,vatNumber:commerce.FieldNotification};commerce.BillingWidget.prototype.lostFocus=function(){if(this.find("form").length){return literatum.widgets.render(this,{},{});}};commerce.BillingWidget.binders={expandAccessInfoArea:function(e){var $this=$(this);var $wrapper=$this.closest('.showMoreAndLess-wrapper-access');if($wrapper){$this.hide();$wrapper.find('.show-less-access').show();$wrapper.next('.accessTypeDropZone').show();}},collapsedAccessInfoArea:function(e){var $this=$(this);var $wrapper=$this.closest('.showMoreAndLess-wrapper-access');if($wrapper){$this.hide();$wrapper.find('.show-more-access').show();$wrapper.next('.accessTypeDropZone').hide();}},submitBilling:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(literatum.utils.nextCheckoutSection);commerce.cart.addCallback(function(){loading.done();commerce.BillingWidget.reloadPage(widget);});e.preventDefault();commerce.cart.billing.update($("form[name='billing']").serializeObject());},editBilling:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.cart.addCallback(loading.done);e.preventDefault();var d=literatum.widgets.render(widget,{},{editing:true});literatum.widgets.all().forEach(function(item){if(widget.widgetDef.id!=item.widgetDef.id){d=d.then(item.lostFocus());}});d.then(function(){literatum.utils.nextCheckoutSection();commerce.sageUtil.hideOrderSummarySection(e);commerce.sageUtil.enableVatSection(e);var invoice=$('.eCommerceCheckoutShippingWidget');if(invoice.length){invoice.remove();}
loading.done();var countryCode=$('#country').val();if(countryCode=="US"){widget.find(".zipcode label").text(widget.find(".zipcode-text").text())}else{widget.find(".zipcode label").text(widget.find(".postcode-text").text())}
var extraUsStates=["American Samoa","Armed Forces (AA)","Armed Forces (AE)","Armed Forces (AP)","Guam","Marshall Islands","Micronesia","Northern Mariana Islands","Palau","Puerto Rico","Virgin Islands"];var selectStateOptions=$('#state option');$('#state option').each(function(){var $this=$(this);var $stateText=$this.text();if(extraUsStates.indexOf($stateText)>=0){$this.remove();}});commerce.BillingWidget.removeCountry();commerce.BillingWidget.topSelectedCountry();commerce.BillingWidget.appendAreaRequired(widget);$('div.eCommerceCheckoutPaymentWidget[data-widget-def="eCommerceCheckoutPaymentWidget"]').attr('hidden',true);$('#email-identity').attr('data-id','billing-email-edit');});},sameAsShipping:function(e,widget){if($(this).is(":checked")){var shippingWidgets=literatum.widgets.get('eCommerceCheckoutShippingWidget');var shippingWidget=shippingWidgets[0];if(shippingWidget){var forms=shippingWidget.collectForms();widget.updateForm('billing',forms['shipping'],true);widget.find("select[name='country']").change();}
var identityWidgets=literatum.widgets.get('eCommerceCheckoutIdentityWidget');var identityWidget=identityWidgets[0];if(identityWidget){var forms=identityWidget.collectForms();widget.updateForm('billing',forms['personal-info'],true);}}else{literatum.utils.clearForm('billing',{});}},placeOrder:function(e,widget){if(!commerce.validators.validate(widget.find("form[name='apg']"))){e.preventDefault();}},expand:function(e,widget){widget.find(".checkout-expand").slideToggle();},countryChanged:function(e,widget){var loading=new literatum.FullPageLoading();loading.start();commerce.BillingWidget.selectedCountry=$('#country').val();var countryCode=commerce.BillingWidget.selectedCountry;if(countryCode=="US"){widget.find(".zipcode label").text(widget.find(".zipcode-text").text())}else{widget.find(".zipcode label").text(widget.find(".postcode-text").text())}
literatum.utils.getCountryState(countryCode,function(model){var $states=$(".state");var $select=$(".state-list-drop");var $stateValue=$("input[name='state']");var htmlSelectState=$("