
/*frontend/mashup/ui/TickerBoardComponent/portfolio2col/portfolioContent.js*/

nv.defineAwesomeClass("nv.widget.tickerboard.portfolio2col.PortfolioContent",function($this,$protected,$parent){var $=nv.JQuery;var $content=null;var enableDataUris=false;var dataUriData={};var portfolioDataProcessor=null;var todaysChangePercent=null;var prefixedTickerToData={};var container;var tickerboard;var returnsUpdateProcessor=new nv.TimedBatchProcessor(5000,5000);$this.OnDataReceived=new nv.Event();$this.OnDataFailed=new nv.Event();$this.OnReturnsDataUpdated=new nv.Event();$this.OnDataReceivedHistorical=new nv.Event(true);$this.__construct=function(_container,_tickerBoard){container=_container;tickerBoard=_tickerBoard;container.html('<div class="nv-portfolio"></div>');$content=container.find("div.nv-portfolio");$content.html('<div class="nv-portfolio-loading">Loading..</div>');portfolioDataProcessor=new nv.widget.tickerboard.portfolio.Processor(getView(),tickerBoard,refreshData);$this.OnDataReceived.Bind(function(data){portfolioDataProcessor.process(data);});$this.OnDataFailed.Bind(getView().DisplayError);fetchData();if($.browser.msie&&parseFloat($.browser.version)<8){fetchCharts();}
else{var testImage=new Image();testImage.onload=testImage.onerror=function(){if(this.width==1&&this.height==1){enableDataUris=true;}
fetchCharts();};testImage.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";}
returnsUpdateProcessor.OnNewBatchCreated.Bind(updateReturns);};var fetchData=function(){prefixedTickerToData={};$this.OnDataReceivedHistorical.Reset();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.OnDataReceived.Trigger(data);$this.OnDataReceivedHistorical.Trigger(data);if(data.performance&&data.performance.todaysChangePercent){todaysChangePercent=parseFloat(data.performance.todaysChangePercent);}
if(data.portfolios){nv.array.iterate(data.portfolios,function(portfolio){nv.array.iterate(portfolio.holdings,function(holding){var changeNet=parseFloat(holding.changeNet);var units=parseFloat(holding.units);if(holding.prefixedTicker&&changeNet&&units){if(typeof prefixedTickerToData[holding.prefixedTicker]=="undefined"){prefixedTickerToData[holding.prefixedTicker]={changeNet:changeNet,units:units};}
else{prefixedTickerToData[holding.prefixedTicker].units+=units;}}});});}
updateReturns();},'error':function(){$this.OnDataFailed.Trigger();}});};var refreshData=function(){dataUriData={};fetchData();fetchCharts();};var viewInstance=null;var getView=function(){if(!viewInstance){var view=nv.extendToAnonymousClass("nv.widget.tickerboard.portfolio.View",function($this,$protected,$parent){var $view=this;var $holdingsTable=null;var isFirstAccount=true;$view.reset=function(){$content.empty();$content.removeClass('nv-portfolio-message');isFirstAccount=true;};$view.displayAccount=function(portfolioName){if(isFirstAccount){$content.append('<div class="nv-portfolio-holdings-container"><table cellpadding="0" cellspacing="0" class="nv-portfolio-holdings-table"><tbody></tbody></table></div>');$holdingsTable=$content.find('table.nv-portfolio-holdings-table tbody');$holdingsTable.append('<tr class="nv-header-row">'+'<td class="nv-cell-ticker">Ticker</td>'+'<td class="nv-cell-price">Price</td>'+'<td colspan="2" class="nv-cell-change">Change</td>'+'<td class="nv-cell-chart">'+'<span timeframe="1d">1d</span> '+'<span class="nv-selected" timeframe="5d">1w</span> '+'<span timeframe="1m">1m</span> '+'Chart</td>'+'</tr>');$holdingsTable.append('<tr class="nv-source-row nv-first-source-row">'+'<td colspan="5" class="nv-cell-sourcename">'+portfolioName+"</td>"+'</tr>');$holdingsTable.find("td.nv-cell-chart span[timeframe]").click(function(){var span=$(this);if(span.hasClass('nv-selected')){return;}
var timeframe=span.attr('timeframe');span.siblings("span.nv-selected").removeClass("nv-selected");span.addClass("nv-selected");fetchCharts();});isFirstAccount=false;}
else{$holdingsTable.append('<tr class="nv-source-row">'+'<td colspan="5" class="nv-cell-sourcename">'+portfolioName+"</td>"+'</tr>');}};$view.displayHolding=function(prefixedTicker,name,link,quote,fullName){var nameTruncated=name.length>5?name.substring(0,5)+"..":name;var rowhtml='\
      <tr class="nv-holdings-row" ticker="'+(prefixedTicker?escape(prefixedTicker):escape(name))+'" name="'+escape(fullName)+'">'+
(link?'<td class="nv-cell-ticker"><a target="'+tickerBoard.getLinksTarget()+'" href="'+link+'">'+nameTruncated+'</a></td>':'<td class="nv-cell-ticker">'+nameTruncated+'</td>')+'<td class="nv-cell-price"></td>\
       <td class="nv-cell-change"></td>\
       <td class="nv-cell-change-percent"></td>\
       <td class="nv-cell-chart">&nbsp;</td>\
      </tr>';$holdingsTable.append(rowhtml);renderTickerRow($holdingsTable,prefixedTicker?prefixedTicker:name,quote,null);var oldPrice=quote.price;if(prefixedTicker&&tickerBoard.isStreamingEnabled()){nv.StreamingServices.SubscribeToTickers([prefixedTicker],true,false);nv.StreamingServices.OnStreamingQuote.Bind(function(e){if(e.security.getPrefixedTicker()==prefixedTicker){var newData={};newData.price=e.quote.pr;newData.changeNet=e.quote.cN;newData.changePercent=e.quote.cP;newData.tradeTimeFormatted=e.quote.tF;tickerBoard.updateTimestamp(e.quote.tF,e.quote.tT);renderTickerRow($holdingsTable,prefixedTicker,newData,oldPrice);oldPrice=newData.price;if(typeof prefixedTickerToData[prefixedTicker]!="undefined"){var changeNetNumeric=parseFloat(e.quote.cN);if(!isNaN(changeNetNumeric)){prefixedTickerToData[prefixedTicker].changeNet=changeNetNumeric;returnsUpdateProcessor.AddJob(1);}}}});}};$view.onDisplayComplete=function(){if($holdingsTable){pop=new nv.UI.Pop({bind:{trigger:$holdingsTable.find("tr.nv-holdings-row[ticker][name] td.nv-cell-ticker"),theme:'white',position:['auto','auto'],showEvent:'mouseover',hideEvent:'mouseout',delay:0},content:function(e){var row=$(e).parents("tr[name]");return"<div class='nv-pop-header'>"+unescape(row.attr('ticker'))+"</div>"+
unescape(row.attr('name'));}});}};$view.displayEmpty=function(){removeIncompleteMessage();$content.html('<div class="nv-holdings-empty">You have not added an account yet<br />'+'<button class="doPortfolioAuth" auth="login">Add one now</button></div>');};$view.displayError=function(){removeIncompleteMessage();$content.html('<div class="nv-holdings-error">Unable to fetch your holdings.<br />Try again in a few seconds</div>');};$view.displayFailed=function(numFailed){removeIncompleteMessage();$content.find("div.nv-portfolio-header").css('display','none');$content.addClass('nv-portfolio-message');$content.prepend('<div class="nv-holdings-incomplete">One or more accounts failed to sync. '+'<a target="_blank" href="https://www.wikinvest.com/partner/Forbes/account/settings/portfolios">Click here</a> for more information</div>');};var dot=0;$view.displayIncompleteStatus=function(countInc){var singularOrPlural=(countInc>1?'accounts':'account');$content.find("div.nv-portfolio-header").css('display','none');$content.addClass('nv-portfolio-message');$content.prepend('<div class="nv-holdings-incomplete">We are currently importing '+countInc+' portfolio '+singularOrPlural+'.'+' Please wait<span class="nv-wait"></span></div>');setTimeout(function(){var dotComponent=$content.find('.nv-wait');if(dotComponent){dot++;if(dot==4){dot=0;}
var str="";for(var i=0;i<dot;i++){str+=".";}
dotComponent.html(str);setTimeout(arguments.callee,500);}},500);};var removeIncompleteMessage=function(){$content.find("div.nv-portfolio-header").css('display','block');$content.find("div.nv-holdings-incomplete").remove();$content.removeClass('nv-portfolio-message');};$view.displayRefreshing=function(){$content.find("div.nv-holdings-incomplete").html('Updating your holdings. Please wait<span class="nv-wait"></span>');dot=0;};$view.displayReloadMessage=function(){$content.find("div.nv-holdings-incomplete").html('Sync Complete. <a href="javascript:window.location.reload();">Click here</a> '+'to see updates');};});viewInstance=new view();}
return viewInstance;};var renderTickerRow=function($holdingsTable,ticker,data,oldPrice){var price=nv.util.Number.formatWithCommas(data.price);var hasDiff=false;if(oldPrice!==null){var streamClass="";if(data.price>oldPrice){streamClass="nv-stream-change-up";}
else{streamClass="nv-stream-change-down";}
var oldPriceFormatted=nv.util.Number.formatWithCommas(oldPrice);price=nv.String.Diff(oldPriceFormatted,price,streamClass);if(price!==oldPriceFormatted){hasDiff=true;}}
if(!data.changeNet){data.changeNet=0;}
if(!data.changePercent){data.changePercent=0;}
var changeNet=nv.util.Number.formatWithCommas(data.changeNet);var changePercent=nv.util.Number.formatPercent(data.changePercent,1);var className="";if(parseFloat(data.changeNet)>0){className="nv-change-up";}
else if(parseFloat(data.changeNet)<0){className="nv-change-down";}
var row=$holdingsTable.find("tr[ticker='"+escape(ticker)+"']");row.removeClass("nv-change-down");row.removeClass("nv-change-up");row.addClass(className);row.find("td.nv-cell-price").html(price);row.find("td.nv-cell-change").html(changeNet);row.find("td.nv-cell-change-percent").html("("+changePercent+")");if(hasDiff){setTimeout(function(){$holdingsTable.find("tr[ticker="+escape(ticker)+"] td.nv-cell-price").each(function(){var liveQuotePrice=$(this);liveQuotePrice.html(liveQuotePrice.text());});},3000);}};var fetchCharts=function(){if(enableDataUris){fetchChartDataUris();}
else{fetchChartImages();}};var fetchChartImages=function(){var timeframe=$content.find("tr.nv-header-row td.nv-cell-chart span.nv-selected").attr('timeframe');if(!timeframe){timeframe="5d";}
var cb=nv.http.GetTimestampForCachedRequest(600);$this.OnDataReceivedHistorical.Bind(function(){var $holdingsTable=$content.find('table.nv-portfolio-holdings-table tbody');$holdingsTable.find("tr.nv-holdings-row[ticker]").each(function(){var jThis=$(this);var ticker=unescape(jThis.attr('ticker'));var cell=jThis.find("td.nv-cell-chart");cell.find("img").remove();var url=nv.Urls.ServerUrl+"/frontend/portfolio/?action=chart&function=rangesparkline&"+"param[]="+timeframe+"&param[]="+ticker+"&cb="+cb;cell.html("<img style='display:inline' onerror='this.style.display=\"none\";this.parentNode.appendChild( document.createTextNode( \"&nbsp; \" ) );' src='"+url+"'/>");});});};var fetchChartDataUris=function(){var timeframe=$content.find("tr.nv-header-row td.nv-cell-chart span.nv-selected").attr('timeframe');if(!timeframe){timeframe="5d";}
$content.find("td.nv-cell-chart img").remove();if(dataUriData[timeframe]){$this.OnDataReceivedHistorical.Bind(function(e){renderDataUri(dataUriData[timeframe]);});}
else if(dataUriData[timeframe]===null){return;}
else{dataUriData[timeframe]=null;nv.http.request({'url':nv.Urls.ServerUrl+"/frontend/portfolio/",'method':nv.http.Method.GET,'data':{'action':'chartdata','encoding':'datauri','timeframe':timeframe,'cb':nv.http.GetTimestampForCachedRequest(600)},'timeout':30000,'success':function(data){dataUriData[timeframe]=data;$this.OnDataReceivedHistorical.Bind(function(e){renderDataUri(data);});}});}};var renderDataUri=function(data){if(data.timeframe&&data.chartingData){var selectedTimeframe=$content.find("tr.nv-header-row td.nv-cell-chart span.nv-selected").attr('timeframe');if(!selectedTimeframe){selectedTimeframe="5d";}
if(selectedTimeframe!=data.timeframe){return;}
var $holdingsTable=$content.find('table.nv-portfolio-holdings-table tbody');nv.array.iterate(data.chartingData,function(prefixedTicker,obj){if(obj&&obj[data.timeframe]){var img=obj[data.timeframe];if(img.indexOf('data:image/png;base64,')!==0){img='data:image/png;base64,'+img;}
$holdingsTable.find("tr[ticker='"+escape(prefixedTicker)+"'] td.nv-cell-chart").html("<img style='display:inline' onerror='this.style.display=\"none\"'  src='"+img+"'/>");}});}};var updateReturns=function(){if(todaysChangePercent){$this.OnReturnsDataUpdated.Trigger({changePercent:todaysChangePercent});}};});
/* /frontend/mashup/ui/TickerBoardComponent/portfolio2col/portfolioContent.js*/

/*common/ui/element/pop/pop.js*/

if(nv.CreateNamespace('nv.UI.Pop')){nv.UI.Pop=function(options){var $=nv.JQuery;var $this=this;var _id;var _content;var _beforeRender;var _onRender;var _bindings;var _width;var _height;var _delayAction;var _currentAnchor;var _theme;var __construct=function(options){_id=_createId();options=options||{};_content=options.content||null;_beforeRender=options.beforeRender;_onRender=options.onRender;_bindings=[];_theme=options.theme||'grey';if(typeof options.bind!='undefined'){if($.isArray(options.bind)){$.each(options.bind,function(index,binding){$this.setBinding(binding);});}
else{$this.setBinding(options.bind);}}};$this.getDomId=function(){return _id;};$this.getDomElement=function(){return document.getElementById(_id);};$this.getContentDomElement=function(){return $($this.getDomElement()).find('.nvui-pop-content').get(0);};$this.getTitleDomElement=function(){return $($this.getDomElement()).find('.nvui-pop-title').get(0);};$this.getCloseDomElement=function(){return $($this.getDomElement()).find('.nvui-pop-close').get(0);};$this.popOut=function(options){options.theme=options.theme||_theme;$this.create(options.width,options.height,options.classNames,options.theme);options.content=options.content||_content;options.beforeRender=options.beforeRender||_beforeRender;options.onRender=options.onRender||_onRender;_currentAnchor=options.anchor;if($.isFunction(options.beforeRender)){var okToShow=options.beforeRender.call(null,_currentAnchor);if(!okToShow){return false;}}
if($.isFunction(options.content)){var contentFunction=options.content;options.content=function(){return contentFunction.call(null,options.anchor);};}
if(options.content){$this.setContent(options.content);}
if(options.title){$this.setTitle(options.title);}
if(options.closeButton){$this.addCloseButton(options.closeButtonText);}
var isOldIE=navigator.appVersion.indexOf("MSIE 5")!=-1||navigator.appVersion.indexOf("MSIE 6")!=-1||navigator.appVersion.indexOf("MSIE 7")!=-1;if(isOldIE){var contentDom=$($this.getContentDomElement());var closeButtonDom=$($this.getCloseDomElement());var contentWidth=contentDom.width()+closeButtonDom.width()+10;var contentHeight=contentDom.height();var domElement=$($this.getDomElement());domElement.width(contentWidth);domElement.height(contentHeight);}
$this.setPosition(_currentAnchor,options.position);$this.show();if($.isFunction(options.onRender)){var okToShow=options.onRender.call(null,_currentAnchor,$this.getContentDomElement());}
if(options.hideEvent=='mouseout'){$($this.getDomElement()).bind('mouseout',function(eventObj){var thisPop=eventObj.currentTarget;var mouseinElement=eventObj.relatedTarget;if(_isOrHasParent(mouseinElement,options.anchor)||_isOrHasParent(mouseinElement,thisPop)){return;}
else{$this.remove();}});}
if(options.hideEvent=='unfocus'||(options.hideEvent==undefined&&options.showEvent=='click')){_hideOnUnfocus();}
if(_currentAnchor){$(_currentAnchor).addClass($this.getDomId());}
return true;};$this.show=function(){$($this.getDomElement()).css('visibility','visible').show();if(_currentAnchor){$(_currentAnchor).addClass("nvui-active-anchor");}};$this.hide=function(){$($this.getDomElement()).hide();};$this.create=function(width,height,classNames,theme){if(typeof _deleteOld=='boolean'&&_deleteOld){$this.remove();$(document.body).append(_getHtml(width,height,classNames,theme));}
else{if(!$this.getDomElement()){$(document.body).append(_getHtml(width,height,classNames,theme));}}
$($this.getDomElement()).find('.nvui-pop-close').live('click',$this.remove);};$this.remove=function(){if(_delayAction){clearTimeout(_delayAction);}
$($this.getDomElement()).remove();if(_currentAnchor){$(_currentAnchor).removeClass("nvui-active-anchor");}
$('body').die('click',_hideOnEvent);$(_currentAnchor).unbind('click',$this.remove);$(_currentAnchor).removeClass($this.getDomId());_currentAnchor=null;};$this.setContent=function(content){if(typeof content=='string'){$($this.getContentDomElement()).html(content);}
else if($.isFunction(content)){$($this.getContentDomElement()).html(content.call(_currentAnchor));}
else if(typeof content=='object'){$($this.getContentDomElement()).html('').append($(content).clone().show().css('visibility','visible'));}};$this.setTitle=function(title){$($this.getTitleDomElement()).show().prepend('<span class="nvui-pop-title-text">'+title+'</span>');};$this.addCloseButton=function(closeButtonText){var button=closeButtonText||'CLOSE';$($this.getCloseDomElement()).show().append(button);};$this.setPosition=function(anchor,positionOptions){var pop=$this.getDomElement();var elemOffset=$(anchor).offset();var position={top:0,left:0};var verticalOption=positionOptions[0];var horizontalOption=positionOptions[1];$(pop).find('.nvui-pop-mouseover').css('width',$(anchor).outerWidth()+"px");if(verticalOption=='auto'&&horizontalOption=='auto'){var windowScrollY=parseFloat($(window).scrollTop());var windowScrollX=parseFloat($(window).scrollLeft());var windowOffsetY=elemOffset.top-windowScrollY;var windowOffsetX=elemOffset.left-windowScrollX;var windowHeight=parseFloat($(window).height());var windowWidth=parseFloat($(window).width());var popHeight=parseFloat($(pop).outerHeight());var popWidth=parseFloat($(pop).outerWidth());var anchorHeight=parseFloat($(anchor).outerHeight());var anchorWidth=parseFloat($(anchor).outerWidth());verticalOption='top';horizontalOption='middle';var rightOverflow=(windowOffsetX+anchorWidth/2+popWidth/2)-windowWidth;var leftOverflow=0-(windowOffsetX-anchorWidth/2-popWidth/2);var topOverflow=0-(windowOffsetY-popHeight);var bottomOverflow=(windowOffsetY+anchorHeight+popHeight)-windowHeight;if(rightOverflow>0&&rightOverflow>leftOverflow){horizontalOption='right';}
if(leftOverflow>0&&leftOverflow>rightOverflow){horizontalOption='left';}
if(topOverflow>0&&topOverflow>bottomOverflow){verticalOption='bottom';}}
if(verticalOption=='top'){position.top=elemOffset.top-$(pop).outerHeight()-$(pop).find('.nvui-pop-pointy-out').outerHeight();$(pop).removeClass('nvui-pop-v-bottom');$(pop).addClass('nvui-pop-v-top');}
else if(verticalOption=='bottom'){position.top=elemOffset.top+$(anchor).outerHeight();$(pop).removeClass('nvui-pop-v-top');$(pop).addClass('nvui-pop-v-bottom');}
if(horizontalOption=='left'){position.left=elemOffset.left;$(pop).addClass('nvui-pop-h-left');}
else if(horizontalOption=='right'){position.left=elemOffset.left+($(anchor).outerWidth()-$(pop).outerWidth());$(pop).addClass('nvui-pop-h-right');}
else if(horizontalOption=='middle'){position.left=elemOffset.left+($(anchor).outerWidth()-$(pop).outerWidth())/2;$(pop).addClass('nvui-pop-h-middle');$(pop).find('.nvui-pop-pointy-in, .nvui-pop-pointy-out').css('left',($(pop).outerWidth()/2-10)+'px');$(pop).find('.nvui-pop-mouseover').css('left',($(pop).outerWidth()/2-$(anchor).outerWidth()/2)+'px');}
$(pop).css('top',position.top+'px').css('left',position.left+'px');};$this.setBinding=function(options){_bindings.push(options);options.showEvent=options.showEvent||'mouseover';options.hideEvent=options.hideEvent||'mouseout';options.position=options.position||['top','middle'];options.delay=options.delay||0;if(options.showEvent=='mouseover'){$(options.trigger).css('cursor','default');}
else if(options.showEvent=='click'){$(options.trigger).css('cursor','pointer');}
$(options.trigger).bind(options.showEvent,function(eventObj){var triggerElement=eventObj.currentTarget;if(options.showEvent=='mouseover'){var mouseoutElement=eventObj.relatedTarget;if(_isOrHasParent(mouseoutElement,'#'+_id)||_isOrHasParent(mouseoutElement,triggerElement)){return;}}
else if(options.showEvent=='click'){if(triggerElement==_currentAnchor){return;}}
if(!options.delay){$this.popOut($.extend({anchor:triggerElement},options));}
else{_delayAction=setTimeout(function(){$this.popOut($.extend({anchor:triggerElement},options));},options.delay);}});if(options.hideEvent=='mouseout'){$(options.trigger).bind('mouseout',function(eventObj){var triggerElement=eventObj.currentTarget;var mouseinElement=eventObj.relatedTarget;if(_isOrHasParent(mouseinElement,'#'+_id)||_isOrHasParent(mouseinElement,triggerElement)){return;}
else{$this.remove();}});}};var _createId=function(){return'nvui-pop-'+(new Date()).getTime();};var _getHtml=function(width,height,classNames,theme){var classString='';var styleString='';var themeString='';if($.isArray(classNames)){classString=' '+classNames.join(' ');}
if(typeof width!='undefined'){styleString='width:'+width+'px;';}
if(typeof height!='undefined'){styleString+='height:'+height+'px';}
if(styleString!=''){styleString=' style="'+styleString+'"';}
var html='<div id="'+_id+'" class="nvui-pop nvui-pop-'+theme+'"><div class="nvui-pop-close"></div><div class="nvui-pop-title"></div><div class="nvui-pop-content'+classString+'"'+styleString+'></div><div class="nvui-pop-pointy-out"></div><div class="nvui-pop-pointy-in"></div><div class="nvui-pop-mouseover"></div></div>';return html;};var _getParentOrSelf=function(elem,selector){if(typeof selector!='string'){return elem;}
if($(elem).is(selector)){return elem;}
var $parent=$(elem).parents(selector);if($parent.length>0){return $parent.get(0);}
return null;};var _isOrHasParent=function(elem,check){var isSelf=elem==$(check).get(0);if(isSelf){return true;}
var checkElem=$(check).get(0);var hasParent=$(elem).parents().filter(function(){return this==checkElem;}).length>0;return hasParent;};var _hideOnEvent=function(eventObj){var clickElement=eventObj.target;if(_isOrHasParent(clickElement,$this.getDomElement())||_isOrHasParent(clickElement,_currentAnchor)){}
else{$this.remove();}};var _hideOnUnfocus=function(){$('body').live('click',_hideOnEvent);$(_currentAnchor).bind('click',$this.remove);};var _hideOnMouseout=function(){$('body').live('mouseover',_hideOnEvent);};var _showOnClick=function(selector){};var _showOnMouseover=function(selector){};__construct(options);};};if(nv.CreateNamespace('nv.UI.Element.Pop')){nv.UI.Element.Pop=nv.UI.Pop;}
/* /common/ui/element/pop/pop.js*/

/*common/javascript/circularArray.js*/

if(nv.CreateNamespace("nv.CircularArray")){nv.CircularArray=function(){var items=[];var length=0;var next=-1;this.Push=function(item){items.push(item);length++;if(next==-1){next=0;}};this.Next=function(){if(next==-1){return undefined;}
var item=items[next];if(++next==length){next=0;}
return item;};};}
/* /common/javascript/circularArray.js*/

/*common/javascript/abtest.js*/

nv.defineAwesomeClass("nv.ABTest",function($this){var prefix='nv_abjs_';var cookie;var options;$this.__construct=function(name,_options){cookie=new nv.Cookie(prefix+name);options=_options;};$this.get=$this.Get=function(){var value=cookie.get();if(value){var returnValue=null;nv.array.iterate(options,function(v){if(v===value){returnValue=v;}});if(returnValue!==null){return returnValue;}}
return selectAndSet();};$this.getWithOverride=function(overrideMatch){var choice=$this.get();if(!overrideMatch)return choice;if(typeof overrideMatch=='object'&&typeof overrideMatch[1]=='string'){overrideMatch=overrideMatch[1];}
if(nv.array.indexOf(options,overrideMatch)!=-1){choice=overrideMatch;}
return choice;};var selectAndSet=function(){var random=Math.floor(Math.random()*nv.array.count(options));var selected=nv.array.values(options)[random];cookie.Set(selected,2*30*24*60*60,"/");return selected;};},function(){this.tests=[];this.setupTest=function(name,choices,message,override,options){options=options||[];var test=new nv.ABTest(name,choices);var regexp=new RegExp("\\bab_"+name+"=(\\w+)\\b");var functionOverride=null;if(typeof override=="function"){functionOverride=override;override=null;}
var version=override!=null?override:test.getWithOverride(window.location.search.match(regexp));if(functionOverride){version=functionOverride(version);}
this.tests[name]=version;if(!message){message=name;}
options[name+"_version"]=version;if(!options['noTrack']){nv.Analytics.trackEvent(message,options);nv.Analytics.trackAction('AB Test',name,message+' -'+version,1);}
return version;};});
/* /common/javascript/abtest.js*/

/*common/javascript/metrics.js*/

if(nv.CreateNamespace("nv.Metrics.Quantcast")){nv.Metrics.Quantcast.URL=('https:'==document.location.protocol?'https://secure':'http://edge')+'.quantserve.com/quant.js';nv.Metrics.Quantcast.AccountID="p-d5SpXgbOajA6k";nv.Metrics.Quantcast.TrackPageView=function(label){var quantcastOptions={qacct:nv.Metrics.Quantcast.AccountID};if(typeof(label)!=undefined){quantcastOptions.labels=label;}
window._qoptions=quantcastOptions;nv.util.Dom.addJSToHead(nv.Metrics.Quantcast.URL);};}
/* /common/javascript/metrics.js*/

/*common/analytics/javascript/Analytics.Engine.js*/

if(typeof nv=='undefined')nv={};if(typeof nv.Analytics=='undefined')nv.Analytics={};(function(analyticsObject){analyticsObject.Engine={Snowplow:'sn',GoogleAnalytics:'ga',QuantCast:'qc',Omniture:'om'};})(nv.Analytics);
/* /common/analytics/javascript/Analytics.Engine.js*/

/*common/analytics/javascript/Analytics.addTrackingTags.js*/

if(typeof nv=='undefined')nv={};if(typeof nv.Analytics=='undefined')nv.Analytics={};(function(analyticsObject){"use strict";analyticsObject.addTrackingTags=function(originalUrl,hash){var queryParams=[];for(var engine in hash){if(!hash.hasOwnProperty(engine)){continue;}
var params=hash[engine];for(var key in params){queryParams.push(escape(key)+'='+escape(params[key]));}}
if(originalUrl.match(/\?/)===null){return originalUrl+'?'+queryParams.join('&');}else{return originalUrl+'&'+queryParams.join('&');}};})(nv.Analytics);
/* /common/analytics/javascript/Analytics.addTrackingTags.js*/

/*common/analytics/javascript/internal.js*/

if(typeof nv=='undefined')nv={};if(typeof nv.Analytics=='undefined')nv.Analytics={};(function(analyticsObject){var CUSTOM_CAMPAIGN_PARAMS={"Medium":'_acm',"Name":'_acn',"Source":'_acs',"Content":'_acc',"Terms":'_act'};var TAG_SCOPE={User:1,Session:2,Page:3};var DEFAULT_FREQUENCY=20;var ACTION_CACHE_COOKIE_NAME='nv_an_ac';var EVENT_CACHE_COOKIE_NAME='nv_an_ec';var SAMPLE_COOKIE_NAME='nv_sample_val';var GA_SAMPLE_TRACKING_RATE=null;var GA_USER_ID_SLOT=5;var $this=analyticsObject;var _signalIds={};var _environment='';var _user={};var _tagCache={};var _queuedBeforeInit=[];var ENABLE_CNN_LOGGED_IN_TRACKER=false;var disregard=false;var _getCookie=function(name){var _nameEQ=name+"=";var _ca=document.cookie.split(';');for(var i=0;i<_ca.length;i++){var _c=_ca[i];while(_c.charAt(0)==' ')_c=_c.substring(1,_c.length);if(_c.indexOf(_nameEQ)==0)return unescape(_c.substring(_nameEQ.length,_c.length));}
return null;};var _setCookie=function(name,value,days){var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires=";expires="+date.toGMTString();}
document.cookie=name+"="+value+expires+";path=/";};var _eraseCookie=function(name){_setCookie(name,'',-1);};var _getTagCacheFromCookie=function(cookieName){var tags=_getCookie(cookieName);var cache={};if(tags!==null&&tags!==''){tags=tags.split('|');for(var tag in tags){if(tags.hasOwnProperty(tag)){tagInfo=tags[parseInt(tag,10)].split(':');cache[tagInfo[0]]=tagInfo[1];}}}
return cache;};var _serializeTags=function(tagsHash){var tagsList=[];for(var tagKey in tagsHash){if(tagsHash.hasOwnProperty(tagKey)){tagsList.push(tagKey+':'+tagsHash[tagKey]);}}
return tagsList.join('|');};var _addTag=function(scope,tagsHash){var cookieName='nv_an_'+scope.charAt(0).toLowerCase()+'t';if(typeof _tagCache[scope]=='undefined'){_tagCache[scope]=_getTagCacheFromCookie(cookieName);}
var tagsList=[];for(var tagsKey in tagsHash){if(tagsHash.hasOwnProperty(tagsKey)){_tagCache[scope][tagsKey]=tagsHash[tagsKey];}}
var tagString=_serializeTags(_tagCache[scope]);_setCookie(cookieName,tagString,3650);_GAMultiPush(['_setCustomVar',TAG_SCOPE[scope],scope+' Tags',tagString,TAG_SCOPE[scope]]);};var _getCurrentTimestamp=function(){return(new Date()).getTime();};var _wait=function(ms){if(ms<=0){return;}
var _startTime=_getCurrentTimestamp();while(_getCurrentTimestamp()<_startTime+ms){}
return;};var _initCampaignTracking=function(){_GAMultiPush(['_setCampMediumKey',CUSTOM_CAMPAIGN_PARAMS['Medium']]);_GAMultiPush(['_setCampNameKey',CUSTOM_CAMPAIGN_PARAMS['Name']]);_GAMultiPush(['_setCampSourceKey',CUSTOM_CAMPAIGN_PARAMS['Source']]);_GAMultiPush(['_setCampContentKey',CUSTOM_CAMPAIGN_PARAMS['Content']]);_GAMultiPush(['_setCampTermKey',CUSTOM_CAMPAIGN_PARAMS['Terms']]);};var _getCampaignParamsFromURL=function(){var query=document.location.search;var allParams={};var campaignParams=null;if(!query)return null;query=query.substring(1);var queryAsKeyValue=query.split('&');for(var index in queryAsKeyValue){if(queryAsKeyValue.hasOwnProperty(index)){var keyValuePair=queryAsKeyValue[index].split('=');allParams[keyValuePair[0]]=keyValuePair[1];}}
for(var key in CUSTOM_CAMPAIGN_PARAMS){if(CUSTOM_CAMPAIGN_PARAMS.hasOwnProperty(key)){if(typeof allParams[CUSTOM_CAMPAIGN_PARAMS[key]]!='undefined'){campaignParams=campaignParams||{};campaignParams['Campaign '+key]=allParams[CUSTOM_CAMPAIGN_PARAMS[key]];}}}
return campaignParams;};var _insertScriptNode=function(url){var ns=document.createElement('script');ns.type='text/javascript';ns.async=true;ns.src=url;var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ns,s);};var _loadSN=function(options){if(typeof options=="boolean"||typeof options=="undefined"){options={};}
if(typeof window._snaq=="undefined"){window._snaq=[];}
_snaq.push(['setCollectorCf','d2z3m4a3c6jiep']);_snaq.push(['setCookieDomain','.sigfig.com']);_snaq.push(['setAppId','trial']);if(_user&&_user.obfuscated){}
var snsrc='http://cdn.wikinvest.com/partner/Forbes/common/analytics/sp.js';_insertScriptNode(snsrc);};var _GAMultiPush=function(commandArray){_gaq.push(commandArray);var command=commandArray[0];if(ENABLE_CNN_LOGGED_IN_TRACKER){commandArray[0]='CNNM_Port.'+command;_gaq.push(commandArray);}};var _loadGA=function(options){if(typeof options=="boolean"||typeof options=="undefined"){options={};}
if(typeof _gaq=="undefined"){_gaq=[];}
var gacode='';switch(_environment){case nv.Analytics.Env.PartnerAnonymous:gacode='UA-1766902-19';break;case nv.Analytics.Env.PartnerAuthenticated:gacode='UA-1766902-21';break;case nv.Analytics.Env.CNNMoney:gacode='UA-23116607-3';GA_SAMPLE_TRACKING_RATE=5;if((_user&&_user.isAuthenticated)||document.location.pathname=="/"){ENABLE_CNN_LOGGED_IN_TRACKER=true;}
break;case nv.Analytics.Env.USAToday:gacode='UA-23116607-9';break;case nv.Analytics.Env.Yahoo:gacode='UA-23116607-11';break;case nv.Analytics.Env.Internal:gacode=_user.isConvertedPortfolioUser?'UA-1766902-17':'UA-1766902-1';break;case nv.Analytics.Env.Sigfig:gacode='UA-23116607-1';break;default:gacode='UA-1766902-14';}
_gaq.push(['_setAccount',gacode]);if(GA_SAMPLE_TRACKING_RATE){_gaq.push(['_setSampleRate',GA_SAMPLE_TRACKING_RATE]);}
if(ENABLE_CNN_LOGGED_IN_TRACKER){_gaq.push(['CNNM_Port._setAccount','UA-23116607-13']);}
var domain=window.location.host.split('.').slice(-2).join(".");_GAMultiPush(['_setDomainName',domain]);if(_user&&_user.obfuscated){_GAMultiPush(['_setCustomVar',GA_USER_ID_SLOT,'UserID',_user.obfuscated,TAG_SCOPE['User']]);}
var gasrc=('https:'==document.location.protocol?'https://ssl':'http://www')+'.google-analytics.com/ga.js';_insertScriptNode(gasrc);_initCampaignTracking();};var _loadQC=function(options){if(typeof options=="boolean"||typeof options=="undefined"){options={};}
_qoptions={qacct:'p-d5SpXgbOajA6k'};if(options.labels){_qoptions.labels=options.labels;}
else if(typeof nv!="undefined"&&nv&&nv.getCurrentPartnerToken){var currentPartnerToken=nv.getCurrentPartnerToken();if(currentPartnerToken){_qoptions.labels="Partners."+currentPartnerToken;}}
var qcsrc=('https:'==document.location.protocol?'https://secure':'http://edge')+'.quantserve.com/quant.js';_insertScriptNode(qcsrc);};var _unsetProperty=function(index){_GAMultiPush(['_deleteCustomVar',index]);};var _sendSignal=function(identifier,value){$this.trackAction('Timer','Page Load',identifier,value);};var _trackFromCookies=function(){var actionCookie=_getCookie(ACTION_CACHE_COOKIE_NAME);if(actionCookie!==null){var actionInfo=actionCookie.split('/');if(actionInfo.length==4){actionInfo[3]=parseInt(actionInfo[3],10);}
$this.trackAction.apply(null,actionInfo);_eraseCookie(ACTION_CACHE_COOKIE_NAME);}
var eventCookie=_getCookie(EVENT_CACHE_COOKIE_NAME);if(eventCookie!==null){var eventInfo=eventCookie.split('/');var eventName=eventInfo.shift();var eventMetaHash={};if(eventInfo.length==1){var eventMeta=eventInfo[0].split('&');var setMeta=function(key,value){eventMetaHash[key]=value;};for(var i=eventMeta.length-1;i>=0;i--){setMeta.apply(null,eventMeta[i].split('='));}}
$this.trackEvent(eventName,eventMetaHash);_eraseCookie(EVENT_CACHE_COOKIE_NAME);}};var _setActionCookie=function(category,action,label,value){_setCookie(ACTION_CACHE_COOKIE_NAME,[category,action,label,value].join('/'),3);};var _setEventCookie=function(name,properties){var propertyStrings=[];properties=properties||{};for(var key in properties){if(properties.hasOwnProperty(key)){propertyStrings.push(key+'='+properties[key]);}}
_setCookie(EVENT_CACHE_COOKIE_NAME,name+'/'+propertyStrings.join('&'));};$this.trackRequestTag=function(param){var regex=new RegExp("\\b"+param+"=([^&#]*)","i");var results=regex.exec(window.location.search);if(results!=null&&results.length>1&&results[1].length>0){nv.Analytics.trackPageView("/"+param+"/"+results[1]);nv.Analytics.trackEvent("/"+param+"/"+results[1]);}};$this.trackRefTag=function(){$this.trackRequestTag('ref');$this.trackRequestTag('uref');};$this.init=function(options){options=options||{};_user=options.user||{};_environment=(typeof options.environment=="undefined")?nv.Analytics.Env.Internal:options.environment;if(options.services==null){_loadGA();_loadQC();_loadSN();}
else if(options.services instanceof Array){for(var index in options.services){if(options.services.hasOwnProperty(index)){if(options.services[index]==nv.Analytics.Engine.GoogleAnalytics){_loadGA();}
else if(options.services[index]==nv.Analytics.Engine.QuantCast){_loadQC();}
else if(options.services[index]==nv.Analytics.Engine.Snowplow){_loadSN();}}}}
else{for(var service in options.services){if(options.services.hasOwnProperty(service)){if(service==nv.Analytics.Engine.GoogleAnalytics&&options.services!==false){_loadGA(options.services[service]);}
if(service==nv.Analytics.Engine.QuantCast&&options.services!==false){_loadQC(options.services[service]);}
if(service==nv.Analytics.Engine.Snowplow&&options.services!==false){_loadSN(options.services[service]);}}}}
_trackFromCookies();if(options.user){$this.identify();}
while(_queuedBeforeInit.length>0){var call=_queuedBeforeInit.shift();$this[call[0]].apply($this,call.slice(1));}
_queuedBeforeInit=null;$this.trackRefTag();};$this.identify=function(userObj){if(userObj!=null){_user=userObj;}
if(_user.isAuthenticated){if(_user.isConvertedPortfolioUser){$this.tagUser({membership:"portfolio"});}
else{$this.tagUser({membership:"wiki"});}}
else{$this.tagUser({membership:"none"});}};$this.tagPage=function(tagsHash){_addTag('Page',tagsHash);};$this.tagSession=function(tagsHash){_addTag('Session',tagsHash);};$this.tagUser=function(tagsHash){_addTag('User',tagsHash);};$this.registerPortfolioConversion=function(username,category){if(!username){return;}
var JUST_CONVERTED_COOKIE_NAME='__xpc'+username;var justConvertedCookie=_getCookie(JUST_CONVERTED_COOKIE_NAME);_setCookie(JUST_CONVERTED_COOKIE_NAME,category,30);};$this.trackPortfolioConversion=function(username){if(!username){return false;}
var JUST_CONVERTED_COOKIE_NAME='__xpc'+username;var justConvertedCookie=_getCookie(JUST_CONVERTED_COOKIE_NAME);if(justConvertedCookie){var conversionPixel=new Image();conversionPixel.src='//www.nvadn.com/track/cn?trackerid=7&cb='+username;$this.trackPageView('/account/portfolio/convert');_eraseCookie(JUST_CONVERTED_COOKIE_NAME);return true;}
return false;};$this.trackPageView=function(pagePath){if(pagePath!=undefined){_GAMultiPush(['_trackPageview',pagePath]);if(typeof _snaq!='undefined'){_snaq.push(['trackPageView',pagePath]);}}
else{_GAMultiPush(['_trackPageview']);if(typeof _snaq!='undefined'){_snaq.push(['trackPageView']);}}
var campaignVariables=_getCampaignParamsFromURL();$this.trackCampaign(campaignVariables);$this.trackSource(campaignVariables);};$this.trackSocial=function(network,socialAction,targetUrl,pagePath){_GAMultiPush(['_trackSocial',network,socialAction,targetUrl,pagePath]);};$this.trackFacebook=function(socialAction,targetUrl,pagePath){_GAMultiPush(['_trackSocial','facebook',socialAction,targetUrl,pagePath]);};$this.trackFacebookLike=function(targetUrl,pagePath){_GAMultiPush(['_trackSocial','facebook','like',targetUrl,pagePath]);};$this.trackFacebookSend=function(targetUrl,pagePath){_GAMultiPush(['_trackSocial','facebook','send',targetUrl,pagePath]);};$this.trackCampaign=function(campaignVariables){var isThereACampaign=false;if(!campaignVariables)return;campaignVariables['URL']=document.location.href;for(var key in campaignVariables){$this.trackEvent('Ad campaign hit',campaignVariables);}};$this.trackEvent=function(name,moreInfo,beCareful){if(disregard==true){return false;}
if(typeof _gaq=='undefined'){nv.error("broken for now because GA is not included in header!!!!!!!!!!!!");return false;}
if(beCareful===true){_setEventCookie(name,moreInfo);}
return true;};$this.trackClick=function(elementSelector,eventName,moreInfo){if(typeof _gaq=='undefined'){nv.error("broken for now because GA is not included in header!!!!!!!!!!!!");return false;}
elementSelector=elementSelector.replace(/^#/,'');return true;};$this.trackAction=function(category,action,label,value,beCareful,property){property=(typeof property==="undefined")?"":property;if(typeof _gaq=='undefined'){if(_queuedBeforeInit){_queuedBeforeInit.push(['trackAction'].concat(Array.prototype.slice.call(arguments)));}
else{nv.error("no _gaq but nv.Analytics has already init'ed");}
return false;}
if(beCareful===true){_setActionCookie(category,action,label,value);}
else{_GAMultiPush(['_trackEvent',category,action,label,value]);if(typeof _snaq!='undefined'&&category!='Timer'){_snaq.push(['trackStructEvent',category,action,label,property,value]);}}
return true;};$this.trackEventGA=$this.trackAction;$this.activateUserTracking=function(obfuscatedID){_GAMultiPush(['_setCustomVar',GA_USER_ID_SLOT,'UserID',obfuscatedID,TAG_SCOPE['User']]);};$this.startTimeTracking=function(identifier,frequency){if(frequency==null){frequency=DEFAULT_FREQUENCY;}
if(typeof _signalIds[identifier]!='undefined'){clearTimeout(_signalIds[identifier]);}
_sendSignal(identifier,frequency/2);_signalIds[identifier]=setInterval(function(){_sendSignal(identifier,frequency);},frequency*1000);};$this.stopTimeTracking=function(identifier){if(typeof _signalIds[identifier]!='undefined'){clearInterval(_signalIds[identifier]);}};$this.trackSource=function(campaignVariables){if(campaignVariables!=null&&typeof(campaignVariables['Campaign Source'])!="undefined"){source=campaignVariables['Campaign Source'];_setCookie('Wikinvest_RegSource',source,30);}};analyticsObject.Env={PartnerAnonymous:0,PartnerAuthenticated:1,Embed:2,Internal:3,CNNMoney:4,Sigfig:5,USAToday:7,Yahoo:8};})(nv.Analytics);if(typeof BIOS!='undefined'){BIOS.Ping('Analytics');}
/* /common/analytics/javascript/internal.js*/

/*frontend/mashup/ui/js/tabs.js*/

if(nv.CreateNamespace("nv.UI.Tabs")){nv.UI.Tabs=new function(){var $this=this;var $=nv.JQuery;var initDone=false;$this.OnTabChanging=new nv.Event();$this.OnTabChanged=new nv.Event();$this.Init=function(){if(initDone){return;}
else{initDone=true;}
$("div.nv-tab-control").each(function(){var control=$(this);var controlName=control.attr('rel');control.find("li.nv-tab").click(function(){var tab=$(this);if(tab.hasClass("nv-tab-spacer")){return;}
var controlInitDone=(control.attr('initdone')?true:false);if(tab.hasClass("nv-selected-tab")&&controlInitDone){return;}
var tabName=tab.attr('rel');var oldTab=control.find("li.nv-selected-tab");var oldTabName=oldTab.attr('rel');var eventargs={oldTab:controlInitDone?oldTabName:null,newTab:tabName,control:controlName};$this.OnTabChanging.Trigger(eventargs);oldTab.removeClass("nv-selected-tab");tab.addClass("nv-selected-tab");control.find("div.nv-selected-tab-content").removeClass("nv-selected-tab-content");control.find("div.nv-tab-content[rel="+tabName+"]").addClass("nv-selected-tab-content");control.find("li.nv-tab-spacer-adjacent").removeClass("nv-tab-spacer-adjacent");control.find("li.nv-selected-tab + li.nv-tab-spacer").addClass("nv-tab-spacer-adjacent");control.find("li.nv-tab-spacer + li.nv-selected-tab").prev("li.nv-tab-spacer").addClass("nv-tab-spacer-adjacent");$this.OnTabChanged.Trigger(eventargs);});var selectedTab=control.find("li.nv-selected-tab");if(selectedTab.length>0){selectedTab.click();}
else{selectedTab=control.find("li.nv-tab::first").click();}
control.attr('initdone','1');});};};}
/* /frontend/mashup/ui/js/tabs.js*/

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

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