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-ss-toast-variants-rebranding.js

/* SecureSearch Toast UI */
(function (wa, $) {
    var ui = (wa.UI = wa.UI || {}),
        _instrument = wa.Utils.Instrument,
        _settings = wa.Utils.Settings,
        _window = wa.Core.Window,
        _external = wa.Utils.External;
    var TOGGLE_COUNT = "toggle_count";
    var currentWindowHeight = "330";

    ui.SecureSearchToast = function () {
        var $el = {
            cardImage: $(".card__image"),
            cardContent: $(".card__content"),
            contentInfoTitle: $("#info-title"),
            contentInfoText: $("#info-text"),
            checkboxQuestion: $("#checkbox-question"),
            checkboxInput: $("#set-secure-search-checkbox"),
            checkboxChecked: $("#checkbox-checked"),
            checkboxUnchecked: $("#checkbox-unchecked"),
            setSecureSearchLabel: $("#set-secure-search-label"),
            doneButton: $("#done"),
            secureSearchSwitch: $("#switch-set-secure-search"),
            switchInput: $("#set-secure-search-switch"),
            toast: $(".toast"),
            closeIcon: $("#close-icon"),
        };

        var variantsMap = {
            1: {
                InfoTitle: "TOAST_VARIANT_TITLE_NOT_SETUP",
                InfoText: "TOAST_VARIANT_1_INFO",
                Question: "TOAST_VARIANT_QUESTION",
                Label: "SEARCH_TOAST_TOAST_COPY_SUBSCRIBER_VARIANT_3",
                ButtonText: "TOAST_VARIANT_BUTTON",
                ToastType: "regular_toast_rebranding_confidence_green_variation_1",
                ToggleToastType: "toggle_toast_rebranding_confidence_green_variation_1"
            },
            2: {
                InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
                InfoText: "TOAST_VARIANT_2_INFO",
                Question: "TOAST_VARIANT_QUESTION",
                Label: "SEARCH_TOAST_TOAST_COPY_SUBSCRIBER_VARIANT_3",
                ButtonText: "TOAST_VARIANT_BUTTON",
                ToastType: "regular_toast_rebranding_working_behind_the_scene_green_variation_2",
                ToggleToastType: "toggle_toast_rebranding_working_behind_the_scene_green_variation_2"
            },
            3: {
                InfoTitle: "TOAST_VARIANT_12_TITLE",
                InfoText: "TOAST_VARIANT_1_INFO",
                Question: "TOAST_VARIANT_QUESTION",
                Label: "SEARCH_TOAST_TOAST_COPY_SUBSCRIBER_VARIANT_3",
                ButtonText: "TOAST_VARIANT_BUTTON",
                ToastType: "regular_toast_rebranding_safe_guard_green_variation_3",
                ToggleToastType: "toggle_toast_rebranding_safe_guard_green_variation_3"
            },
            // Default SS toast (when no variant is specified)
            4: {
                InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
                InfoText: "TOAST_VARIANT_2_INFO",
                Question: "TOAST_VARIANT_QUESTION",
                Label: "SEARCH_TOAST_TOAST_COPY_SUBSCRIBER_VARIANT_3",
                ButtonText: "TOAST_VARIANT_BUTTON",
                ToastType: "green_search_extension_toast",
                ToggleToastType: "green_search_extension_toast"
            },
            // Loud install
            5: {
                InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
                InfoText: "TOAST_VARIANT_2_INFO",
                Question: "TOAST_VARIANT_QUESTION",
                Label: "SEARCH_TOAST_OPTION_COMPLIANT",
                ButtonText: "TOAST_VARIANT_BUTTON",
                ToastType: "green_search_extension_default_toast",
                ToggleToastType: "green_search_extension_default_toast"
            },
        };

        var isCheckboxChecked = function (showToggle) {
            var isChecked = false;

            if (($el.checkboxChecked.css('display') == 'block'
                && $el.checkboxUnchecked.css('display') == 'none'
                && !showToggle)
                || ($el.switchInput.is(":checked")
                    && showToggle)) {
                isChecked = true;
            }

            return isChecked;
        };

        function resizeToast() {
            var scrollHeight = $el.toast[0].scrollHeight;
            if (scrollHeight > Number(currentWindowHeight)) {
                window.external.log("IE subscriber/loud install toast, adjusting height");
                $el.toast.css({ height: scrollHeight.toString() + 'px' });
            }
            var adjustedHeight = scrollHeight + 15
            _window.setHeight((adjustedHeight).toString());
        }

        function fillButtonText(btnText) {
            if (!btnText) {
                return;
            }

            if (btnText.length <= 8) {
                $el.doneButton.addClass("button__fixed__width");
            }

            $el.doneButton.html(btnText);
        }

        function getToggleCount() {
            var tc = _settings.getSettingScopedWithDefault(-1, "0", TOGGLE_COUNT);
            return tc.toString();
        }

        var initComponents = function (variantType, showToggle, showCloseBtn) {

            //Show either toggle or checkbox
            if (showToggle) {
                // hide the checkbox and show the toggle
                $el.checkboxInput.attr("class", "invisible");
                $el.switchInput.prop("checked", true);
                $el.secureSearchSwitch.removeClass("hide");
                $el.secureSearchSwitch.css("display", "inline-block");
            }
            else {
                // hide the switch and show the checkbox
                $el.secureSearchSwitch.attr("class", "invisible");
                $el.checkboxUnchecked.attr("class", "invisible");
                $el.setSecureSearchLabel.css("margin-left", "12px");
            }

            var toastType = showToggle ? variantsMap[variantType].ToggleToastType : variantsMap[variantType].ToastType;
            var browserCode = _instrument.getBrowserTypeCode();
            var provider = _instrument.getSecureSearchProvider();
            var metadata = _instrument.getSecureSearchToastMetadata(showCloseBtn, browserCode);

            //Show close button if needed
            if (showCloseBtn) {
                $el.closeIcon.removeClass("invisible");
                _window.setDraggableOffset(0, 40);
                $el.closeIcon.click(function () {
                    _instrument.sendSecureSearchToastEvent("Closed_Explicit", browserCode, provider, toastType, metadata, getToggleCount());
                    _window.close();
                });
            }

            //Checkbox listener
            if (!showToggle) {
                $el.checkboxInput.click(function () {
                    _settings.increment_setting(TOGGLE_COUNT, "0");

                    // switch the checkbox
                    if (isCheckboxChecked(showToggle)) {
                        $el.checkboxChecked.attr("class", "invisible");
                        $el.checkboxUnchecked.attr("class", "visible");
                    }
                    else {
                        $el.checkboxChecked.attr("class", "visible");
                        $el.checkboxUnchecked.attr("class", "invisible");
                    }
                })
            }
            else {
                //Toggle listener
                $el.switchInput.click(function () {
                    _settings.increment_setting(TOGGLE_COUNT, "0");
                });
            }

            //Done button listener
            $el.doneButton.click(function () {
                var isChecked = isCheckboxChecked(showToggle);

                if (isChecked) {
                    // Send telemetry for Secure Search Acceptance
                    _instrument.sendSecureSearchToastEvent("Accepted", _instrument.getBrowserTypeCode(), _instrument.getSecureSearchProvider(), toastType, metadata, getToggleCount());
                    wa.Core.SecureSearch.enable();
                }
                else {
                    // Send telemetry for Secure Search Decline
                    _instrument.sendSecureSearchToastEvent("Declined", _instrument.getBrowserTypeCode(), _instrument.getSecureSearchProvider(), toastType, metadata, getToggleCount());
                    wa.Core.SecureSearch.disable();
                }
                _window.close();
            });
        };

        var fillText = function (lang, variantType) {

            var variant = variantsMap[variantType];

            $el.contentInfoTitle.html(lang(variant.InfoTitle));
            $el.contentInfoText.html(lang(variant.InfoText));
            $el.checkboxQuestion.html(lang(variant.Question));
            fillButtonText(lang(variant.ButtonText));

            var ssToastLang = wa.Utils.Lang(wa.Utils.Lang.ResType.SSTOAST).get;

            if (variantType === 5) {
                // Making checkbox label about option compliant with Yahoo search engine
                var payload = JSON.parse(_external.getArgument("toast_data"));

                var label = null;

                var search_name_id = _settings.get("SECURE_SEARCH_PROVIDER_NAME_ID", "0");

                var search_engine_name = ssToastLang(search_name_id);

                if ("string" != typeof search_engine_name || 0 == search_engine_name.length) {
                    search_engine_name = ssToastLang("SEARCH_TOAST_ENGINE");
                }

                if (search_engine_name === "Yahoo") {
                    label = ssToastLang("SEARCH_TOAST_TOAST_COPY_LOUD_INSTALLATION");
                }
                else {
                    label = ssToastLang("SEARCH_TOAST_OPTION_COMPLIANT").format(
                        search_engine_name
                    );
                }

                var chromeCompliantDisabled = _settings.get(
                    "chrome_search_compliance_disabled"
                );

                var extension_push = false;

                if (payload.extension_push != undefined) {
                    extension_push = payload.extension_push;
                }
                var browserCode = _instrument.getBrowserTypeCode();
                var search_state_ed = _settings.get("search_state_ed");
                if (browserCode == "CH" && (chromeCompliantDisabled || extension_push) || (browserCode == 'ED' && 2 == search_state_ed)) {
                    label = ssToastLang("SEARCH_TOAST_OPTION");
                }

                $el.setSecureSearchLabel.html(label);
            }
            else {
                $el.setSecureSearchLabel.text(ssToastLang(variant.Label));
            }
        };

        var isInt = function (n) {
            return typeof n === "number" && isFinite(n) && Math.floor(n) === n;
        };

        var show = function () {
            _window.ready(function () {
                var payload = JSON.parse(_external.getArgument("toast_data"));
                var variantType = Number(payload["secure_search_toast_variation"]);

                //If variantType is not valid, use the default (4)
                if (!isInt(variantType) || variantType < 1 || variantType > 5)
                { variantType = 4; }

                //Toggle should be on by default and only off if payload explicitly sets it to false
                var showToggle = true;

                if (payload['show_toggle'] === false && variantType !== 4) {
                    showToggle = false;
                }

                var showCloseBtn = _settings.getSettingScopedWithDefault(false, "1", "ss_toast_close_btn_enable");

                var lang = wa.Utils.Lang(wa.Utils.Lang.ResType.SS_TOAST_VARIANTS).get;

                initComponents(variantType, showToggle, showCloseBtn);
                fillText(lang, variantType);
                _window.setWidth("555");
                _settings.increment_setting("toast_variation_phase_2_show_count", "0");

                setTimeout(function () {
                    resizeToast();
                    _window.show();
                }, 100);

                // Send telemetry for Impression
                var toastType = showToggle ? variantsMap[variantType].ToggleToastType : variantsMap[variantType].ToastType;
                var browserCode = _instrument.getBrowserTypeCode();
                var metadata = _instrument.getSecureSearchToastMetadata(showCloseBtn, browserCode);
                var provider = _instrument.getSecureSearchProvider();
                _instrument.sendSecureSearchToastEvent("Impression", browserCode, provider, toastType, metadata);

                //Clear toggle count
                window.external.SetSetting("0", TOGGLE_COUNT, 0);
            });
        };

        return {
            show: show,
        };
    };
})((window.WebAdvisor = window.WebAdvisor || {}), jQuery);

$(function () {
    var toast = new WebAdvisor.UI.SecureSearchToast();
    toast.show();
});
//1DDF764AE84F17D36496678EC6A774CE5FCFE134A7153D26F84D6259E79F6EB29D6FA8C0517FB26819018403E0E5E23513EECB09AC1E7CBE6681FCBA9BADEAD7++