(function ($) { var getUnique = function (t) { var u = {}, a = []; for (var i = 0, l = t.length; i < l; i += 1) { if (u.hasOwnProperty(t[i])) { continue; } a.push(t[i]); u[t[i]] = 1; } return a; } var App_Class = function (appConfig, appContent, root) { this.appConfig = appConfig; this.appContent = appContent; this.root = $(root); this.userHoldings = []; this.alluserHoldings = []; this.Session = appContent.data.Session || ""; //console.info("APP SESSION: ", this.Session); this.currentPlan = appConfig.context.PlanIDs || []; // Make sure to trim all plan ids if (this.currentPlan instanceof Array) { for (var i = 0; i < this.currentPlan.length; i++) { this.currentPlan[i] = this.currentPlan[i].trim(); } } //console.info("Invest Research Context: ", this.currentPlan, typeof (this.currentPlan)); if (typeof (this.currentPlan) === "string") { if (this.currentPlan.indexOf("[") !== -1) { this.currentPlan = this.currentPlan .substr(1, this.currentPlan.length - 2) .replace(/\s/g, "") .split(","); } else { this.currentPlan = [this.currentPlan]; } } //console.info("Invest Research currentPlan: ", this.currentPlan); this.redirect = appConfig.context.redirect || true; } App_Class.prototype.init = function () { var self = this; //console.info("InvestResearchApp init"); //console.info("InvestResearchApp currentPlan", self.currentPlan); //console.info("InvestResearchApp redirect", self.redirect); this.SetupCallbacks(); } App_Class.prototype.SetupCallbacks = function () { var self = this; F2.Events.on("emitPlanData", function (data) { //console.info("emitPlanData", data); self.NewPlanData(data.planData.plans); }); F2.Events.on("MOD.ChangePlan", function (data) { //console.info("InvestResearch App Change Plan (PlanArray): ", data); self.currentPlan = data; }); F2.Events.on("MOD.NewScreenerTable", function (data) { self.NewScreenerTable(data); }); F2.Events.on("MOD.ToggleOwned", function (data) { self.hideUnowned(data); }); F2.Events.on("MOD.DistributionPeriod", function (data) { //console.info(data); $("#legalpatch .periodDependent").hide(); $("#legalpatch ." + data + "view").show(); }); F2.Events.on("MOD.InvestResearch.Init", function () { F2.Events.emit("MOD.SetSecure", true); if (self.Session.length > 0) { //console.info("EMITTING SESSION: ", self.Session); F2.Events.emit("MOD.Session", self.Session); } if (self.currentPlan.length > 0) { //console.info("InvestResearch App Changing Plan (PlanArray): ", self.currentPlan); F2.Events.emit("MOD.ChangePlan", self.currentPlan); } F2.Events.on("MOD.ChangePlan", function (PlanIDArray) { //console.info("InvestResearchApp.MOD.ChangePlan (redirect): ", self.redirect); if (self.redirect == true) { self.reloadWithNewPlan(PlanIDArray); } }); F2.Events.emit("requestPlanData", true); F2.Events.emit("MOD.PleaseScreen", true); }); } App_Class.prototype.NewPlanData = function (data) { //console.info("NewPlanData", data); this.userHoldings = data || []; this.allUserHoldings = []; for (var i = 0; i < data.length; ++i) { this.allUserHoldings = this.allUserHoldings.concat(data[i].tickers); } this.allUserHoldings = getUnique(this.allUserHoldings); this.NewScreenerTable(); }; App_Class.prototype.NewScreenerTable = function (data) { var workingTickers = []; for (var currentPlanIndex = 0; currentPlanIndex < this.currentPlan.length; currentPlanIndex += 1) { //console.info("NewScreenerTable", this.userHoldings); for (var i = 0; i < this.userHoldings.length; i += 1) { //console.info("(94) Conditional: ", this.userHoldings[i].planNumber, this.currentPlan[currentPlanIndex]); if (this.currentPlan.length > 0 && this.userHoldings[i].planNumber != this.currentPlan[currentPlanIndex]) { continue; } workingTickers = workingTickers.concat(this.userHoldings[i].tickers); continue; } } //console.info("Working Tickers: ", workingTickers); var $TD = $(); if (workingTickers) { for (var q = 0; q < workingTickers.length; q += 1) { var selector = "#screenerResultTables tr[data-internalticker='" + workingTickers[q] + "'] .heldChk"; $TD = $(selector); if ($TD.length > 0) { $TD.html(""); } } var OnlyInvestedIn = $("#OnlyInvestedInContainer"); this.hideUnowned(OnlyInvestedIn.length > 0 && OnlyInvestedIn.hasClass("sel")); } } App_Class.prototype.hideUnowned = function (ShouldHide) { $("#screenerResultTables .MOD_BoxedModule").show(); $("#screenerResultTables tr").show(); if (ShouldHide) { var Owned = $("#screenerResultTables tbody tr").has(".passwordStrong"); var UnOwned = $("#screenerResultTables tbody tr").not(Owned); UnOwned.hide(); $(".MOD_InvestResearchTbl").each(function (index, element) { var $table = $(element), $BoxedModule = $table.parents(".MOD_BoxedModule"); //console.info("Boxed Module: ", $BoxedModule, " Visible trs: ", $table.find("tbody tr:visible")); if ($table.find("tbody tr:visible").length == 0) { //console.info("TRYING TO HIDE: ", $BoxedModule); $BoxedModule.hide(); } }); } }; App_Class.prototype.reloadWithNewPlan = function (data) { //console.info("InvestResearchApp.reloadWithNewPlan (data): ", data); if (!data || data.length === undefined || data.length > 1) { return; } var myLocation = window.location.href, performanceIndexOf = myLocation.indexOf("performance"); //console.info("InvestResearchApp.reloadWithNewPlan (performanceIndexOf): ", performanceIndexOf); if (performanceIndexOf === -1) { return; } myLocation = myLocation.substr(0, performanceIndexOf + "performance".length); if (data[0] !== undefined) { myLocation += "?plan=" + data[0].toString(); } window.location = myLocation; } if (window.F2 !== undefined) { F2.Apps["com_mod_tiaa_cref_invest_research"] = App_Class; } else { $(document).ready(function () { var App = new App_Class; setTimeout(function () { App.init(); }, 0); }); } })(jQuery);