Mini Kabibi Habibi
(function (wa, $) {
var ui = wa.UI = wa.UI || {},
_window = wa.Core.Window,
_external = wa.Utils.External,
_instrument = wa.Utils.Instrument,
_settings = wa.Utils.Settings;
ui.createUpellToast = function (toastData) {
if(toastData.campaign && toastData.campaign !== 'none') return new ui.CampaignToast(toastData);
if (!toastData || (toastData && !toastData.cohort)) return new ui.AvScanToast(toastData);
switch (toastData.cohort) {
case 1:
case 2:
return new ui.DirectUpsellToast(toastData);
default:
break;
}
};
ui.extend = function (Child, Parent) {
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
}
// ----------------------------
// Base Toast Object definition
// ----------------------------
ui.UpsellToast = function (toastData) {
this.data = toastData;
this.lang = wa.Utils.Lang(wa.Utils.Lang.ResType.UT).get;
this.url = _settings.get("upsell_url", "1");
this.isVariant2 = ((toastData.toast_count || 1) === 3);
this.$el = {
winContainer: $(".mc-toast-container"),
header: $(".main-title"),
main: $(".main"),
mainLogo: $(".img-wrapper > img"),
descText1: $("#description-1"),
descWrapper2: $(".main-description-2"),
descText2: $("#description-2"),
footer: $(".footer"),
footerLogo: $(".footer > .logo-container > img"),
acceptBtn: $("#button-accept"),
ignoreBtn: $("#button-cancel")
};
this.telData = {
browser: _instrument.getBrowserTypeCode().toLowerCase(),
sequence: this.data.toast_count,
product: 'MTP',
}
this.accept = function () {
var browser = _window.getBrowserType();
if(browser != undefined){
_external.browserNavigate(browser.toUpperCase(), this.url);
this.sendTelemetry('Accepted');
}else if(this.data.total_infected == 0){
window.location.href = this.url;
}
_window.close();
}
this.ignore = function () {
this.sendTelemetry('Declined')
_window.close();
}
};
// Base class methods
ui.UpsellToast.prototype.init = function () {}
ui.UpsellToast.prototype.updateHtml = function () {}
ui.UpsellToast.prototype.postShow = function () {}
ui.UpsellToast.prototype.initEventHandlers = function () {
var self = this;
this.$el.acceptBtn
.click(function () {
self.accept();
});
this.$el.ignoreBtn
.click(function () {
self.ignore();
});
}
ui.UpsellToast.prototype.setSize = function (obj) {
_window.setWidth(obj.width);
_window.setHeight(obj.height);
}
}
ui.UpsellToast.prototype.showContainer = function () {
_window.show();
var browser = _window.getBrowserType();
if(browser != undefined){
this.sendTelemetry('Impression');
}else{
this.sendTelemetry('PreImpression');
}
}
ui.UpsellToast.prototype.show = function () {
this.init();
this.updateHtml();
this.initEventHandlers();
this.showContainer();
this.postShow();
}
// ------------------------------
// Direct Toast Object definition
// ------------------------------
ui.DirectUpsellToast = function (toastData) {
// Inherit base class instance properties;
ui.UpsellToast.call(this, toastData);
this.variations = {
'11': 'life_online',
'12': 'take_a_stand',
'21': 'remind_me_later',
'22': 'no_thanks',
};
};
// Inherit prototype from base object UpsellToast
ui.extend(ui.DirectUpsellToast, ui.UpsellToast);
// Override init method
ui.DirectUpsellToast.prototype.init = function () {
var cohort = this.data.cohort;
// Set toast window size
var height = this.isVariant2 ? "275" : "235";
if (cohort === 2) height = "215";
this.setSize({ width: "456", height: height });
// Set default URL if not found in settings
if (!this.url) {
var ccsType = (cohort === 1) ? 'lifeonline' : 'getmtp';
this.url = "https://www.mcafee.com/consumer/en-us/landing-page/direct/aff/WA_MTP_StaySafe.html?affid=0&ccoe=direct&ccoel2=campaign&csrc=wa&cctype=mtp_test1&ccstype=" + ccsType;
}
var variationKey = cohort.toString() + (this.data.toast_count === 3 ? '2' : '1');
this.telData['variation'] = this.variations[variationKey];
this.telData['trigger'] = this.data.triggered_by;
}
// Override updateHtml method
ui.DirectUpsellToast.prototype.updateHtml = function () {
var isVariant2 = this.isVariant2;
var lang = this.lang;
var $el = this.$el;
var cohort = this.data.cohort;
if (!isVariant2) $el.descWrapper2.hide();
var header = isVariant2 ? lang("UT_WSS_TOAST_TITLE_2").format("<strong>" + lang("UT_WSS_TOAST_TITLE_2_STRONG") + "</strong>") : '<strong>' + lang("UT_WSS_TOAST_TITLE") + '</strong>';
var description1 = isVariant2 ? lang("UT_WSS_TOAST_DESC_1_VAR_2") : lang("UT_WSS_TOAST_DESC_1_VAR_1");
var description2 = isVariant2 ? lang("UT_WSS_TOAST_DESC_2_VAR_2") : null;
var acceptBtn = lang("UT_WSS_BUTTON_ACCEPT");
var ignoreBtn = isVariant2 ? lang("UT_WSS_BUTTON_DECLINE") : lang("UT_WSS_BUTTON_REMIND_LATER");
if (cohort === 2) {
header = lang("UT_WSS_TOAST_TITLE_COHORT_2");
description1 = lang("UT_WSS_TOAST_DESC_COHORT_2");
description2 = null;
}
$el.header.html(header);
$el.descText1.html(description1);
$el.descText2.html(description2);
$el.acceptBtn.html(acceptBtn);
$el.ignoreBtn.html(ignoreBtn);
if (!isVariant2) {
$el.main.css("height", "182px");
$el.mainLogo.css("margin-top", "-20px");
}
if (cohort === 1 && !isVariant2) {
$el.header.css("font-size", "16px");
}
if (cohort === 2) {
$el.main.css("height", "162px");
$el.mainLogo.css("margin-top", "-30px");
}
}
// Override postShow method
ui.DirectUpsellToast.prototype.postShow = function () {
var toastCount = this.data.toast_count + 1;
var currentTimeInSeconds = Math.round(new Date().getTime() / 1000);
_settings.set("upsell_toast_shown_timestamp_string", currentTimeInSeconds.toString(), "0");
_settings.set("upsell_toast_count", toastCount, "0");
}
// -----------------------------------
// Campaign Toast (take_a_stand)
// -----------------------------------
ui.CampaignToast = function (toastData) {
// Inherit base class instance properties;
ui.UpsellToast.call(this, toastData);
};
// Inherit prototype from base object UpsellToast
ui.extend(ui.CampaignToast, ui.UpsellToast);
// Override init method
ui.CampaignToast.prototype.init = function () {
// Set toast window size
this.setSize({ width: "456", height: "275" });
// Set default URL if not found in settings
var url = _settings.get("campaign_take_a_stand_url", "1");
var ccsType = 'lifeonline';
this.url = url || "https://www.mcafee.com/consumer/en-us/landing-page/direct/aff/WA_MTP_StaySafe.html?affid=0&ccoe=direct&ccoel2=campaign&csrc=wa&cctype=mtp_test1&ccstype=" + ccsType;
this.telData['sequence'] = this.data.threshold;
this.telData['variation'] = this.data.campaign || "take_a_stand";
this.telData['trigger'] = this.data.triggered_by;
}
// Override updateHtml method
ui.CampaignToast.prototype.updateHtml = function () {
var lang = this.lang;
var $el = this.$el;
var header = lang("UT_WSS_TOAST_TITLE_2").format("<strong>" + lang("UT_WSS_TOAST_TITLE_2_STRONG") + "</strong>");
var description1 = lang("UT_WSS_TOAST_DESC_1_VAR_2");
var description2 = lang("UT_WSS_TOAST_DESC_2_VAR_2");
var acceptBtn = lang("UT_WSS_BUTTON_ACCEPT");
var ignoreBtn = lang("UT_WSS_BUTTON_DECLINE");
$el.header.html(header);
$el.descText1.html(description1);
$el.descText2.html(description2);
$el.acceptBtn.html(acceptBtn);
$el.ignoreBtn.html(ignoreBtn);
}
// Override postShow method
ui.CampaignToast.prototype.postShow = function () {
var threshold = this.data.threshold || "1";
_settings.set("tracker_take_a_stand", threshold, "1");
}
// -----------------------------------
// AV quick scan
// -----------------------------------
ui.AvScanToast = function (toastData) {
// Inherit base class instance properties;
ui.UpsellToast.call(this, toastData);
}
// Inherit methods from base class object UpsellToast
ui.extend(ui.AvScanToast, ui.UpsellToast);
// Override init method
ui.AvScanToast.prototype.init = function () {
this.setSize({ width: "486", height: "235" });
var settingUrlGood = _settings.get("upsell_url_good_scan", "1");
var settingUrlDefault = _settings.get("upsell_url", "1");
var redirect = (settingUrlGood == '' || settingUrlGood == undefined)? settingUrlDefault : settingUrlGood;
if(redirect == '' || redirect == undefined){
redirect = 'https://www.mcafee.com/consumer/en-us/landing-page/direct/aff/WA_MTP_StaySafe.html?affid=1523&ccoe=direct&ccoel2=campaign&csrc=wa&cctype=mtp_test5&ccstype=mini_vulnerability_scan_91277';
}
// Set default URL if not found in settings
this.url = redirect;
this.telData['browser'] = "default";
}
// Override updateHtml method
ui.AvScanToast.prototype.updateHtml = function () {
var lang = this.lang;
var $el = this.$el;
$el.descWrapper2.hide();
this.telData['variation'] = 'toast_av_scan_danger';
this.telData['trigger'] = "av_scan_danger";
this.telData['sequence'] = "default";
var header = lang("AV_RED_HEADER").format(this.data.total_infected);
var description1 = lang("AV_RED_DESC");
var description2 = null;
var reportBtn = lang("AV_RED_REPORT");
var ignoreBtn = lang("AV_DECLINE");
$el.winContainer.addClass("av");
$el.main.css("height", "182px");
$el.mainLogo.css("margin-top", "-20px");
$el.mainLogo.attr("src", "wacore:mfw\\packages\\webadvisor\\wa-upsell-toast-danger.png" );
$el.footerLogo.attr("src","wacore:mfw\\packages\\builtin\\wa_logo_upsell.png");
$el.header.html(header);
$el.descText1.html(description1);
$el.descText2.html(description2);
$el.header.css("color", "#EB5757");
$el.acceptBtn.html(reportBtn);
var string_version = JSON.stringify(this.data);
$el.acceptBtn.click(function () {
_external.trigger_mfw_event("event_user_av_scan_report", string_version);
_window.close();
});
$el.ignoreBtn.html(ignoreBtn);
_settings.set("av_scan_enabled", false );
}
}(window.WebAdvisor = window.WebAdvisor || {}, jQuery));
$(function () {
WebAdvisor.Core.Window.ready(function () {
var toastData = JSON.parse(WebAdvisor.Utils.External.getArgument("toast_data"));
var toast = new WebAdvisor.UI.createUpellToast(toastData);
toast.show();
});
});
//CD0AC6E8835B6E349BA963DFD8A94CAD09B8ACE13B6E52D2BAA42628D561EF1AF3E3CF4B026E597040D8FB555A16A3CF680E5D8B586640E247A8876837CEE825++