1jQuery(document).ready(function(i){window.tknPricing=new i.tknPricingController}),$.tknPricingController=function(){this.init()},$.tknPricingController.prototype=$.extend(!0,{},$.tknEventsInterface.prototype,{ACADEMIC_PLUS_MIN_PRICE:299,selectors:{pricingRegularTitle:".js-pricing-regular-title",pricingAcademicTitle:".js-pricing-academic-title",pricingRegular:".pricing-regular",pricingFeatures:".pricing-features",pricingAcademic:".pricing-academic",seatsCount:"#seats-count",teacherPriceTotal:".js-price",teacherPricePerStudent:".js-per-student",seatsInput:'input[name="seats"]',pricingTooptip:"#pricing-tip",pricingMinUsersCountTooptip:"#pricing-min-users-count-tip",usersCount:".js-users-count",pricingForm:"#pricing-form"},isAcademic:null,addons:null,prices:null,init:function(){this.isAcademic=window.IS_ACADEMIC_PRICING,this.addons=JSON.parse(window.ACADEMIC_PLANS),this.prices=JSON.parse(window.ACADEMIC_PRICES),this.academicMinSeats=Number(window.MIN_SEATS_COUNT),$(this.selectors.seatsCount).on("keyup",bind(this,this.onSeatsCountChange)),$(this.selectors.pricingForm).on("submit",bind(this,this.onPricingFormSubmitted)),$(this.selectors.pricingTooptip).on("click",bind(this,function(){$(this.selectors.pricingTooptip).hide()})),this.isAcademic&&this.onSeatsCountChange()},onSeatsCountChange:function(){var i=$(this.selectors.seatsCount).val(),t=(i<this.academicMinSeats?this.showPlanTooltip():this.hidePlanTooltip(),this.checkUsersCount(i),this.calculatePrice(i));$(this.selectors.teacherPriceTotal).text(t.total),$(this.selectors.teacherPricePerStudent).text(t.perSeat),$(this.selectors.seatsInput).val(i)},checkUsersCount:function(i){i<window.PAID_SEATS_USED?(this.hidePlanTooltip(),ReportHelper.showMinUsersTooltip(window.PAID_SEATS_USED)):ReportHelper.hideMinUsersTooltip()},calculatePrice:function(i){var t=0;if(0==i||isNaN(i)||!this.addons||!this.prices)return{total:this.ACADEMIC_PLUS_MIN_PRICE,perSeat:0};for(var e=i,s=0;s<this.prices.length;s++)"base"===this.addons[s]?t+=this.prices[s].perLicense:0<e-this.prices[s].startsFrom&&(t+=Math.max(0,(e-this.prices[s].startsFrom)*this.prices[s].perLicense),e=this.prices[s].startsFrom);return{total:t,perSeat:(t/i).toFixed(1)}},showPlanTooltip:function(){$(this.selectors.pricingTooptip).show()},hidePlanTooltip:function(){$(this.selectors.pricingTooptip).hide()},onPricingFormSubmitted:function(i){i.preventDefault();i=window.tkn.analytics.getGoogleAnalyticsFormFieldElement();i&&$(this.selectors.pricingForm).append(i),$(this.selectors.pricingForm).off("submit"),$(this.selectors.pricingForm).trigger("submit")}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.