1jQuery(document).ready(function($){ 2 console.log('Welcome to yogateachercentral.com!'); 3 4 $('p').filter(function(){ 5 return this.innerHTML == ' '; 6 }).remove(); 7 8 $('.pricing.membership .price__body').each(function(){ 9 updatePricingOption($(this)); 10 }); 11 12 $('.price__body .pricing-option').on('change', function(){ 13 updatePricingOption($(this)); 14 }); 15 16 function updatePricingOption(el) { 17 var parentDiv = el.closest('.price__panel'); 18 var priceOptionsJson = JSON.parse(base64DecodeUnicode(parentDiv.find('.pricing-options-json').html())); 19 20 var chargedInput = parentDiv.find('[name="charged"]'); 21 var charged = parentDiv.find('[name="charged"]').val(); 22 var planLength = parentDiv.find('[name="plan-length"]').val(); 23 24 var selectedPlan = priceOptionsJson[charged][planLength]; 25 console.log(selectedPlan); 26 27 var ctaButton = parentDiv.find('.footer a'); 28 29 if(selectedPlan === undefined) { 30 parentDiv.find('.invalid-selection').show(); 31 ctaButton.addClass('disabled').attr('disabled', true).attr('href', '#'); 32 } else { 33 chargedInput.attr('disabled', false); 34 parentDiv.find('.payment-info h1').css('transform', 'scale(1)'); 35 36 if ( selectedPlan.id == 20 || selectedPlan.id == 21 || selectedPlan.id == 22 ) { 37 console.log('test 1'); 38 chargedInput.attr('disabled', true); 39 } 40 41 parentDiv.find('.invalid-selection').hide(); 42 ctaButton.removeClass('disabled').attr('disabled', false); 43 44 //Average 45 var chargedOpacity = charged == 'once' ? 1 : 0; 46 parentDiv.find('.billed-once').css('opacity', chargedOpacity); 47 parentDiv.find('.billed-once-amount').html(selectedPlan.initial_payment); 48 49 if(charged == 'once') { 50 parentDiv.find('.payment-info h1').css('transform', 'scale(0.6)'); 51 parentDiv.find('.billed-once').css('transform', 'scale(2.1)'); 52 } 53 54 //Price 55 var priceNeedsDivided = charged == 'once'; 56 57 if(charged == 'monthly' && selectedPlan.billing_amount != selectedPlan.initial_payment) { 58 parentDiv.find('.initial-payment').css('display', 'inline'); 59 parentDiv.find('.initial-amount').html(selectedPlan.initial_payment); 60 } else { 61 parentDiv.find('.initial-payment').hide(); 62 } 63 64 const id = Number(selectedPlan.id); 65 if ([20, 21, 22].includes(id)) { 66 var price = priceNeedsDivided ? selectedPlan.initial_payment / selectedPlan.expiration_number : selectedPlan.billing_amount ; 67 } else { 68 var price = priceNeedsDivided ? selectedPlan.initial_payment / planLength : selectedPlan.billing_amount; 69 } 70 var decimalDivisor = 1; 71 price = Math.round(price * decimalDivisor) / decimalDivisor; 72 parentDiv.find('.amount').html(price); 73 74 //CTA Button 75 ctaButton.attr('href', '/membership-account/membership-checkout/?level=' + selectedPlan.id); 76 } 77 78 console.log(priceOptionsJson); 79 } 80 81 function base64DecodeUnicode(str) { 82 // Convert Base64 encoded bytes to percent-encoding, and then get the original string. 83 percentEncodedStr = atob(str).split('').map(function(c) { 84 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 85 }).join(''); 86 87 88 return decodeURIComponent(percentEncodedStr); 89 } 90 91 if($('.feedback .lazyloadform').length > 0) { 92 var intervalId = setInterval(function() { 93 console.log('Form not yet loaded'); 94 if($('.feedback .lazyloadform').find('.loading').length == 0) { 95 clearInterval(intervalId); 96 $('#feedback_url').val($('#current_url').val()); 97 } 98 }, 500); 99 } 100});
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.