
/*frontend/mashup/ui/TickerBoardComponent/base/HoldingsData.js*/

nv.extendClass("nv.widget.tickerboard.dataprovider.HoldingsData",nv.widget.tickerboard.dataprovider.Base,function($this,$protected,$parent){$this.getName=function(){return"HoldingsData";};$this.__construct=function(){nv.http.request({'url':nv.Urls.ServerUrl+"/frontend/portfolio/",'method':nv.http.Method.GET,'data':{'action':'holdingsdatalight','cb':new Date().getTime()},'timeout':14000,'success':function(data){data.source=nv.widget.tickerboard.portfolio.Processor.SOURCE_DATALIGHT;$this.data=data;$this.onDataReceived.Trigger();},'error':function(){$this.onDataFailed.Trigger();}});};});
/* /frontend/mashup/ui/TickerBoardComponent/base/HoldingsData.js*/

/*frontend/mashup/ui/TickerBoardComponent/base/portfolioView.js*/

nv.defineAwesomeClass("nv.widget.tickerboard.portfolio.View",function($this){var allFunctions=['reset','displayAccount','displayHolding','displayError','displayFailed','displayEmpty','displayRefreshing','displayIncompleteStatus','displayPortfolioStats','onDisplayComplete'];nv.array.iterate(allFunctions,function(func){$this[func]=function(){};});$this.onDisplayComplete=function(){};});
/* /frontend/mashup/ui/TickerBoardComponent/base/portfolioView.js*/

/*frontend/mashup/ui/TickerBoardComponent/base/movers.js*/

if(nv.CreateNamespace("nv.UI.TickerBoardComponent.Portfolio.MoversHelper")){nv.UI.TickerBoardComponent.Portfolio.MoversHelper=new function(){this.GetMoversDataFromPortfolioApi=function(data){var gainers=[];var losers=[];if(nv.widget.tickerboard.portfolio.Processor.SOURCE_DATALIGHT){nv.array.iterate(data.portfolios,function(portfolio){nv.array.iterate(portfolio.holdings,function(v){var change=parseFloat(v.changeNet);var changePercent=parseFloat(v.changePercent);var price=parseFloat(v.price);if(isNaN(change)||isNaN(price)||isNaN(changePercent)){return;}
var obj={prefixedTicker:v.prefixedTicker,price:price,netChangeFromLastClose:change,netPercentChangeFromLastClose:changePercent};if(change>0){gainers.push(obj);}
else if(change<0){losers.push(obj);}});});}
else{nv.array.iterate(data.tickers,function(ticker,v){var change=parseFloat(v.changeNet);var changePercent=parseFloat(v.changePercent);var price=parseFloat(v.price);if(isNaN(change)||isNaN(price)||isNaN(changePercent)){return;}
var obj={prefixedTicker:ticker,price:price,netChangeFromLastClose:change,netPercentChangeFromLastClose:changePercent};if(change>0){gainers.push(obj);}
else if(change<0){losers.push(obj);}});}
gainers.sort(function(a,b){return b.netPercentChangeFromLastClose-a.netPercentChangeFromLastClose;});gainers=nv.array.reduce(gainers,function(hs,h){return!hs.length||hs[hs.length-1].prefixedTicker!=h.prefixedTicker?hs.concat(h):hs;},[]);losers.sort(function(a,b){return a.netPercentChangeFromLastClose-b.netPercentChangeFromLastClose;});losers=nv.array.reduce(losers,function(hs,h){return!hs.length||hs[hs.length-1].prefixedTicker!=h.prefixedTicker?hs.concat(h):hs;},[]);return{gainers:gainers,losers:losers};};};}
/* /frontend/mashup/ui/TickerBoardComponent/base/movers.js*/

/*frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/LoggedInPortfolio.js*/

nv.extendClass("nv.widget.tickerboard.usatoday.portfolio2col.view.LoggedInPortfolio","nv.widget.tickerboard.View",function($this,$protected,$parent){$protected.templateData={};var _tickerboard;var onUpdate;var holdingsDataProvider;var portfolioView;var dataProcessor;$this.__construct=function(tickerboard,options){options=options||{};$parent.__construct(tickerboard,options);_tickerboard=tickerboard;};var processMovers=function(movers,noDataMessage){var mover=null;if(movers&&movers.length>0){mover=movers[0];var prefixedTicker=mover.prefixedTicker;var colonIndex=prefixedTicker.indexOf(':');mover.ticker=colonIndex>=0?prefixedTicker.substring(colonIndex+1):prefixedTicker;mover.moreCount=movers.length-1;}else{mover={message:noDataMessage};}
return mover;};var fetchData=function(){holdingsDataProvider=new nv.widget.tickerboard.dataprovider.HoldingsData();holdingsDataProvider.onDataReceived.bind(function(){var data=holdingsDataProvider.data;var movers=nv.UI.TickerBoardComponent.Portfolio.MoversHelper.GetMoversDataFromPortfolioApi(data);var gainer=processMovers(movers.gainers,'No Gainers');var loser=processMovers(movers.losers,'No Losers');nv.$('.movers-table').html(nv.$.tmpl('nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.movers',{gainer:gainer,loser:loser}));dataProcessor.process(data);dataProcessor.onStatUpdate.Bind(function(obj){onStatsUpdate(obj.total,obj.changeNet,obj.changePercent);});var hasSources=false;nv.array.iterate(data.portfolios,function(portfolio){if(portfolio.sourceDisplayName){hasSources=true;return nv.array.BREAK;}});if(!hasSources){var adviceData={totalSavings:0,error:'In order to receive a portfolio diagnosis, please <a target="_blank" href="https://portfoliotracker.usatoday.com/account/settings/portfolios/add">sync an account</a>'};nv.$('.advice-table').html(nv.$.tmpl('nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.advice',adviceData));}});holdingsDataProvider.onDataFailed.bind(function(){var data={error:'Movers data not currently available'};nv.$('.movers-table').html(nv.$.tmpl('nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.movers',data));});};var onStatsUpdate=function(total,changeNet,changePercent){var now=new Date();var suffix="AM";var hours=now.getHours();if(hours>=12){suffix="PM";hours-=12;}
if(hours==0){hours=12;}
var minutes=now.getMinutes();if(minutes<10){minutes="0"+minutes;}
formattedTime=hours+":"+minutes+" "+suffix;var data={total:total,changeNet:changeNet,changePercent:changePercent,time:formattedTime};nv.$('.change-data').html(nv.$.tmpl('nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.change',data));};$this.render=function($contentDiv){$contentDiv.html(nv.$.tmpl('nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio',$protected.templateData));portfolioView=getView($contentDiv);dataProcessor=new nv.widget.tickerboard.portfolio.Processor(portfolioView,_tickerboard,fetchData);fetchData();};var getView=function($contentDiv){var viewClass=nv.extendToAnonymousClass("nv.widget.tickerboard.portfolio.View",function($view){$view.displayPortfolioStats=onStatsUpdate;});return new viewClass();};});
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/LoggedInPortfolio.js*/

/*frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/maintenance.tmpl.js*/

(nv.templates['nv.widget.tickerboard.usatoday.portfolio2col.Maintenance']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('  <div class="maintenance-title"> Portfolio Tracker is down for maintenance. </div> <div class="powered-by"></div> <div class="maintenance-text"> To ensure optimum performance, we periodically perform maintenance on our Portfolio Tracker software. </div> <div class="maintenance-text"> Thank you for your patience. </div>');}return _;}).templateName='nv.widget.tickerboard.usatoday.portfolio2col.Maintenance';
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/maintenance.tmpl.js*/

/*frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/Maintenance.js*/

nv.extendClass("nv.widget.tickerboard.usatoday.portfolio2col.view.Maintenance","nv.widget.tickerboard.View",function($this,$protected,$parent){$protected.templateData={};$this.__construct=function(tickerboard,options){options=options||{};$parent.__construct(tickerboard,options);};$this.render=function($contentDiv){$contentDiv.html(nv.$.tmpl('nv.widget.tickerboard.usatoday.portfolio2col.Maintenance',$protected.templateData));};});
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/Maintenance.js*/

/*frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/Portfolio2Col.js*/

nv.extendClass("nv.widget.tickerboard.usatoday.Portfolio2Col",nv.widget.tickerboard.Base,function($this,$protected,$parent){"use strict";var v_=nv.importNamespace("nv.widget.tickerboard.usatoday.portfolio2col.view");var widgetDomId;var _isLoggedIn=false;$protected.activeView;var $widgetDiv;var options;var abChoice;$this.__construct=function(id,_options){if(typeof _options!='object'){_options={};}
$parent.__construct();_isLoggedIn=!!_options.loggedIn;options=_options;widgetDomId=id;var activeViewName=options.activeView;var match=window.location.search.match(/\bview=(\w+)\b/);if(match){activeViewName=match[1];}
var optionsForView=options['viewSpecific'][activeViewName]||{};optionsForView['widgetName']=options.widgetName;if(typeof v_[activeViewName]=="undefined"){throw"Undefined view to activate: "+activeViewName;}
optionsForView.widgetName=options.widgetName;var trackingOptions={environment:nv.Analytics.Env.USAToday,services:{}};trackingOptions.services[nv.Analytics.Engine.GoogleAnalytics]=true;nv.Analytics.init(trackingOptions);var pageUrl=window.location.pathname+'/'+nv.getCurrentPartnerToken()+'/'+activeViewName;if(pageUrl.match(/^\/widget\//)){nv.Analytics.trackPageView(pageUrl);nv.Analytics.trackEvent(pageUrl);}
nv.JQuery.nvlive('.button-signup','click',function(){nv.Analytics.trackEvent("Clicked - Money Widget - Wide");return true;});(function(cfg){var last='none';for(var track in cfg){(function(sel,trk){nv.JQuery(nv.JQuery(sel).mousedown(function(){if(last!=trk&&self.utag){utag.track('link',{clickName:'sigfig'+trk,eventtype:'uotrack',linkTrackEvents:'none',linkTrackVars:'prop41'});last=trk;}}));})(cfg[track],track);}})({addaccount:'a.add-account-button',advicetab:'.tab.recommendations',chartstab:'.tab.charts',holdingstab:'.tab.holdings',overviewtab:'.tab.overview',viewportfolio:'.viewbutton a',widgetasset:'.chart-links a:contains(Asset)',widgetdividends:'.chart-links a:contains(Dividends)',widgetgeographic:'.chart-links a:contains(Geographic)',widgetlogin:'.login a',widgetrisk:'.chart-links a:contains(Risk)',widgetsignup:'.signup a',widgetstartnow:'.nv-start-now-button'});$protected.activeView=new v_[activeViewName](this,optionsForView);};$this.isLoggedIn=function(){return _isLoggedIn;};$this.init=function(){$widgetDiv=nv.$("#"+widgetDomId);$parent.init();$protected.activeView.render($widgetDiv.find("div.nv-content"));};$this.get$Widget=function(){return $widgetDiv;};$protected.getAuthOptions=function(action){return $protected.activeView.getAuthOptions(action);};});
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/Portfolio2Col.js*/

/*common/javascript/popup.js*/

nv.defineAwesomeClass("nv.Popup",function($this){"use strict";$this.popupCenterBrowser=function(pageURL,title,w,h){var wLeft=window.screenLeft?window.screenLeft:window.screenX;var wTop=window.screenTop?window.screenTop:window.screenY;var left=wLeft+(window.innerWidth/2)-(w/2);var top=wTop+(window.innerHeight/2)-(h/2);return window.open(pageURL,title,'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);};$this.popupCenterScreen=function(pageURL,title,w,h){var left=(screen.width/2)-(w/2);var top=(screen.height/2)-(h/2);var targetWin=window.open(pageURL,title,'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);};});
/* /common/javascript/popup.js*/
