{"version":3,"sources":["../../../dev/j/lp/lp-safe-emailing-3176-b.js"],"names":["$","document","ready","currentBG","attr","addClass","click","bgurl","this","removeClass","index","css","match","join","avm","define","radios","stars","rating","allStars","forEach","radio","array","push","data","value","get","on","rateClick","apply","arguments","append","length","hideRadios","evt","star","currentTarget","lightUpStars","rateOnRadios","hide","siblings","addBack","prevAll","filter","prop","destroy","show","off","remove","require","set","rate","timeout","colorbox","inline","width","height","initialHeight","href","className","onLoad","url","avastGlobals","web","RootPath","load","find","target","querySelector","initAvastForm","closest","before","resize","MutationObserver","observer","mutations","mutation","type","has","setTimeout","close","clearTimeout","config","childList","oTimeout","observe","onClosed","window","location","hash","bxFetchSlide","ratingPoints","bxslider","bxSlider","auto","controls","pager","infiniteLoop","minSlides","maxSlides","slideMargin","slideWidth","nextSelector","nextText","prevSelector","prevText","onSliderLoad","goToSlide"],"mappings":"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","file":"lp-safe-emailing-3176-b.js","sourcesContent":["\n\n// Custom function for replacing bg image according to item selected in menu\n$(document).ready(function(){\n\n\tvar currentBG = $(\".component-steps .active\").attr(\"data-background\");\n\t$(\".laptop-screen\").addClass(\"\" + currentBG + \"\");\n\n\t$(\".component-steps .span12\").click(function(){\n\n\tvar bgurl = $(this).attr(\"data-background\");\n\t\t$(\".component-steps .span12\").removeClass(\"active\");\n\t\t$(this).addClass(\"active\");\n\n\t\t$(\".laptop-screen\").removeClass (\n\t\t\tfunction (index, css) {\n\t\t\t\treturn (css.match (/(^|\\s)bg-\\S+/g) || []).join(' ');\n\t\t\t\t}\n\t\t\t).addClass(\"\" + bgurl + \"\");\t\t\n\t});\n});\n\n\n// Script for reviews section\n(function(){\n\t/**\n\t * Convert radio buttons to stars\n\t * @version 1.0.0\n\t * @author Aleš Gabriel \n\t * @module avast.web.rating\n\t * @param {NodeList} Array of radio button elements\n\t * @returns Object of methods\n\t */\n\tavm.define('avast.web.rating', function(radios){\n\t\treturn {\n\t\t\tradios: radios,\n\t\t\tstars: function(){\n\t\t\t\tvar rating = this,\n\t\t\t\t\tallStars = $('
'),\n\t\t\t\t\tradios = this.radios,\n\t\t\t\t\tstars = [];\n\n\t\t\t\tthis.allStars = allStars;\n\n\t\t\t\tradios.forEach(function(radio, index, array){\n\t\t\t\t\tstars.push($('
').data('value', radio.value).get(0));\n\t\t\t\t});\n\n\t\t\t\tallStars.on('click', '.rating-star', function(){\n\t\t\t\t\trating.rateClick.apply(rating, arguments); // TODO: Or function.bind()? Support for forEach and bind is almost the same\n\t\t\t\t});\n\t\t\t\tallStars.append(stars);\n\n\t\t\t\tif(allStars.length){\n\t\t\t\t\tthis.hideRadios(radios);\n\t\t\t\t}\n\n\t\t\t\treturn allStars;\n\t\t\t},\n\t\t\trateClick: function(evt){\n\t\t\t\tvar star = $(evt.currentTarget);\n\n\t\t\t\tthis.lightUpStars(star);\n\t\t\t\tthis.rateOnRadios(star.data('value'), this.radios);\n\t\t\t},\n\t\t\thideRadios: function(radios){\n\t\t\t\t$(radios).hide();\n\t\t\t},\n\t\t\tlightUpStars: function(star){\n\t\t\t\tstar.siblings().addBack().removeClass('selected');\n\t\t\t\tstar.prevAll().addBack().addClass('selected');\n\t\t\t},\n\t\t\trateOnRadios: function(value, radios) {\n\t\t\t\t$(radios).filter('[value=' + value +']').prop('checked', true);\n\t\t\t},\n\t\t\tdestroy: function(){\n\t\t\t\t$(this.radios).show();\n\t\t\t\tthis.allStars.off('click');\n\t\t\t\tthis.allStars.remove();\n\t\t\t}\n\t\t}\n\t})\n\n\t/**\n\t * Parse JSON to microdata reviews\n\t * @version 1.0.0\n\t * @author Aleš Gabriel \n\t * @module avast.web.review\n\t * @returns Object of methods\n\t * @description Expected JSON data structure:\n\t\t[\n\t\t\t{\n\t\t\t\t\"date\": \"2015-10-24T04:43:04.8019109Z\",\n\t\t\t\t\"name\": \"n\",\n\t\t\t\t\"rating\": 4,\n\t\t\t\t\"text\": \"this is the best antivirus\"\n\t\t\t}\n\t\t]\n\t */\n\t/*\n\tavm.define('avast.web.review', (function(data){\n\t\t\treturn {\n\t\t\t\treviews: data ? JSON.parse(data) : JSON.parse(document.getElementById('avast-adc-reviews').innerHTML),\n\t\t\t\tfetch: function(from, to){\n\t\t\t\t\tvar ratings = [],\n\t\t\t\t\t\tfrom = from || 0,\n\t\t\t\t\t\tto = to || this.reviews.length,\n\t\t\t\t\t\treviews = this.reviews.slice(from, to);\n\n\t\t\t\t\t\treviewsDOM = $.map(reviews, function(review){\n\t\t\t\t\t\t\tvar d = new Date(review.date)\n\t\t\t\t\t\t\t\tvar day = d.getDate();\n\t\t\t\t\t\t\t\tvar month = d.getMonth() + 1;\n\t\t\t\t\t\t\t\tvar year = d.getFullYear();\n\n\t\t\t\t\t\t\tvar prefix = 'slider-review-',\n\t\t\t\t\t\t\t\tslide = $('
').addClass(prefix + 'slide'),\n\n\t\t\t\t\t\t\t\tthing = $('
').addClass(prefix + 'thing'),\n\t\t\t\t\t\t\t\tthingValue = $('AVS').text('Avast Free Antivirus for Windows 10'),\n\t\t\t\t\t\t\t\tname = $('
').addClass(prefix + 'author'),\n\t\t\t\t\t\t\t\tnameValue = $('').text(review.name),\n\t\t\t\t\t\t\t\trating = $('
').addClass(prefix + 'rating'),\n\t\t\t\t\t\t\t\tratingValue = $('').text(review.rating),\n\t\t\t\t\t\t\t\tstars = new Array(review.rating)\n\t\t\t\t\t\t\t\ttext = $('

').addClass(prefix + 'text').text(review.text),\n\t\t\t\t\t\t\t\tdate = $('').text(day + '/' + month + '/' + year).addClass(prefix + 'date');\n\n\t\t\t\t\t\t\tfor (var i = 0; i < parseInt(review.rating); i++){\n\t\t\t\t\t\t\t\trating.append('');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tslide.append([thing.append(thingValue), name.append(nameValue), date, rating.append(ratingValue), text]);\n\t\t\t\t\t\t\tratings.push(parseInt(review.rating));\n\n\t\t\t\t\t\t\treturn slide;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn reviewsDOM;\n\t\t\t\t}\n\n\t\t\t}\n\t})());\n\t*/\n\n\tvar router = avm.require('avast.web.router');\n\trouter.set({\n\t\trate: function(){\n\t\t\tvar $ = avm.require('jquery'),\n\t\t\t\ttimeout;\n\n\t\t\t$.colorbox({\n\t\t\t\tinline: true,\n\t\t\t\twidth: 570,\n\t\t\t\theight: 600,\n\t\t\t\tinitialHeight: 600,\n\t\t\t\thref: '#ratingPopup',\n\t\t\t\tclassName: 'rating-form',\n\t\t\t\tonLoad: function(){\n\t\t\t\t\tvar url = avastGlobals.web.RootPath ? avastGlobals.web.RootPath + 'rating-form.php' : 'rating-form.php';\n\n\t\t\t\t\t$(\"#ratingForm\").load(url, function(){\n\t\t\t\t\t\tvar rating = avm.require('avast.web.rating')($('.rating-form').find('input[type=\"radio\"][name=\"rating\"]').get()),\n\t\t\t\t\t\t\tstars = rating.stars(),\n\t\t\t\t\t\t\ttarget = document.querySelector('#colorbox.rating-form .form-table');\n\n\t\t\t\t\t\tinitAvastForm();\n\n\t\t\t\t\t\t$('#colorbox.rating-form').find('input[type=\"radio\"][name=\"rating\"]')\n\t\t\t\t\t\t\t.closest('.form-item')\n\t\t\t\t\t\t\t.hide()\n\t\t\t\t\t\t\t.before($('

').addClass('form-item').append(stars));\n\n\t\t\t\t\t\t$.colorbox.resize();\n\t\t\t\t\t\t// Form tweaks\n\t\t\t\t\t\t$('#colorbox.rating-form').find('#frm-text').attr('maxlength', '300');\n\n\t\t\t\t\t\t//console.log('mutation target %o', target);\n\t\t\t\t\t\t// create an observer instance\n\t\t\t\t\t\tif(typeof MutationObserver === 'function') {\n\t\t\t\t\t\t\tvar observer = new MutationObserver(function(mutations) {\n\t\t\t\t\t\t\t\tmutations.forEach(function(mutation) {\n\t\t\t\t\t\t\t\t\t//console.log(mutation.type);\n\t\t\t\t\t\t\t\t\t//console.log($(target).has('.bubble'));\n\n\t\t\t\t\t\t\t\t\tif(mutation.type === 'childList' && $(target).has('.bubble')){\n\t\t\t\t\t\t\t\t\t\t// Autoclose\n\t\t\t\t\t\t\t\t\t\ttimeout = setTimeout(function() {\n\t\t\t\t\t\t\t\t\t\t\t$.colorbox.close();\n\t\t\t\t\t\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\t\t\t\t\t}, 5000);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// configuration of the observer:\n\t\t\t\t\t\t\tvar config = {\n\t\t\t\t\t\t\t\tchildList: true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// pass in the target node, as well as the observer options\n\t\t\t\t\t\t\tvar oTimeout = setTimeout(function() {\n\t\t\t\t\t\t\t\t//console.log('mutation target %o', target);\n\t\t\t\t\t\t\t\tobserver.observe(target, config);\n\t\t\t\t\t\t\t\tclearTimeout(oTimeout)\n\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t},\n\t\t\t\tonClosed: function(){\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t// hash for tracking closed popup\n\t\t\t\t\twindow.location.hash = '!';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n})();\n\n$(document).ready(function(){\n\t//console.time('buildSlides')\n\t/*var reviewModule = avm.require('avast.web.review');\n\t\treviews = reviewModule.reviews;*/\n\t\tbxFetchSlide = 0,\n\t\tratingPoints = 5;\n\n\t// Open rating form\n\n\t// Slider\n\tvar bxslider = $('.js-slider')\n\t\t//.empty()\n\t\t//.append(reviewModule.fetch(0, 21))\n\t\t.bxSlider({\n\t\t\tauto: false,\n\t\t\tcontrols: true,\n\t\t\tpager: false,\n\t\t\tinfiniteLoop: true,\n\t\t\t//hideControlOnEnd: true,\n\t\t\tminSlides: 3,\n\t\t\tmaxSlides: 3,\n\t\t\tslideMargin: 60,\n\t\t\tslideWidth: 330,\n\t\t\tnextSelector: '.arrow-box.arrow-right',\n\t\t\tnextText: '',\n\t\t\tprevSelector: '.arrow-box.arrow-left',\n\t\t\tprevText: '',\n\t\t\t/*onSlideNext: function(slider, index, oldIndex){\n\t\t\t\tvar last = bxslider.getSlideCount();\n\t\t\t\t\tfrom = (bxFetchSlide + 1) * 3;\n\t\t\t\t\tto = (bxFetchSlide + 8) * 3;\n\n\t\t\t\tif (bxFetchSlide) {\n\t\t\t\t\t//console.log('from: %s', from)\n\t\t\t\t\t//console.log('to: %s', to)\n\n\t\t\t\t\t$('.slider-reviews').addClass('is-loading')\n\t\t\t\t\t$('.js-slider').append(reviewModule.fetch(from, to));\n\t\t\t\t\tbxslider.reloadSlider();\n\t\t\t\t}\n\n\t\t\t\tif (((bxslider.getCurrentSlide() + 1) * 3) >= bxslider.getSlideCount()) {\n\t\t\t\t\t// Prepare to reload but reload with next slide\n\t\t\t\t\tbxFetchSlide = bxslider.getCurrentSlide();\n\t\t\t\t}\n\n\t\t\t},*/\n\t\t\tonSliderLoad: function(){\n\t\t\t\tvar timeout;\n\n\t\t\t\tif (bxFetchSlide) {\n\t\t\t\t\t//console.log('onSliderLoad')\n\t\t\t\t\t//console.log('onSliderLoad count: %s', bxslider.getSlideCount())\n\n\t\t\t\t\t// It's too early to move on correct position. For some reason the width is still not correctly recalculated.\n\t\t\t\t\ttimeout = setTimeout(function(){\n\t\t\t\t\t\tbxslider.goToSlide(bxFetchSlide + 1);\n\n\t\t\t\t\t\t// @todo: remove loader\n\n\t\t\t\t\t\t// Clear state\n\t\t\t\t\t\tbxFetchSlide = 0;\n\n\t\t\t\t\t\t// Clear timeout\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t}, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t\t/*onSlideAfter: function(){\n\t\t\t\t$('.slider-reviews').removeClass('is-loading');\n\t\t\t}*/\n\t\t});\n\n\t// Total reviews and average rating to DOM\n\t/*var totalRatings = reviews.reduce(function(pv, cv) { return pv + cv.rating; }, 0);\n\tvar avgRating = (totalRatings) / reviews.length;\n\tvar percentAvgRating = Math.floor((100 / ratingPoints) * avgRating);\n\n\t$('.rating-bar').width(17 * ratingPoints);\n\t$('.rating-bar-average').width(percentAvgRating + '%');\n\n\t$('.total-reviews').text(reviews.length)\n\t$('.average-rating').text(avgRating.toPrecision(2))*/\n\t//console.timeEnd('buildSlides')\n});\n// /Script for reviews section"]}