{"version":3,"sources":["../../../../dev/j/v2/pages/lp-aff-pcmag-a1e.js"],"names":["initModal","element","modalButton","querySelector","modalTarget","getAttribute","addEventListener","loadModal","e","charCode","target","document","getElementById","contentHolder","xhr","XMLHttpRequest","onreadystatechange","this","readyState","status","container","createElement","innerHTML","responseText","append","BSN","Modal","show","open","avastGlobals","web","domain","locale","setRequestHeader","send","getCurrentPlatform","jsClasses","js-pc","js-mac","js-android","js-ios","key","hasOwnProperty","$","hasClass","addPositionAttr","position","ctas","length","attr","avm","require","$open","$close","$openComparison","$closeComparison","trialDownloadIDs","pc","mac","android","ios","detectedPlatform","detect","os","name","toLowerCase","configCurrentPage","pathnameSplitted","window","location","pathname","split","supported-platform","product-id","Vue","el","data","activeVal","methods","toggleActive","mounted","$el","updated","delimiters","on","parents","find","addClass","$target","removeClass","parent","next","$openButton","prev","scrollTo","top","offset","innerHeight","left","behavior","scrolledTop","pageYOffset","stickyBar","comarisonTable","outerHeight","stickyButtons","stickyBadges","heroButtons","heroBadges","planButtons","planBadges","footerButtons","footerBadges"],"mappings":"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","file":"lp-aff-pcmag-a1e.js","sourcesContent":["(function() {\n\t'use strict';\n\tvar $ = avm.require('jquery'),\n\t\t$open = $('.js-open'),\n\t\t$close = $('.js-close'),\n\t\t$openComparison = $('.js-open-comparison'),\n\t\t$closeComparison = $('.js-close-comparison'),\n\t\ttrialDownloadIDs = {\n\t\t\tpc: 'AVAST-ONE-FREE-WIN-PP',\n\t\t\tmac: 'AVAST-ONE-FREE-MAC-PP',\n\t\t\tandroid: 'AVAST-ONE-ANDROID-PP',\n\t\t\tios: 'AVAST-ONE-IOS-PP'\n\t\t},\n\t\tdetectedPlatform = avastGlobals.detect.os.name.toLowerCase(),\n\t\t$document = $(document),\n\t\tcurrentPageName = getCurrentPageName(),\n\t\tsupportedPlatforms = {\n\t\t\tandroid: {\n\t\t\t\ttext: 'Android',\n\t\t\t\tstyle: 'google-play.png'\n\t\t\t},\n\t\t\tios: {\n\t\t\t\ttext: 'iOS',\n\t\t\t\tstyle: 'app-store.png'\n\t\t\t},\n\t\t\tmac: {\n\t\t\t\ttext: 'Mac',\n\t\t\t\tstyle: 'logo-mac'\n\t\t\t},\n\t\t\tpc: {\n\t\t\t\ttext: 'Windows',\n\t\t\t\tstyle: 'logo-win'\n\t\t\t}\n\t\t},\n\t\tdefaultIconName = 'google-play.png',\n\t\tconfigCurrentPage = {\n\t\t\t'supported-platform': getCurrentPlatform(),\n\t\t\t'product-id': trialDownloadIDs[getCurrentPlatform()]\n\t\t},\n\t\tpageSupportedPlatform = configCurrentPage['supported-platform'].toLowerCase();\n\n\t// fix platform name\n\tif (detectedPlatform === 'windows') {\n\t\tdetectedPlatform = 'pc';\n\t}\n\n\tvar cardToggler = new Vue({\n\t el: '#card-toggler',\n\t data: {\n\t activeVal: 'individual'\n\t },\n\t methods: {\n\t toggleActive: function(name) {\n\t this.activeVal = name;\n\t }\n\t },\n\t mounted: function() {\n\t\t\tif (avastGlobals.web.locale === 'en-us' || avastGlobals.web.locale === 'en-gb') {\n\t\t\t\tinitModal(this.$el);\n\t\t\t}\n\t },\n\t updated: function() {\n\t\t\tif (avastGlobals.web.locale === 'en-us' || avastGlobals.web.locale === 'en-gb') {\n\t\t\t\tinitModal(this.$el);\n\t\t\t}\n\t },\n\t delimiters: ['<%', '%>']\n\t});\n\n\tfunction initModal(element) {\n\t\tvar modalButton = element.querySelector('[data-toggle=\"modal\"]'),\n\t\t\tmodalTarget = modalButton !== null ? modalButton.getAttribute('data-target') : null;\n\n\t\tif (modalButton !== null && modalTarget !== null) {\n\t\t\tmodalButton.addEventListener('click', function() {\n\t\t\t\tloadModal(modalTarget);\n\t\t\t});\n\n\t\t\tmodalButton.addEventListener('keypress', function(e) {\n\t\t\t\tif (e.charCode === 13) {\n\t\t\t\t\tloadModal(modalTarget);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction loadModal(target) {\n\t\t// !!make sure name of source page for modal and target in modal trigger are same!!\n\t\tif (document.getElementById(target) === null) {\n\t\t\tvar contentHolder = document.querySelector('.content-holder'),\n\t\t\t\txhr = new XMLHttpRequest();\n\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\tif (this.readyState == 4 && this.status == 200) {\n\n\t\t\t\t\tvar container = document.createElement('div');\n\n\t\t\t\t\tcontainer.innerHTML = this.responseText;\n\t\t\t\t\tcontentHolder.append(container);\n\n\t\t\t\t\tvar modal = new BSN.Modal(document.getElementById(target));\n\t\t\t\t\tmodal.show();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.open('GET', 'https://' + avastGlobals.web.domain + '/' + avastGlobals.web.locale + '/' + target, true);\n\t\t\txhr.setRequestHeader('x-requested-with', 'XMLHttpRequest');\n\t\t\txhr.send(null);\n\t\t} else {\n\t\t\tvar modal = new BSN.Modal(document.getElementById(target));\n\t\t\tmodal.show();\n\t\t}\n\t}\n\n\t$open.on('click', function() {\n\t\tvar $target = $(this).parents('section').find('.js-features-content');\n\n\t\t$target.addClass('show');\n\t\t$(this).addClass('d-none');\n\t});\n\n\t$close.on('click', function() {\n\t\tvar $target = $(this).parents('.js-features-content'),\n\t\t\t$openButton = $target.parents('section').find('.js-open');\n\n\t\t$openButton.removeClass('d-none');\n\t\t$target.removeClass('show');\n\t});\n\n\t$openComparison.on('click', function() {\n\t\tvar $target = $(this).parent().next('.js-comparison-content');\n\n\t\t$target.addClass('show');\n\t\t$(this).addClass('d-none');\n\t});\n\n\t$closeComparison.on('click', function() {\n\t\tvar $target = $(this).parents('.js-comparison-content'),\n\t\t\t$openButton = $target.prev().find('.js-open-comparison');\n\n\t\t$openButton.removeClass('d-none');\n\t\t$target.removeClass('show');\n\n\t\t$('.sticky-bar').removeClass('hidden');\n\n\t\twindow.scrollTo({\n\t\t\ttop: $openButton.offset().top - window.innerHeight / 2,\n\t\t\tleft: 0,\n\t\t\tbehavior: 'smooth'\n\t\t});\n\t});\n\n\t$(window).on('scroll', function() {\n\t\tvar scrolledTop = window.pageYOffset;\n\t\tvar stickyBar = $('.sticky-bar');\n\t\tvar comarisonTable = $('.js-comparison-content.show');\n\t\tif (!comarisonTable.length) {\n\t\t\treturn;\n\t\t}\n\t\tif (scrolledTop > comarisonTable.offset().top && scrolledTop < comarisonTable.offset().top + comarisonTable.outerHeight()) {\n\t\t\tstickyBar.addClass('hidden');\n\t\t} else {\n\t\t\tstickyBar.removeClass('hidden');\n\t\t}\n\t});\n\n\t// get current js-${platform} class\n\tfunction getCurrentPlatform() {\n\t\tvar jsClasses = {\n\t\t\t'js-pc': 'pc',\n\t\t\t'js-mac': 'mac',\n\t\t\t'js-android': 'android',\n\t\t\t'js-ios': 'ios'\n\t\t};\n\t\tfor (var key in jsClasses) {\n\t\t\tif (jsClasses.hasOwnProperty(key)) {\n\t\t\t\tif ($('html').hasClass(key)) {\n\t\t\t\t\treturn jsClasses[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 'pc';\n\t}\n\n\tfunction getCurrentPageName() {\n\t\tvar pathnameSplitted = window.location.pathname.split('/');\n\t\treturn pathnameSplitted[pathnameSplitted.length - 1];\n\t}\n\n\t// custom button attributes\n\tvar stickyButtons = $('.sticky-bar .btn');\n\tvar stickyBadges = $('.sticky-bar .image-button').parent('.bi-download-link');\n\tvar heroButtons = $('.hero .btn');\n\tvar heroBadges = $('.hero .image-button').parent('.bi-download-link');\n\tvar planButtons = $('#section-table .a1-card .btn, #section-table .tables .btn');\n\tvar planBadges = $('#section-table .a1-card .image-button, #section-table .tables .image-button').parent('.bi-download-link');\n\tvar footerButtons = $('.bft .btn');\n\tvar footerBadges = $('.bft .image-button').parent('.bi-download-link');\n\n\taddPositionAttr('sticky', stickyButtons);\n\taddPositionAttr('sticky', stickyBadges);\n\taddPositionAttr('hero', heroButtons);\n\taddPositionAttr('hero', heroBadges);\n\taddPositionAttr('plans', planButtons);\n\taddPositionAttr('plans', planBadges);\n\taddPositionAttr('footer', footerButtons);\n\taddPositionAttr('footer', footerBadges);\n\n\tfunction addPositionAttr(position, ctas) {\n\t\tif (typeof position === 'string' && (ctas && ctas.length)) {\n\t\t\tctas.attr('data-position', position);\n\t\t}\n\t}\n})();\n"]}