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

(nv.templates['nv.widget.tickerboard.usatoday.portfolio2col.Upsell']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('  <div class="nv-upsell-test" > <div class="nv-header"> <div class="main-tag-line"> Are your mutual funds failing you? </div> <div class="second-tag-line"> Find out in less than 60 seconds. </div> </div> <div class="nv-message"> <div class="nv-headder">USA TODAY Money</div> <div class="nv-subheadder">Portfolio Tracker</div> <ul> <li>&bull; All your accounts in one place</li> <li>&bull; Real-time quotes and news</li> <li>&bull; Insightful charts & graphs</li> <li>&bull; Personalized investment advice</li> </ul> <a target="_blank" class="button-signup" href="https://portfoliotracker.usatoday.com/account/signup"> FREE! START NOW! </a> <div class="return-user"> Returning? <a target="_blank" href="https://portfoliotracker.usatoday.com/account/login">Log In</a> </div> </div> <div class="nv-image" ></div> </div> ');}return _;}).templateName='nv.widget.tickerboard.usatoday.portfolio2col.Upsell';
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/Upsell.tmpl.js*/

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

nv.extendClass("nv.widget.tickerboard.usatoday.portfolio2col.view.Anonymous","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.Upsell',$protected.templateData));};});
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/Anonymous.js*/

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

(nv.templates['nv.widget.tickerboard.usatoday.portfolio2col.Upsell.loggedin']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('  <div class="nv-upsell preview" > <div class="nv-header"> <div class="text"> MY PORTFOLIO </div> </div> <div class="nv-body"> <div class="video ');if(typeof(abTest)!=='undefined'){_.push($.encode(abTest));}
_.push('"></div> <div class="static"> <ul> <li>All your accounts in one place</li> <li>Real-time quotes and news</li> <li>Never before seen analytics</li> <li class="last">Actionable investment advice</li> </ul> <div class="add-account"> Sync your brokerage accounts<br/> to see how we can help you! <a target="_blank" class="button-signup" href="https://portfoliotracker.usatoday.com/account/settings/portfolios/add">GET STARTED!</a> </div> </div> </div> <div class="nv-footer"> <div id="power-by-sigfig"> <div id="mobile-text">Also available for mobile &amp; tablet devices</div> <a target="_blank" id="android-download" class="mobile-download" href="/mobile/getandroid">Google Play </a> <a target="_blank" id="apple-download" class="mobile-download" href="/mobile/getiphone">App Store</a> <a target="_blank" href="https://www.sigfig.com/"><div class="logo"></div> </a> </div> </div> </div> ');}return _;}).templateName='nv.widget.tickerboard.usatoday.portfolio2col.Upsell.loggedin';
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/Upsell.loggedin.tmpl.js*/

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

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

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

(nv.templates['nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('  <div class="nv-loggedinportfolio"> <div class="nv-header"> <div class="text"> MY PORTFOLIO <span class="change-data"></span> </div> <div class="viewbutton"> <a href="https://portfoliotracker.usatoday.com/portfolio" target="_blank"><!--[if lte IE 7]><img  src="https://dysjtncjibun3.cloudfront.net/frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/images/view_portfolio.png"/><![endif]--><![if gte IE 8]><img  src="data:image/png;base64,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"/><![endif]></a> </div> </div> <div class="nv-body"> <div class="chart"> <div class="legend" ><div class="user-color"></div> My Performance vs.&nbsp; &nbsp; <div class="compare-color"></div>S&P</div> <img src="/frontend/portfolio/?action=chart&function=perfcomparison&indicies=INDEX:SPX&theme=usatoday&period=1y&width=415&height=224" /> </div> <div class="data"> <div class="movers"> <span class="section-header">MOVERS</span> <div class="movers-content"> <table class="movers-table"> </table> </div> </div> <div class="advice"> <span class="section-header">ADVICE</span> <span class="section-subheader">Recommendations</span> <div class="advice-content"> <table class="advice-table"> </table> </div> </div> </div> </div> <div class="nv-footer"> <div class="chart-links"> More Charts: &nbsp; &nbsp; <a href="https://portfoliotracker.usatoday.com/portfolio#/charts/analytics-asset-allocations" target="_blank">Asset Allocation</a>&nbsp; | &nbsp; <a href="https://portfoliotracker.usatoday.com/portfolio#/charts/analytics-geographic-distribution" target="_blank">Geographic</a>&nbsp; | &nbsp; <a href="https://portfoliotracker.usatoday.com/portfolio#/charts/analytics-risk" target="_blank">Risk</a>&nbsp; | &nbsp; <a href="https://portfoliotracker.usatoday.com/portfolio#/charts/analytics-dividends" target="_blank">Dividends</a> </div> <div class="logo"> <div class="powered-by-text"> Powered by </div> <a href="https://portfoliotracker.usatoday.com/" target="_blank"> <img  src="https://dysjtncjibun3.cloudfront.net/img/logos/logo-horizontal.svg"/> </a> </div> </div> </div> ');}return _;}).templateName='nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio';
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/LoggedInPortfolio.tmpl.js*/

/*frontend/portfolio/components/tmpl/actionability/holdings/columns/changeNet.tmpl.js*/

(nv.templates['nv.port.widgets.HoldingsGrid.Columns.changeNet']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push(' <span class="');{_.push($.encode(nv.port.Visual.getClassForChange(data.changeNet)));}
_.push('"> ');if(data.changeNet==0){_.push(' No Change ');}else if(true){_.push(' ');if(data.changeNet>0){_.push('+');}
{_.push(nv.util.Number.formatDollar(data.changeNet,2));}
_.push(' ');}
_.push(' </span> ');}return _;}).templateName='nv.port.widgets.HoldingsGrid.Columns.changeNet';
/* /frontend/portfolio/components/tmpl/actionability/holdings/columns/changeNet.tmpl.js*/

/*frontend/portfolio/components/tmpl/actionability/holdings/columns/changePercent.tmpl.js*/

(nv.templates['nv.port.widgets.HoldingsGrid.Columns.changePercent']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push(' <span class="');{_.push($.encode(nv.port.Visual.getClassForChange(data.changePercent)));}
_.push('"> ');if(data.changePercent==0){_.push(' No Change ');}else if(true){_.push(' ');if(data.changePercent>0){_.push('+');}
{_.push(nv.util.Number.formatPercent(data.changePercent,undefined));}
_.push(' ');}
_.push(' </span> ');}return _;}).templateName='nv.port.widgets.HoldingsGrid.Columns.changePercent';
/* /frontend/portfolio/components/tmpl/actionability/holdings/columns/changePercent.tmpl.js*/

/*frontend/portfolio/components/js/visual.js*/

nv.defineSingleton("nv.port.Visual",function($this){var $=nv.JQuery;var _getWidth=function(domElement,options){return options.width||$(domElement).width()||(function(){var width=$(domElement).css('width');if(width){return width.replace(/[^\d]/g,'');}
else{return"";}})();};var _getHeight=function(domElement,options){return options.height||$(domElement).height()||(function(){var height=$(domElement).css('height');if(height){return height.replace(/[^\d]/g,'');}
else{return"";}})();};$this.generateVMLPath=function(series,width,height){if(!(nv.$.isArray(series)&&series.length>1&&height>0&&height>0)){nv.error("Guard failed in nv.port.Visual.generateVMLPath");return null;}
var path=[];var len=series.length;var max=Math.max.apply(null,series);var min=Math.min.apply(null,series);var vSpan=Math.max(max-min,1);var vScale=height/vSpan;var hSpace=width/(len-1);var first=null,last=null;for(var i=0;i<len;++i){var val=series[i];val=Math.round(height-((val-min)*vScale));if(i===0){first=val;path.push('m'+0+','+val+' l');}else{last=val;path.push(Math.round(hSpace*i)+','+val+' ');}}
path.push('e');return{first:first,last:last,width:width,height:height,path:path.join('')};};$this.generateSVGPath=function(series,width,height){if(!(nv.$.isArray(series)&&series.length>0&&height>0&&height>0)){nv.error("Guard failed in nv.port.Visual.generateSVGPath");return null;}
var length=series.length;var max=Math.max.apply(null,series);var min=Math.min.apply(null,series);var span=Math.max(max-min,1);var inc=(width/height)*(span/length);var path=["M"];var x=0;for(var i=0;i<length;i++){var value=series[i];path.push(x,",",value);x+=inc;if(i!=length-1){path.push("L");}}
var scale=height/span;path=path.join('');return{"path":path,"min":min,"max":max,"scale":scale,"maxX":inc*(length-1)};};$this.Spectrum=function(domElement,data,options){var $this=this;options=options||{};if(typeof domElement=='string'){domElement=document.getElementById(domElement);}
var width=_getWidth(domElement,options);var height=_getHeight(domElement,options);$this.draw=function(){var federer=Raphael(domElement,width,height);federer.spectrum(data,options);};};$this.ChangeArrow=function(percentChange,options){if(percentChange==0)return"";var size='large';if(options!=null){if(options.size!=null)size=options.size;}
var imageKey;if(percentChange<0){imageKey='change_arrow_down_'+size;}
else{imageKey='change_arrow_up_'+size;}
var absoluteValue=Math.abs(percentChange);var opacityValue=0.3+(Math.min(absoluteValue,5))*(0.7/5);var html=nv.util.Sprite.GetSpriteImage('portfolio',imageKey,'',true,true,{'style':"filter:alpha(opacity="+(opacityValue*100).toFixed(0)+"); opacity:"+opacityValue.toFixed(1)+";","class":"changeArrow changeArrow-"+size});return html;};$this.getClassForChange=function(change){if(!change)return'';return change<0?'negative':'positive';};});
/* /frontend/portfolio/components/js/visual.js*/

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

(nv.templates['nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.change']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('  <span class="change-net"> ');{_=_.concat($item.nest("nv.port.widgets.HoldingsGrid.Columns.changeNet",{data:{changeNet:changeNet}}));}
_.push(' </span> <span class="change-percent"> ');{_=_.concat($item.nest("nv.port.widgets.HoldingsGrid.Columns.changePercent",{data:{changePercent:changePercent}}));}
_.push(' </span> <span class="as-of">as of ');if(typeof(time)!=='undefined'){_.push($.encode(time));}
_.push('</span> ');}return _;}).templateName='nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.change';
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/LoggedInPortfolio.change.tmpl.js*/

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

(nv.templates['nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.movers']=function(jQuery,$item){var $=jQuery,call,_=[],$data=$item.data;with($data){_.push(' ');if(typeof(error)!=='undefined'&&error){_.push(' <tr> <td> ');if(typeof(error)!=='undefined'){_.push(error||'');}
_.push(' </td> </tr> ');}else if(true){_.push(' <tr> ');if(gainer.message){_.push(' <td class="message">');{_.push($.encode(gainer.message));}
_.push('</td> ');}else if(true){_.push(' <td class="data-ticker">');{_.push($.encode(gainer.ticker));}
_.push('</td> <td class="data-change"> <!--[if lte IE 7]><img  src="https://dysjtncjibun3.cloudfront.net/frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/images/gainer-arrow.png"/><![endif]--><![if gte IE 8]><img  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAHCAYAAADam2dgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkU3RkRCM0NFNUE2MTFFMUFCQkNEQjc4M0Q3QjZEMkMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkU3RkRCM0RFNUE2MTFFMUFCQkNEQjc4M0Q3QjZEMkMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRTdGREIzQUU1QTYxMUUxQUJCQ0RCNzgzRDdCNkQyQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRTdGREIzQkU1QTYxMUUxQUJCQ0RCNzgzRDdCNkQyQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrOUr+EAAABZSURBVHjaYmRAAnqTeA2A1HogDryU9/kCTJwRTcF+IBYA4g9A7AhTyAhVAJK4D1UAAyCFikCFHxihCkAmGDBgApBJjkx4FDBAxfcz/v//n4EQYGIgAgAEGAD7LRjC2aWM9AAAAABJRU5ErkJggg=="/><![endif]> ');{_.push(nv.util.Number.formatPercent(gainer.netPercentChangeFromLastClose,undefined));}
_.push(' </td> <td class="data-more">');{_.push($.encode(gainer.moreCount));}
_.push(' More Gainers</td> ');}
_.push(' </tr> <tr> ');if(loser.message){_.push(' <td class="message">');{_.push($.encode(loser.message));}
_.push('</td> ');}else if(true){_.push(' <td class="data-ticker">');{_.push($.encode(loser.ticker));}
_.push('</td> <td class="data-change"> <!--[if lte IE 7]><img  src="https://dysjtncjibun3.cloudfront.net/frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/images/loser-arrow.png"/><![endif]--><![if gte IE 8]><img  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAHCAYAAADam2dgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjU2OUFCRTlFNUE2MTFFMUFCQkNEQjc4M0Q3QjZEMkMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjU2OUFCRUFFNUE2MTFFMUFCQkNEQjc4M0Q3QjZEMkMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRTdGREIzRUU1QTYxMUUxQUJCQ0RCNzgzRDdCNkQyQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NTY5QUJFOEU1QTYxMUUxQUJCQ0RCNzgzRDdCNkQyQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmeuOPcAAABbSURBVHjaYnwtz3CegYHBgAE3uMAEJBxBDFwKQPKMIBbQNAEgBTJRAUnBAyA2FH3I8AFkEgOIAaQCgfgDVAGYDxVHBUATDYD4PohGFmf8//8/AyHAxEAEAAgwADbuF62+D5uxAAAAAElFTkSuQmCC"/><![endif]> ');{_.push(nv.util.Number.formatPercent((-loser.netPercentChangeFromLastClose),undefined));}
_.push(' </td> <td class="data-more">');{_.push($.encode(loser.moreCount));}
_.push(' More Losers</td> ');}
_.push(' </tr> ');}}return _;}).templateName='nv.widget.tickerboard.usatoday.portfolio2col.LoggedInPortfolio.movers';
/* /frontend/mashup/ui/TickerBoardComponent/usatoday/portfolio2col/content/tmpl/LoggedInPortfolio.movers.tmpl.js*/

/*common/javascript/timedBatchProcessor.js*/

if(nv.CreateNamespace("nv.TimedBatchProcessor")){nv.TimedBatchProcessor=function(delay,maxDelay){var $this=this;if(typeof maxDelay=="undefined"){maxDelay=0;}
var delayTimer=null;var maxDelayTimer=null;var queuedJobs=[];$this.OnNewBatchCreated=new nv.Event();$this.AddJob=function(args){queuedJobs.push(args);if(delayTimer!==null){clearTimeout(delayTimer);}
delayTimer=setTimeout(delayTimerEvent,delay);if(maxDelay>0&&maxDelayTimer===null){maxDelayTimer=setTimeout(maxDelayTimerEvent,maxDelay);}};var delayTimerEvent=function(){delayTimer=null;if(maxDelayTimer!==null){clearTimeout(maxDelayTimer);maxDelayTimer=null;}
processJobs();};var maxDelayTimerEvent=function(){maxDelayTimer=null;if(delayTimer!==null){clearTimeout(delayTimer);delayTimer=null;}
processJobs();};var processJobs=function(){var jobs=queuedJobs;queuedJobs=[];$this.OnNewBatchCreated.Trigger(jobs);};};}
/* /common/javascript/timedBatchProcessor.js*/

/*common/javascript/test.js*/

nv.defineSingleton("nv.test",function(){"use strict";var $this=this;$this.isTesting=function(what){if(typeof what=='string'){if(typeof casesToHash[what]!=='string')return false;return isTestingStringHash(casesToHash[what]);}
var result=false;nv.array.iterate(what,function(key,value){if(isTestingStringHash(casesToHash[value])){result=true;return nv.array.BREAK;}});return result;};var getRegExpForHash=function(hash){return new RegExp("\\b"+hash.replace('-','\\-')+"\\b");};var isTestingStringHash=function(hash){return getRegExpForHash(hash).test(window.location.hash);};$this.cases={AGREE_TO_TOS:{_:'agreeToTos',WSOD:'agreeToTosWsod'},SHOW_TOUR:'showTour',FORCE_EMAIL_IS_CONFIRMED:'forceEmailIsConfirmed',DEPRECATED:'deprecated',KEEP_AFTER_COLUMN_DRAG:'keepAfterColumnDrag',FAKE_STREAMING_QUOTES:'fakeStreamingQuotes',EMAIL_CONFIRM_OVERLAY:'emailConfirmOverlay',EMAIL_CONFIRM_OVERLAY_ERROR:'emailConfirmOverlayError',LOADING_STAGE1:'loadingStage1',LOADING_STAGE2:'loadingStage2',SOURCE_SYNC:{FAIL:'sourceSyncFail',PENDING:'sourceSyncPending',SUCCESS:'sourceSyncSuccess'},REGFLOW_SYNC:{SUCCESS:'regflowSyncSuccess',FAIL:'regflowSyncFail'}};var casesToHash={};casesToHash[$this.cases.AGREE_TO_TOS._]='force-agree-to-tos-overlay';casesToHash[$this.cases.AGREE_TO_TOS.WSOD]='force-agree-to-tos-overlay-wsod';casesToHash[$this.cases.SHOW_TOUR]='showtour';casesToHash[$this.cases.DEPRECATED]='break-on-deprecated';casesToHash[$this.cases.KEEP_AFTER_COLUMN_DRAG]='keep-after-column-drag';casesToHash[$this.cases.FAKE_STREAMING_QUOTES]='fakequotes';casesToHash[$this.cases.EMAIL_CONFIRM_OVERLAY]='force-email-confirm-overlay';casesToHash[$this.cases.EMAIL_CONFIRM_OVERLAY_ERROR]='force-email-confirm-overlay-error';casesToHash[$this.cases.FORCE_EMAIL_IS_CONFIRMED]='force-email-is-confirmed';casesToHash[$this.cases.LOADING_STAGE1]='loading-stage1';casesToHash[$this.cases.LOADING_STAGE2]='loading-stage2';casesToHash[$this.cases.SOURCE_SYNC.FAIL]='source-sync-fail';casesToHash[$this.cases.SOURCE_SYNC.PENDING]='source-sync-pending';casesToHash[$this.cases.SOURCE_SYNC.SUCCESS]='source-sync-success';casesToHash[$this.cases.REGFLOW_SYNC.SUCCESS]='regflow-sync-success';casesToHash[$this.cases.REGFLOW_SYNC.FAIL]='regflow-sync-fail';});
/* /common/javascript/test.js*/

/*common/javascript/streaming/wildfire/transport.js*/

nv.defineEnum("nv.streaming.wildfire.transport.states",["UNINITIALIZED","LOADING","PARTIAL","COMPLETE"]);nv.defineAwesomeClass("nv.streaming.wildfire.Transport",function($this,$protected){var s_=nv.importNamespace("nv.streaming.wildfire.transport.states");var state;var baseUrl;var failTimer;var disableCallbacks;$protected.partialResponseText;$protected.status;var streamingResponseTextLastLength;var incompleteChunk="";var partialChunkObj=null;var aborted=false;var doesNetworkSupportStreaming=null;var lastReceivedPacketTime=null;var completedRequests=0;var hasStreamTestBeenRequested=false;$this.onMessageReceived=new nv.Event();$this.onRequestCompleted=new nv.Event();$this.__construct=function(_baseUrl){state=s_.UNINITIALIZED;baseUrl=_baseUrl;$protected.partialResponseText="";$protected.status=0;streamingResponseTextLastReadIndex=0;};$protected.supportsStreaming=function(){return false;};$protected.getStreamingPreludeSize=function(){return 0;};$this.getName=function(){throw"Not Implemented";};$this.start=function(params){if(state!=s_.UNINITIALIZED){$this.reset();}
state=s_.LOADING;resetFailTimeout();};$this.abort=function(){aborted=true;$protected.status=0;};$this.reset=function(){$protected.partialResponseText="";streamingResponseTextLastReadIndex=0;partialChunkObj=null;incompleteChunk="";$protected.status=0;state=s_.UNINITIALIZED;aborted=false;lastReceivedPacketTime=null;hasStreamTestBeenRequested=false;};$protected.completed=function(){completedRequests++;if(failTimer!=null){clearTimeout(failTimer);failTimer=null;updateState(s_.COMPLETE);}
else{nv.log("Transport timer was triggered before response could be processed","wildfire");}};$protected.progressed=function(){if(failTimer==null){nv.log("Transport timer was triggered before progress could be processed","wildfire");return;}
resetFailTimeout();if($protected.status!=200){$this.abort();return;}
if(typeof $protected.partialResponseText=='string'){var newResponse=$protected.partialResponseText.substring(streamingResponseTextLastReadIndex);streamingResponseTextLastReadIndex=$protected.partialResponseText.length;var delimIndex;while((delimIndex=newResponse.indexOf("\n"))>-1){var partialChunk=incompleteChunk+newResponse.substring(0,delimIndex);newResponse=newResponse.substring(delimIndex+1);incompleteChunk="";if(!nv.String.Trim(partialChunk)){break;}
try{partialChunkObj=eval("("+partialChunk+")");if(partialChunkObj.prelude){nv.log("Got prelude of size "+partialChunkObj.prelude.length,"wildfire");}
else{nv.log("Got chunk: "+partialChunk,"wildfire");}
if(hasStreamTestBeenRequested&&$protected.supportsStreaming()&&doesNetworkSupportStreaming===null&&lastReceivedPacketTime===null){lastReceivedPacketTime=new Date().getTime();nv.log("Waiting for test packet to check if the network can stream","wildfire");}
else if(partialChunkObj.streamtestpacket){if(new Date().getTime()-lastReceivedPacketTime>250){doesNetworkSupportStreaming=true;nv.log("Network is able to stream","wildfire");}
else{doesNetworkSupportStreaming=false;nv.log("Network unable to stream. Switching to long-polling","wildfire");}}}
catch(e){nv.error("Error "+e+" while processing chunk: "+partialChunk);partialChunkObj=null;}
if(partialChunkObj){updateState(s_.PARTIAL);if(aborted){return;}}}
incompleteChunk+=nv.String.Trim(newResponse);}
else if(typeof $protected.partialResponseText=='object'){partialChunkObj=$protected.partialResponseText;updateState(s_.PARTIAL);}
else{nv.error("Invalid type given for partialResponseText: "+typeof $protected.partialResponseText+". Expecting string or object");}};$protected.getRequestUrl=function(paramsToAppend){if(paramsToAppend){return nv.util.Url.addToQueryString(baseUrl,$protected.getRequestData(paramsToAppend));}
else{return baseUrl;}};$protected.getRequestData=function(params){if(completedRequests>=1&&$protected.supportsStreaming()){if(doesNetworkSupportStreaming===true){params.stream=1;}
else if(doesNetworkSupportStreaming===null){params.streamtest=1;hasStreamTestBeenRequested=true;}
if(doesNetworkSupportStreaming!==false){var preludeSize=$protected.getStreamingPreludeSize();if(preludeSize>0){params.prelude=$protected.getStreamingPreludeSize();}}}
params.cb=Math.floor(Math.random()*100000)+""+new Date().getTime();return nv.util.Url.getQueryString(params);};var updateState=function(newState){var oldState=state;state=newState;if(newState==s_.PARTIAL){$this.onMessageReceived.Trigger({message:partialChunkObj});}
else if(newState==s_.COMPLETE){$this.onRequestCompleted.Trigger({status:$protected.status});}};var timerErrorHandler=function(){nv.log("Transport timer was triggered","wildfire");failTimer=null;$this.abort();$protected.status=500;updateState(s_.COMPLETE);};var resetFailTimeout=function(){if(failTimer!=null){clearTimeout(failTimer);}
failTimer=setTimeout(timerErrorHandler,65000);};});
/* /common/javascript/streaming/wildfire/transport.js*/

/*common/javascript/streaming/wildfire/xhr.js*/

nv.extendClass("nv.streaming.wildfire.XHRTransport","nv.streaming.wildfire.Transport",function($this,$protected,$parent){var xhr;$this.__construct=function(baseUrl){$parent.__construct(baseUrl);xhr=new XMLHttpRequest();};$protected.supportsStreaming=function(){return true;};$protected.getStreamingPreludeSize=function(){if(window.controllers&&Object.prototype.toString.call(window.controllers)=="[object XULControllers]"){return 0;}
else{return 1024;}};$this.getName=function(){return"XHRTransport";};$this.start=function(params){$parent.start(params);xhr.open("POST",$protected.getRequestUrl(),true);xhr.onreadystatechange=onreadystatechange;xhr.setRequestHeader("Content-Type","text/plain");xhr.send($protected.getRequestData(params));};$this.abort=function(){$parent.abort();if(xhr.readyState!=4){xhr.abort();}};var onreadystatechange=function(){if(xhr.readyState>=3&&xhr.status==200){$protected.partialResponseText=xhr.responseText;$protected.status=xhr.status;$protected.progressed();}
if(xhr.readyState==4){$protected.status=xhr.status;$protected.completed();}};$protected.timeoutCleanup=function(){$parent.$protected.timeoutCleanup();if(xhr.readyState>=1){xhr.abort();}};},function($static){$static.isSupported=function(){return typeof XMLHttpRequest!="undefined"&&("withCredentials"in(new XMLHttpRequest()));};});
/* /common/javascript/streaming/wildfire/xhr.js*/

/*common/javascript/streaming/wildfire/xdr.js*/

nv.extendClass("nv.streaming.wildfire.XDRTransport","nv.streaming.wildfire.Transport",function($this,$protected,$parent){var xdr=null;$this.__construct=function(baseUrl){$parent.__construct(baseUrl);};$this.getName=function(){return"XDRTransport";};$protected.supportsStreaming=function(){return true;};$protected.getStreamingPreludeSize=function(){return 2048;};$this.start=function(params){xdr=new XDomainRequest();$parent.start(params);xdr.open("POST",$protected.getRequestUrl());xdr.onload=onload;xdr.onerror=onerror;xdr.onprogress=progress;xdr.send($protected.getRequestData(params));};$this.abort=function(){$parent.abort();xdr.abort();onerror();};var progress=function(){$protected.partialResponseText=xdr.responseText;$protected.status=200;$protected.progressed();};var onload=function(){$protected.partialResponseText=xdr.responseText;$protected.status=200;$protected.progressed();$protected.completed();};var onerror=function(){$protected.responseText="";$protected.status=500;$protected.completed();};},function($static){$static.isSupported=function(){return(typeof XDomainRequest!=="undefined"&&document.documentMode>7);};});
/* /common/javascript/streaming/wildfire/xdr.js*/

/*common/javascript/streaming/wildfire/jsonp.js*/

nv.extendClass("nv.streaming.wildfire.JsonPTransport","nv.streaming.wildfire.Transport",function($this,$protected,$parent){var $static=nv.streaming.wildfire.JsonPTransport;var ifr=null;var barIfr=null;var nodes=[];var failTimer;var callbackId;var errbackId;var cbInstanceId=0;var callbacksActive=false;var loadInIfr=(window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]")||(window.controllers&&Object.prototype.toString.call(window.controllers)=="[object XULControllers]")||false;$this.__construct=function(baseUrl){$parent.__construct(baseUrl);callbackId=$static.wrapCallbackAsGlobal(onload);errbackId=$static.wrapCallbackAsGlobal(onerror);if(loadInIfr){ifr=createIframe();nv.util.Dom.safeAddNodeToHead(ifr);killLoadingBar();}};$this.getName=function(){return"JsonPTransport";};$this.start=function(params){$parent.start(params);cbInstanceId++;callbacksActive=true;$static.updateArgForCallback(callbackId,cbInstanceId);$static.updateArgForCallback(errbackId,cbInstanceId);var doc=ifr?(ifr.contentDocument||ifr.contentWindow.document||ifr.document):document;var head=doc.getElementsByTagName('head')[0]||doc.getElementsByTagName('body')[0];params.jsonp=getFullCallbackPath(callbackId);var url=$protected.getRequestUrl(params);if(ifr){doc.open();doc.write("<scr"+"ipt src='"+url+"'></scr"+"ipt>"+"<scr"+"ipt>"+getFullCallbackPath(errbackId)+"()</scr"+"ipt>");doc.close();killLoadingBar();nv.array.iterate(doc.getElementsByTagName("SCRIPT"),function(node){nodes.push(node);});}
else{nodes.push(nv.util.Dom.addJSToHead(url));}};$this.abort=function(){$parent.abort();clearNodes();callbacksActive=false;$protected.partialResponseText="";$protected.status=0;$protected.completed();};var onload=function(_cbInstanceId,response){if(!callbacksActive||cbInstanceId!=_cbInstanceId){return;}
callbacksActive=false;setTimeout(function(){clearNodes();$protected.partialResponseText=response;$protected.status=200;$protected.progressed();$protected.completed();},50);};var onerror=function(_cbInstanceId){if(!callbacksActive||cbInstanceId!=_cbInstanceId){return;}
setTimeout(function(){callbacksActive=false;clearNodes();$protected.partialResponseText="";$protected.status=500;$protected.completed();},50);};var getFullCallbackPath=function(callbackId){var fp=$static.getFullCallbackPath(callbackId);if(ifr){fp="parent."+fp;}
return fp;};var createIframe=function(){var i=document.createElement("iframe");i.style.display='block';i.style.width='0';i.style.height='0';i.style.border='0';i.style.margin='0';i.style.padding='0';i.style.overflow='hidden';i.style.visibility='hidden';i.cbId=0;return i;};var killLoadingBar=function(){var firstAdd=true;setTimeout(function(){if(barIfr===null){barIfr=createIframe();}
document.body.appendChild(barIfr);document.body.removeChild(barIfr);if(firstAdd){firstAdd=false;setTimeout(arguments.callee,50);}},0);};var removeNode=function(node){if(node.clearAttributes){node.clearAttributes();}
while(node.lastChild){removeNode(node.lastChild);}
if(node.parentNode){node.parentNode.removeChild(node);}};var clearNodes=function(){for(var i in nodes){if(nodes.hasOwnProperty(i)){removeNode(nodes[i]);}}
nodes=[];};},function($static){nv.jswf=$static;var callbacks=[];var emptyFunc=function(){};$static.cb=function(callbackId){if(typeof callbacks[callbackId]!="undefined"){var cbinstance=callbacks[callbackId];return function(jsonpresponse){cbinstance[1].call(null,cbinstance[0],jsonpresponse);};}
else{return emptyFunc;}};$static.isSupported=function(){return true;};var nextCallbackId=0;$static.wrapCallbackAsGlobal=function(callback,arg){var callbackId=nextCallbackId++;callbacks[callbackId]=[arg,callback];return callbackId;};$static.getFullCallbackPath=function(callbackId){return"nv.jswf.cb("+callbackId+")";};$static.removeCallback=function(callbackId){if(typeof callbacks[callbackId]!="undefined"){delete callbacks[callbackId];}};$static.updateArgForCallback=function(callbackId,arg){if(typeof callbacks[callbackId]!="undefined"){callbacks[callbackId][0]=arg;}};});
/* /common/javascript/streaming/wildfire/jsonp.js*/

/*common/javascript/streaming/wildfire/wildfire.js*/

nv.defineEnum("nv.streaming.wildfire.states",["SID_WAIT","CONNECTED","ABORTING"]);nv.defineAwesomeClass("nv.streaming.Wildfire",function($this){var s_=nv.importNamespace("nv.streaming.wildfire.states");var state;var oldsid=null;var sid=null;var lastMid=-1;var topicsToSub=[];var topicsToUnsub=[];var topicsSubRequested=[];var topicsUnsubRequested=[];var allSubscribedTopics=[];var transport;$this.onMessage=new nv.Event();var exponentialBackoffTimeout=Math.floor((2+Math.random()*4)*1000);var timeoutCount=0;var domain=nv.streaming.Wildfire.topicDomain;$this.__construct=function(){transport=nv.streaming.Wildfire.getTransport();transport.onMessageReceived.Bind(messageReceivedHandler);transport.onRequestCompleted.Bind(requestCompleteHandler);state=s_.SID_WAIT;transport.start({});};$this.subscribe=function(topics){nv.array.iterate(topics,function(topic){topic=domain+"."+topic;if(typeof allSubscribedTopics[topic]=="undefined"){allSubscribedTopics[topic]=1;topicsToSub.push(topic);}});resendRequest();};$this.unsubscribe=function(topics){nv.array.iterate(topics,function(topic){topic=domain+"."+topic;if(typeof allSubscribedTopics[topic]!="undefined"){delete allSubscribedTopics[topic];topicsToUnsub.push(topic);}});resendRequest();};var resendRequest=function(){if(state==s_.CONNECTED){state=s_.ABORTING;transport.abort();}};var messageReceivedHandler=function(e){timeoutCount=0;exponentialBackoffTimeout=Math.floor((2+Math.random()*4)*1000);var msg=e.message;if(msg.sid===null){oldsid=sid;sid=null;state=s_.SID_WAIT;transport.abort();return;}
switch(state){case s_.SID_WAIT:if(msg.sid){sid=msg.sid;state=s_.CONNECTED;nv.log("Connected with sid: "+sid,"wildfire");if(!nv.array.isEmpty(topicsToSub)||!nv.array.isEmpty(topicsToUnsub)){setTimeout(function(){if(!nv.array.isEmpty(topicsToSub)||!nv.array.isEmpty(topicsToUnsub)){resendRequest();}},500);}}
else if(msg.streamtestpacket||msg.prelude||msg.noop){}
else{nv.error("Was in SID_WAIT state, but a successful request didn't return SID","wildfire");}
break;case s_.CONNECTED:processResponse(msg);break;default:nv.error("Invalid state "+state+" in messageReceivedHandler PARTIAL switch","wildfire");break;}};var requestCompleteHandler=function(e){if(e.status==200){timeoutCount=0;exponentialBackoffTimeout=Math.floor((2+Math.random()*4)*1000);switch(state){case s_.SID_WAIT:if(oldsid){nv.log("Server has lost our session with sid: "+oldsid+". Starting a new one","wildfire");setTimeout(restartSession,0);}
else{nv.error("Was in SID_WAIT state, but a successful request didn't return SID","wildfire");}
break;case s_.CONNECTED:nv.log("Restarting request","wildfire");setTimeout(continueSession,0);break;case s_.ABORTING:nv.log("Request was aborted. Restarting in 50ms","wildfire");setTimeout(continueSession,50);break;default:nv.error("Invalid state "+state+" in requestCompleteHandler[success]","wildfire");break;}}
else{switch(state){case s_.SID_WAIT:var timeout=getExponentialBackoffTimeout();if(!oldsid){nv.log("Unable to connect. Retrying in "+timeout+"ms","wildfire");}
else{nv.log("Server has lost our session with sid: "+oldsid+". Starting a new one","wildfire");}
setTimeout(restartSession,timeout);break;case s_.CONNECTED:var timeout=getExponentialBackoffTimeout();nv.log("Connection dropped. Retrying in "+timeout+"ms","wildfire");setTimeout(continueSession,timeout);break;case s_.ABORTING:nv.log("Request was aborted. Restarting in 50ms","wildfire");setTimeout(continueSession,50);break;default:nv.error("Invalid state "+state+" in requestCompleteHandler[failure]","wildfire");break;}}
transport.reset();};var restartSession=function(){sid=null;topicsToSub=nv.array.keys(allSubscribedTopics);topicsToUnsub=[];topicsSubRequested=[];topicsUnsubRequested=[];state=s_.SID_WAIT;var params={};addTopicsToParams(params);transport.start(params);};var continueSession=function(){var params={sid:sid};if(lastMid!=-1){params.ack=lastMid;}
addTopicsToParams(params);state=s_.CONNECTED;transport.start(params);};var addTopicsToParams=function(params){if(!nv.array.isEmpty(topicsToSub)){nv.array.iterate(topicsToSub,function(topic){nv.log("Subscribing to "+topic,"wildfire");topicsSubRequested.push(topic);});topicsToSub=[];}
if(!nv.array.isEmpty(topicsToUnsub)){nv.array.iterate(topicsToUnsub,function(topic){nv.log("Unsubscribing to "+topic,"wildfire");topicsUnsubRequested.push(topic);});topicsToUnsub=[];}
if(!nv.array.isEmpty(topicsSubRequested)){params.sub=topicsSubRequested.join(",");}
if(!nv.array.isEmpty(topicsUnsubRequested)){params.unsub=topicsUnsubRequested.join(",");}};var processResponse=function(response){if(!nv.array.isEmpty(topicsSubRequested)){topicsSubRequested=[];}
if(!nv.array.isEmpty(topicsUnsubRequested)){topicsUnsubRequested=[];}
if(response.data&&!nv.array.isEmpty(response.data)){nv.array.iterate(response.data,function(msg){if(nv.array.count(msg)===3){lastMid=msg[0];var channel=msg[1].replace(new RegExp("^"+domain+"\\."),"");$this.onMessage.Trigger({channel:channel,message:msg[2]});}
else{nv.log("Invalid message received, dropping packet","wildfire");nv.log(msg);}});}
else{lastMid=-1;}};var getExponentialBackoffTimeout=function(){if(timeoutCount>0){if(exponentialBackoffTimeout<60000){exponentialBackoffTimeout*=2;}}
timeoutCount++;return exponentialBackoffTimeout;};},function($static){var transports=[nv.streaming.wildfire.XHRTransport,nv.streaming.wildfire.XDRTransport,nv.streaming.wildfire.JsonPTransport];var streamServers="stream.sigfig.com".split(",");var domain="prod";if(nv.test.isTesting(nv.test.cases.FAKE_STREAMING_QUOTES)){domain="fake";}
var streamServer=streamServers[Math.floor(Math.random()*nv.array.count(streamServers))];var baseUrl=document.location.protocol+"//"+streamServer+"/lp";nv.log("Wildfire server is "+streamServer,"wildfire");nv.log("Wildfire domain is "+domain,"wildfire");$static.topicDomain=domain;$static.getTransport=function(){var selectedTransport=null;nv.array.iterate(transports,function(transport){if(transport.isSupported()){selectedTransport=transport;return nv.array.BREAK;}});if(selectedTransport==null){nv.error("No suitable comet transport found");return null;}
else{transport=new selectedTransport(baseUrl);nv.log("Selected transport "+transport.getName(),"wildfire");return transport;}};var instance=null;$static.instance=function(){if(instance===null){instance=new $static();}
return instance;};});
/* /common/javascript/streaming/wildfire/wildfire.js*/

/*common/javascript/streaming/preloader.js*/

(function(){nv.streaming.Wildfire.instance();})();
/* /common/javascript/streaming/preloader.js*/

/*common/javascript/streaming/streaming.js*/

if(nv.CreateNamespace("nv.StreamingServices")){nv.StreamingServices=new function(){var $this=this;var hasSubscribedToStreamingStats=false;$this.REALTIME_STATS_ASSET_VALUE_UPDATE="REALTIMESTATS.ASSET.UPDATE";$this.OnStreamingQuote=new nv.Event();$this.OnStreamingNews=new nv.Event();$this.OnStreamingStat=new nv.Event();var wildfire;$this.SubscribeToTickers=function(tickers,quotes,news){init();if(typeof quotes=='undefined'){quotes=true;}
if(typeof news=='undefined'){news=true;}
var addSubs=[];nv.array.iterate(tickers,function(ticker){if(nv.Security.isValidPrefixedTicker(ticker)){var security=new nv.Security(ticker);if(quotes&&security.exchange!=="NYSE"&&security.exchange!=="NASDAQ"&&security.exchange!=="AMEX"){addSubs.push(getQuoteQueueForSecurity(security));}
if(news&&security.exchange!=="US"){addSubs.push(getNewsQueueForSecurity(security));}}});if(!nv.array.isEmpty(addSubs)){wildfire.subscribe(addSubs);}};$this.SubscribeToStreamingStats=function(){if(!hasSubscribedToStreamingStats){init();wildfire.subscribe($this.REALTIME_STATS_ASSET_VALUE_UPDATE);hasSubscribedToStreamingStats=true;}};var getNewsQueueForSecurity=function(security){return"NEWS."+security.exchange+"."+security.ticker;};var getQuoteQueueForSecurity=function(security){return"QUOTE."+security.exchange+"."+security.ticker;};var initDone=false;var init=function(){if(initDone){return;}
else{initDone=true;wildfire=nv.streaming.Wildfire.instance();var bindTime=new Date().getTime();var shouldArtificiallyDelay=false;wildfire.onMessage.Bind(function(e){var channel=e.channel;var message=e.message;var match=channel.match(/^(QUOTE|NEWS)\.(.*?)\.(.*)$/);if(match!==null){var security=new nv.Security(match[2]+":"+match[3]);if(match[1]=="QUOTE"){var quote=eval("("+message+")");var timeout=Math.floor(Math.random()*10000);if(!shouldArtificiallyDelay){if(new Date().getTime()-bindTime>10000){shouldArtificiallyDelay=true;}
else{timeout=0;}}
setTimeout(function(){$this.OnStreamingQuote.Trigger({security:security,quote:quote});},timeout);}
else if(match[1]=="NEWS"){var news=eval("("+message+")");$this.OnStreamingNews.Trigger({security:security,news:news});}}
else if(channel.match(/^REALTIMESTATS/)){var message=eval("("+message+")");$this.OnStreamingStat.Trigger({queue:channel,message:message});}});}};};}
/* /common/javascript/streaming/streaming.js*/

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

nv.defineAwesomeClass("nv.widget.tickerboard.portfolio.Processor",function($this){var $static=nv.widget.tickerboard.portfolio.Processor;var view;var tickerboard;var refreshDataCallback;var oldTotal;var total;var changeNet;var tickerData;var isStreaming;var updateProcessor;$this.onStatUpdate;$this.__construct=function(_view,_tickerboard,_refreshDataCallback){view=_view;tickerboard=_tickerboard;refreshDataCallback=_refreshDataCallback;isStreaming=false;updateProcessor=new nv.TimedBatchProcessor(500,500);updateProcessor.OnNewBatchCreated.Bind(function(){var changePercent=(total===0?0:changeNet/total*100);$this.onStatUpdate.Trigger({total:total,changeNet:changeNet,changePercent:changePercent,oldTotal:oldTotal});oldTotal=total;});$this.onStatUpdate=new nv.Event();$this.onStatUpdate.setFirstBindCallback(startStreaming);};$this.process=function(data){oldTotal=null;total=0;changeNet=0;tickerData={};view.reset();var isEmpty=true;if(data.source==$static.SOURCE_DATAWIDGET&&data.tickers){if(nv.array.count(data.tickers)>0){nv.array.iterate(data.tickers,function(prefixedTicker,quote){var security=new nv.Security(prefixedTicker);var oldPrice=quote.price;var link=tickerboard.getTearsheetLinkForTicker(prefixedTicker);view.displayHolding(prefixedTicker,security.ticker,link,quote,data.name);});isEmpty=false;}}
else if(data.source==$static.SOURCE_DATALIGHT&&data.portfolios){if(nv.array.count(data.portfolios)>0){nv.array.iterate(data.portfolios,function(portfolio){var portfolioName=null;if(portfolio.sourceDisplayName){portfolioName=portfolio.sourceDisplayName+" ("+portfolio.name+")";}
else{portfolioName=portfolio.name;}
total+=portfolio.totalBalance;changeNet+=portfolio.todaysChange;view.displayAccount(portfolioName,portfolio);nv.array.iterate(portfolio.holdings,function(holding){var prefixedTicker=holding.prefixedTicker;var name=holding.ticker;var link=tickerboard.getTearsheetLinkForTicker(prefixedTicker);setTickerData(holding);view.displayHolding(prefixedTicker,name,link,holding,holding.name,holding);});});isEmpty=false;}}
if(nv.array.count(data.incomplete)>0){isEmpty=false;doIncomplete(data.incomplete);}
if(data.failed>0){isEmpty=false;view.displayFailed(data.failed);}
if(isEmpty){view.displayEmpty();}
var changePercent=0;if(total!=0){changePercent=changeNet/(total-changeNet)*100;}
view.displayPortfolioStats(total,changeNet,changePercent);oldTotal=total;view.onDisplayComplete();};var setTickerData=function(holding){var prefixedTicker=holding.prefixedTicker;var price=Number(holding.price);if(isNaN(price)){price=0;}
var changeNet=Number(holding.changeNet);if(isNaN(changeNet)){changeNet=0;}
var units=Number(holding.units);if(isNaN(units)){units=0;}
if(typeof tickerData[prefixedTicker]=="undefined"){tickerData[prefixedTicker]={units:units,price:price,changeNet:changeNet};if(isStreaming){nv.StreamingServices.SubscribeToTickers([prefixedTicker],true,false);}}
else{tickerData[holding.prefixedTicker].units+=holding.units;}};var startStreaming=function(){var tickers=nv.array.keys(tickerData);nv.StreamingServices.SubscribeToTickers(tickers,true,false);nv.StreamingServices.OnStreamingQuote.Bind(onStreamingQuote);isStreaming=true;};var onStreamingQuote=function(e){var ticker=e.security.getPrefixedTicker();var numHoldingsForTicker=0;if(typeof tickerData[ticker]!="undefined"){numHoldingsForTicker=tickerData[ticker].units;var changeDiff=e.quote.cN-tickerData[ticker].changeNet;var totalChange=changeDiff*numHoldingsForTicker;tickerData[ticker].changeNet=e.quote.cN;changeNet+=totalChange;total+=totalChange;updateProcessor.AddJob(1);}};var doIncomplete=function(inc){var countInc=nv.array.count(inc);view.displayIncompleteStatus(countInc);var done=false;var doneProcessed=0;var doneFailed=0;var postIncomplete=function(){if(doneFailed+doneProcessed<countInc||done){return;}
done=true;if(doneProcessed>0){view.displayRefreshing();refreshDataCallback();}
if(doneFailed>0){view.displayFailed(doneFailed);}};nv.array.iterate(inc,function(id){var tries=0;(function(){var check=arguments.callee;tries++;if(tries<=10){nv.http.request({url:nv.Urls.ServerUrl+'/frontend/portfolio/',timeout:5000,data:{action:'checksyncstatus',id:id,cb:new Date().getTime()},success:function(data){if(data.state&&data.state!="failed"){if(data.state=="processed"){doneProcessed++;postIncomplete();}
else{setTimeout(check,5000);}}
else{if(data.state=="failed"){doneFailed++;postIncomplete();}}}});}
else{doneFailed++;postIncomplete();}})();});};},function($this){$this.SOURCE_DATALIGHT=1;$this.SOURCE_DATAWIDGET=2;});
/* /frontend/mashup/ui/TickerBoardComponent/base/portfolio.js*/
