Mini Kabibi Habibi
/* 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++