Mini Kabibi Habibi
/* Options UI */
(function (wa, $) {
var ui = wa.UI = wa.UI || {},
_instrument = wa.Utils.Instrument,
_settings = wa.Utils.Settings,
_lrt = wa.Utils.Lang.ResType,
_l = wa.Utils.Lang(_lrt.OPTIONS).get,
_core = wa.Core,
_window = _core.Window,
_webAdvisor = _core.WebAdvisor,
_productNameHtml = _webAdvisor.getProductNameHtml();
_external = wa.Utils.External;
var OptionsMenu = function () {
var menuItems = [],
el = {
$menu: $("<ul id='wa-options-menu'></ul>")
},
toggleContent = function (id, delay) {
$("#" + id, el.$content)
.fadeIn(delay)
.siblings()
.hide();
},
itemSelected = function ($item, delay) {
$item
.siblings()
.removeClass("selected")
.end()
.addClass("selected");
var contentId = $item.attr("ref");
toggleContent(contentId, delay);
},
addItem = function (name, text, selected) {
var id = "wa-options-menu-" + name.toLowerCase(),
item = "<li id='{0}' name='{1}' ref='{2}'>{3}</li>";
menuItems.push($(item.format(id, name, name, text))
.appendTo(el.$menu));
return this;
},
selectItem = function ($content) {
el.$content = $content;
itemSelected(menuItems[menuItems.length - 1], 0);
return this;
},
itemClicked = function () {
var $item = $(this);
var id = $item.attr("id");
var action = "UnknownMenuOptionClicked"
if (id === "wa-options-menu-about")
{
action = "AboutClicked"
}
else if (id === "wa-options-menu-settings")
{
action = "SettingsClicked"
}
itemSelected($item, 200);
},
cryptoLinkClicked = function () {
_external.browserNavigate("CH", "chrome-extension://fheoggkfdfchfphceeifdbepaooicaho/html/mcafee_wa_crypto_learn.html");
},
init = function () {
$(document).on("click", "#wa-options-menu li", itemClicked);
$(document).on("click", "#wa-crypto-blocked-link", cryptoLinkClicked);
return el.$menu;
};
return {
addItem: addItem,
selectItem: selectItem,
init: init
}
};
ui.OptionsFaq = function () {
var el = {
$faq: $("<div id='wa-options-faq'></div>")
};
var addHeader = function (headerHtml)
{
var header = $("<h3>").addClass("faq-header").html(headerHtml);
el.$faq.append(header);
};
var addSection = function (headerHtml, contentHtml) {
addHeader(headerHtml);
var content = $("<div>").addClass("faq-content").html(contentHtml).append($("<hr>"));
el.$faq.append(content);
};
var initSections = function ()
{
var url = _core.data.url;
addSection(_l("HELP_FAQ_SECTION_TWO_HEADER").format(_productNameHtml),
"<a id='wa-options-help-twitter' class='media-img' href='{0}'/>".format(url.twitter) +
"<a id='wa-options-help-facebook' class='media-img' href='{0}' />".format(url.facebook));
var helpNowLink = "<a href='{0}'>{1}</a>".format(url.helpNow, _l("GET_HELP_NOW"));
addHeader(_l("GET_TECHNICAL_SUPPORT") + " " + helpNowLink);
var privacyUrl = _l("PRIVACY_URL", _lrt.SHARED),
privacyText = _l("PRIVACY_NOTICE", _lrt.SHARED),
privacyLink = "<a href='{0}'>{1}</a>".format(privacyUrl, privacyText);
addHeader(privacyLink);
};
var init = function ()
{
initSections();
}();
return {
html: el.$faq[0].outerHTML
}
};
ui.OptionsAbout = function () {
var el = {
$about: $("<div id='wa-options-about'></div>")
},
init = function () {
var affID = _settings.get("*Affid");
var version = _webAdvisor.getVersion();
var faqHtml = new ui.OptionsFaq().html;
var statsHtml = _core.Stats.getHtml(_l);
var cryptoItem = "";
if (WebAdvisor.Core.Window.getBrowserType() === "CH" && !_settings.get("CryptojackingDisabled"))
{
var cryptoLink = "<span id='wa-crypto-blocked-link' style='color: #00AEEF; cursor: pointer'>" + _l("CRYPTOJACKERS") + "</span>";
var cryptoAboutText = _l("CRYPTO_ABOUT").format(cryptoLink);
cryptoItem = "<li>{0}</li>".format(cryptoAboutText)
}
el.$about.append(
"<h1>{0}</h1>".format(_l("ABOUT")) +
"<h4>" +
_l("ABOUT_DESCRIPTION").format(_productNameHtml) +
"</h4>" +
"<ul>" +
"<li>{0}</li>".format(_l("AVOID_DANGEROUS_LINKS")) +
"<li>{0}</li>".format(_l("CREATE_SAFER_PASSWORDS")) +
"<li>{0}</li>".format(_l("DOWNLOAD_CONFIDENTLY")) +
cryptoItem +
"</ul>" +
"<hr>" +
"<h4>{0}</h4>".format(_l("STAT_HEADER")) +
"<div id='stats'>" +
statsHtml +
"</div>" +
"<hr>" +
"<div id='faq'>" +
faqHtml +
"</div>" +
"<div id='wa-options-footer'>" +
"<div>{0} {1}</div>".format(_l("VERSION", _lrt.SHARED), version) +
"<br />" +
"<div>Affid {0}</div>".format(affID)) +
"</div>";
}();
return el.$about;
};
ui.OptionsSettings = function (sections) {
var el = {
$settings: $("<div id='wa-options-settings'></div>")
},
createControl = function (title, caption, $content, description) {
return $("<div>", {
'class': "section"
}).append(
$("<div>", {
'class': "section-header"
}).append(
$("<h2>", {
html: title
}),
$("<span>", {
html: caption
}))).append(
$("<div>", {
html: description || "",
'class': "section-description"
})).append($content).append($("<hr>"));
},
renderControls = function () {
if (sections) {
for (var i = 0; i < sections.length; i++) {
el.$settings.append(controls[sections[i]]());
}
}
},
controls = {
trustedSites: function () {
var trustButtonId = "wa-button-trust",
dontTrustButtonId = "wa-button-donttrust",
defaultTrustedText = _l("SETTINGS_DEFAULT_TRUSTED_TEXT"),
$trustedText = $("<input>", {
id: "wa-options-trusted-text",
type: "text",
keyup: function (event) {
toggleTrustButton();
if (event.keyCode == 13) {
$("#wa-button-trust").click();
}
}
}),
$trustedList = $("<select>", {
id: "wa-options-trusted-list",
multiple: "multiple",
change: function () {
toggleDontTrustButton(true);
}
}),
$trustedSites = $("<div>", {
id: "wa-options-trusted-text-wrapper"
}).append(
$("<h2>", {
text: _l("SETTINGS_MANAGE_TRUSTED")
}),
$("<div>").append(
$trustedText,
$("<input>", {
id: dontTrustButtonId,
'class': "button-trusted-list",
type: "button",
value: "-",
click: function () {
removeTrustedSite();
updateTrustedSites();
toggleDontTrustButton(false);
}
}),
$("<input>", {
id: trustButtonId,
'class': "button-trusted-list",
type: "button",
value: "+",
click: function () {
addTrustedSite();
updateTrustedSites();
$trustedText.val("").focus();
}
})
),
$("<div>").append(
$trustedList
)),
isSiteTrusted = function (url) {
var trusted = false;
var $options = $trustedList.find("option");
if ($options.length > 0) {
$options.each(function () {
if ($(this).text() === url) {
trusted = true;
}
});
}
return trusted;
},
addTrustedSite = function () {
var url = _core.TrustedSites.cleanUrl($trustedText.val());
if (_core.TrustedSites.isValidUrl(url)) {
if (!isSiteTrusted(url)) {
$trustedList.append($('<option></option>')
.val(url)
.html(url));
}
}
},
updateTrustedSites = function () {
var trustedSites = [];
var $options = $trustedList.find("option");
if ($options.length > 0) {
$options.each(function () {
trustedSites.push($(this).text());
});
}
_core.TrustedSites.set(trustedSites);
},
removeTrustedSite = function () {
$trustedList.find("option:selected").remove();
},
toggleTrustButton = function () {
var url = _core.TrustedSites.cleanUrl($trustedText.val());
$("#" + trustButtonId).toggleClass("enabled", _core.TrustedSites.isValidUrl(url));
},
toggleDontTrustButton = function (enabled) {
var selected = $trustedList.find("option:selected").val() ? true : false;
$("#" + dontTrustButtonId).toggleClass("enabled", enabled || selected);
},
initTrustedSiteText = function () {
$trustedText
.val(_core.TrustedSites.getCurrentUrl())
.focus(function () {
if ($(this).val() === defaultTrustedText) {
$(this).val("")
.css("color", "#666666");
}
})
.blur(function () {
if ($(this).val() === "") {
$(this).val(defaultTrustedText)
.css("color", "#a0a0a0");
} else {
toggleTrustButton();
}
})
setTimeout(function () { toggleTrustButton(); }, 200);
}(),
initTrustedSiteList = function () {
var trustedSitesValues = _core.TrustedSites.get();
if (trustedSitesValues) {
var trustedSites = trustedSitesValues.split(";");
$.each(trustedSites, function (index, value) {
$trustedList.append(
$('<option></option>').val(value).html(value));
});
}
}();
return $trustedSites;
},
secureSearch: function () {
var $options = $("<div class='ss-radios'>"),
optionsText = {
ss: _l("SETTINGS_SS_OPTION_SS"),
all: _l("SETTINGS_SS_OPTION_ALL"),
none: _l("SETTINGS_SS_OPTION_NONE")
},
showSearchSetting = _settings.get("*ShowSearchSettings");
_core.SecureSearch.setDefaultMode();
$.each(optionsText, function (key, value) {
$options.append(
$("<div>").append(
$("<input>", {
type: "radio",
id: key,
name: "ss",
'value': key
}),
$("<label>", {
html: value,
'for': key
}),
$("<br />")));
});
var $radios = $('input:radio[name=ss]', $options);
$radios
.val(_core.SecureSearch.getMode())
.change(function () {
_core.SecureSearch.setMode(this.value);
})
.filter(function () {
if (this.id === "ss" &&
showSearchSetting === false) {
$(this)
.parent()
.hide()
.end()
.prop("checked", function () {
if (this.checked) {
$radios.val(["all"]);
_core.SecureSearch.setMode("all");
}
});
}
});
return createControl(_l("SETTINGS_SS_HEADER"),
" — " + _l("SETTINGS_SS_CAPTION"),
$options);
},
reset: function () {
var $reset = $("<input>", {
id: "wa-button-reset",
'class': "wa-button",
value: _l("RESET"),
type: "button",
click: function () {
_core.CheckList.reset();
_core.SecureSearch.reset();
_settings.set("*TListWhiteList", "", "0");
_settings.set("ff_extension_last_toast_time", 0, "0");
/*_settings.set("extension_toast_showing_ff",false,"0");-*/
_settings.set("ff_extension_toast_count",0,"0");
_settings.set("wss_upsell_checklist_complete",false);
_settings.set("wss_upsell_checklist_show_count",0,"0");
_settings.set("wss_upsell_checklist_shown_timestamp",0,"0");
}
}),
description = _l("SETTINGS_RESET_DESCRIPTION");
return createControl(_l("SETTINGS_RESET_HEADER"),
"",
$reset,
description);
}
},
init = function () {
el.$settings.append("<h1>{0}</h1>".format(_l("SETTINGS")));
renderControls();
}();
return el.$settings;
};
ui.Options = function () {
var checkContentArea,
optionsMenu = new OptionsMenu(),
el = {
$options: $("#wa-options"),
$content: $("<div id='wa-options-content'></div>"),
$logo: $(".logo"),
$close: $(".close")
},
setContentArea = function () {
var windowWidth = _window.getWidth();
if ($(window).outerWidth() === windowWidth) {
var contentHeight = $(window).height() - $("#wa-options-header").outerHeight() - 1;;
el.$content.outerHeight(contentHeight);
clearInterval(checkContentArea);
}
},
add = function (name, text, $content) {
optionsMenu.addItem(name, _l(text));
$("<div id='{0}'></div>".format(name))
.append($content)
.appendTo(el.$content);
return this;
},
open = function () {
_window.ready(function () {
_window.show();
init();
});
},
close = function () {
_window.close();
},
selected = function () {
optionsMenu.selectItem(el.$content);
return this;
},
init = function () {
checkContentArea = setInterval(setContentArea, 50);
var $menu = optionsMenu.init();
el.$options.append($menu)
.append(el.$content);
el.$logo.html(_webAdvisor.getProductLogoHtml());
el.$close.click(close);
};
return {
tab: add,
selected: selected,
open: open
}
};
}(window.WebAdvisor = window.WebAdvisor || {}, jQuery));
$(function () {
var ui = WebAdvisor.UI,
sections = getSettingSections(),
$settings = new ui.OptionsSettings(sections),
$about = new ui.OptionsAbout(),
options = new ui.Options()
.tab("Settings", "SETTINGS", $settings).selected()
.tab("About", "ABOUT", $about)
.open();
function getSettingSections() {
var browser = WebAdvisor.Core.Window.getBrowserType();
if (browser === "IE") {
return ["trustedSites", "reset"];
} else {
return ["trustedSites", "secureSearch", "reset"]
}
}
});
//91268D989A9F6EEE61C5810480AF52AF1B464DE2958804235692FB63E7BDB3BFF4D12B0DF9B354EAA50EE0501BA1A1A7CC6859BB70DBB99967706986A82E5374++