var bproxy =1, tList = "", bPremium = 0;
var tickers = "", indexes = "", timeFrame = "y1", startDate, endDate, option = "P";
var nTotal = 0, addLink = "";

// build the url for the chart graphic
function getChartPath(ticker, timeFrame){
	var chartUrl = '';
	
	if(eval(bproxy) == 0){
		chartUrl += "/webgraphs/miniCharts.aspx?Security=";
	}else{
		chartUrl += "http://tools.morningstar.com/webgraphs/miniCharts.aspx?Security=";
	}
	
	chartUrl += ticker;
	
	if(bPremium == 1){
		chartUrl += "&TimeFrame=Y1";
		chartUrl += "&Premium=1";
		chartUrl += "&Options=V&bSize=273&VPrime=";
		chartUrl += ticker;
	}else{
		chartUrl += "&TimeFrame=";
		chartUrl += timeFrame;
	}

	return chartUrl;
}

// not sure if this is used anywhere
// if not, this should be removed
function showFCharts(label, ticker, fundamental, flag){
	var div="<span class='smartChart' mCharts=" + label;
	div += ">(<A  HREF=''>"
	div += label;
	div += "</A>";
	div += "<span class='smartChartTag'>";					
	div += "<div><a href='http://quote.morningstar.com/Quote.html?pgid=hetopquote&ticker="
	div += ticker
	div += "'>Quote</a>&nbsp;|&nbsp;";
	div += "<a href='http://tools.morningstar.com/charts/Mcharts.aspx?Country=USA&Security=";
	div += ticker;
	div += "&sLevel=A'>";
	div += "Charts</a>&nbsp;|&nbsp;";
	div += "<a href='http://socialize.morningstar.com/newsocialize/asp/coverpage.asp?pgid=qtcharthetabdiscuss'>";
	div += "Discuss</a>";
	div += "</div>";
	div += "<div class='quoteData'>";							
	div += "<img  class='quoteTipChart' border='0' src='http://tools.morningstar.com/webgraphs/LoadingScreenAnimation.gif'";
	div += "chartAddress='"
	div += "http://tools.morningstar.com/charts/MStarCharts.aspx?Security=";
	div += ticker
	div += "&CountryId=USA&TimeFrame=Y1&ExchangeId=&LowIndicators=Volume|&Log=&bSize=273&Fundamental=";
	div += fundamental;
	div += "&Options=F&Stock=";
	//div += stocks;
	div += "&FPrime=";
	div += ticker;
	div += "'</div>";		
	div += "<br><br>";
	div += "</span>";	
	if(flag.indexOf("D") >= 0){
		div += fundamental;
		div += ": ";
		div += "<span id='Obj";
		div += nTotal;
		div += "' class='mChartlivequotes' mChartfield='DATA' mChartformat=',2' mChartsymbol='";
		div += ticker;
		div += "'></span>";
		nTotal++;
	}
	if(flag.indexOf("T") >= 0){
		div += "TTM: ";
		div += "<span id='Obj";
		div += nTotal;
		div += "' class='mChartlivequotes' mChartfield='TTM' mChartformat='+2' mChartsymbol='"; // $INDU"></span>,";
		div += ticker;
		div += "'></span>";
		nTotal++;
	}
	div += ") </span>";
	document.write(div);
}

function displayPTip(label, ticker, timeFrame, indexes, stocks, startDate, endDate, events, total, flag, option){
	nTotal++;
	var tSpan = '<span id="ms-article-ticker_' + nTotal + '" class="ms-article-ticker" data-chart-url="' + getChartPath(ticker, timeFrame) + '">(' 
				+ '<a href="http://quote.morningstar.com/Switch.html?ticker=' + ticker +'">' + ticker + '</a>'
				+ ')</span>';
	
	document.write(tSpan);
}

function getAdLink(temp){
	var url = temp;		
	while(url.indexOf("+") >= 0){
		url = url.replace("+", " ");
	}
	url = unescape(url);
	return url;
}

// is this used anywhere?
// if not, should be removed
function toMStar(v){
	 var url = "";
	 if(eval(v) == 0){
		url = "http://quote.morningstar.com/Quote.html?pgid=hetopquote&ticker=" + tickers;
	 }else if(eval(v) == 1){
		url ="http://tools.morningstar.com/charts/Mcharts.aspx?Country=USA&amp;Security=" + tickers;
	 }else if(eval(v)== 2){
		url = "http://socialize.morningstar.com/newsocialize/asp/coverpage.asp?pgid=hetabdiscuss";
	 }
	 document.location.href = url;
}

function setPrice(symbol, nTotal, price){
	var nId = nTotal,	
		tt = [];
	
	if(price.indexOf('^') > -1){
		tt = price.split('^');
	}
	
	if(price.indexOf('FO') > -1){
		// ratings
		var t = 'Morningstar Rating: ';
		switch(eval(tt[0])){
			case 1:
				t += '<img src="http://im.morningstar.com/im/1stars.gif" width="66" height="17" alt="1 Star" />';
				break;
			case 2:
				t += '<img src="http://im.morningstar.com/im/2stars.gif" width="66" height="17" alt="2 Stars" />';
				break;
			case 3:
				t += '<img src="http://im.morningstar.com/im/3stars.gif" width="66" height="17" alt="3 Stars" />';
				break;
			case 4:
				t += '<img src="http://im.morningstar.com/im/4stars.gif" width="66" height="17" alt="4 Stars" />';
				break;
			case 5:
				t += '<img src="http://im.morningstar.com/im/5stars.gif" width="66" height="17" alt="5 Stars" />';
				break;
			default:
				t += 'Not Rated';
		}

		$('#msat-information').html(t);
	}else{
		$('#msat-information').html(tt[0]);
	}
	var toolbar = getTopBar(symbol, price);
	$('#msat-links').html(toolbar);
}

function setAdLink(symbol, nTotal, OAS_query){
	var url;	
		
	if(eval(bproxy) == 1){
		url= "/ajaxProxy/scAdProxy.aspx?ticker=" + symbol + "&OAS_query=" + OAS_query + "&Ajax=yes";
	}else{
		url= "/webgraphs/getAdLink.aspx?ticker=" + symbol + "&OAS_query=" + OAS_query + "&Ajax=yes";
	}
	
	$.ajax({
		url: url,
		dataType: 'text',
		method: 'get',
		success: function(data){
            var p = data.split("|");
			
			setPrice(symbol, nTotal, p[1]);				// loads top links and price
			$('#msat-adwrap').html(getAdLink(p[0]));	// loads the ad
		}
	});
}

function getTopBar(ticker, t){
	var lis = [];
	
	if(t.indexOf('E0') > -1){
		lis.push('<li class="first"><a href="http://quote.morningstar.com/Quote.html?topnav2=hetopquote&ticker=' + ticker + '">Quote</a></li>');
		lis.push('<li><a href="http://tools.morningstar.com/charts/Mcharts.aspx?Country=USA&Security=' + ticker + '&sLevel=A">Charts</a></li>');
		lis.push('<li class="premium"><a href="http://quicktake.morningstar.com/Stock/MorningstarAnalysis.asp?Country=USA&amp;Symbol=' + ticker + '&stocktab=analysis&pgid=qtqnnavanalysis">');
	}else if(t.indexOf('FE') > -1){
		lis.push('<li class="first"><a href="http://quote.morningstar.com/Quote.html?topnav2=hetopquote&ticker=' + ticker + '">Quote</a></li>');
		lis.push('<li class="premium"><a href="http://quicktake.morningstar.com/ETF/MorningstarAnalysis.asp?Country=USA&amp;Symbol=' + ticker + '&stocktab=analysis&pgid=qtqnnavanalysis">');
	}else if(t.indexOf('FO') > -1){
		lis.push('<li class="first"><a href="http://quicktake.morningstar.com/Fund/Snapshot.asp?Country=USA&pgid=hetopquote&Symbol=' + ticker + '">Snapshot</a></li>');
		lis.push('<li><a href="http://quicktake.morningstar.com/Fund/TotalReturns.asp?Country=USA&fdtab=returns&Symbol=' + ticker + '">Total Returns</a></li>');
		lis.push('<li class="premium"><a href="http://quicktake.morningstar.com/Fund/MorningstarAnalysis.asp?Country=USA&amp;Symbol=' + ticker + '&fdtab=analysis">');
	}else{
		lis.push('<li class="first"><a href="http://quote.morningstar.com/Quote.html?topnav2=hetopquote&ticker=' + ticker + '">Quote</a></li>');
		if(t.indexOf("XI") < 0){
			lis.push('<li class="premium"><a href="http://quicktake.morningstar.com/Stock/MorningstarAnalysis.asp?Country=USA&amp;Symbol=' + ticker + '&stocktab=analysis&pgid=qtqnnavanalysis">');
		}
	}
	
	if(t.indexOf('XI') < 0){
		lis.push('Analyst Research</a></li>');
	}
	
	return lis.join('\n');
}

var mCharts = function(){
	return {
		// builds the html for the tooltip
		buildTooltip: function(){
			var ttDiv = ['<div id="ms-article-ticker-tt" class="ms-article-ticker-tt">'];
			ttDiv.push('<div class="msat-ticker">');
			ttDiv.push('<a id="msat-ticker-tab" href="#">&nbsp;</a>');
			ttDiv.push('</div>');
			ttDiv.push('<ul id="msat-links" class="msat-links"></ul>');
			ttDiv.push('<div class="msat-border">');
			ttDiv.push('<div class="msat-chart">');
			ttDiv.push('<h1 id="msat-information"></h1>');
			ttDiv.push('<div class="msat-graph"></div>');
			ttDiv.push('</div>');
			ttDiv.push('</div>');
			ttDiv.push('<div class="msat-adspace">');
			ttDiv.push('<p>Sponsored by:</p>');
			ttDiv.push('<div id="msat-adwrap" class="msat-adwrap"></div>');
			ttDiv.push('</div>');
			$(document.body).append(ttDiv.join('\n'));
		},
		
		setup: function(){
			mCharts.buildTooltip();
			
			var ttDiv = $('#ms-article-ticker-tt'),
				ttDivW = ttDiv.width();
			
			for(var i=1; i<=nTotal; i++){
				(function(){
					var $this = $('#ms-article-ticker_' + i),
						ticker = $this.text().replace(/^\(|\)$/g, '');
					
					$this.mouseenter(function(){
						var offst = $this.offset(),
							winW = $(window).width();
										
						// switch the ticker name and url
						$('#msat-ticker-tab')
							.attr('href', 'http://quote.morningstar.com/Switch.html?ticker=' + ticker)
							.text(ticker);
							
						// load chart image
						mCharts.getChart($this, ttDiv.find('div.msat-graph'));
						
						// load ad
						setAdLink(ticker, i, escape(OAS_query));
						
						// position and display
						ttDiv.css({
							display: 'block',
							top: offst.top - 4,
							left: function(){
								// if tooltip will hang out of viewport
								if(offst.left + ttDivW + 100 > winW){
									$(this).find('div.msat-ticker').css({left: 'auto', right: 0});
									return offst.left - ttDivW + $this.width();
								}else{
									$(this).find('div.msat-ticker').css({left: 0, right: 'auto'});
									return offst.left - 6;
								}
							}
						});
					});
				})();
			}
			
			// hide the tooltip layer on mouseleave
			ttDiv.hover(
				function(){
					clearTimeout(this.tOut);
				},
				function(){
					// gives a bit of delay
					var _this = this;
					this.tOut = setTimeout(function(){
						_this.style.display = 'none';
					}, 250);
				}
			);
		},

		// loads the chart image
		getChart: function(spanEl, chartEl){
			var chartUrl = spanEl.attr('data-chart-url');
			
			if(chartEl[0].firstChild){
				// only load graph if different ticker
				if(chartEl[0].firstChild.src != chartUrl){
					chartEl.empty().append('<img src="' + chartUrl + '" />');
				}
			}else{	// the first time the div is empty
				chartEl.append('<img src="' + chartUrl + '" />');
			}
		}
	}
}(); 
