Mini Kabibi Habibi

Current Path : C:/Program Files/McAfee/WebAdvisor/MFW/packages/webadvisor/
Upload File :
Current File : C:/Program Files/McAfee/WebAdvisor/MFW/packages/webadvisor/wa-upsell-toast.js

(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++