		
		var bproxy = 1, tList = "", bPremium = 0;
		var tickers = "", indexes="", timeFrame = "y1", startDate, endDate, option = "P";
		var nTotal  = 0, addLink = "";
		var ns4 = (document.layers)? true:false
		var ns6 = (!document.all && document.getElementById)? true:false
		var ie4 = (document.all)? true:false
	    var type = "IE";	//Variable used to hold the browser name
        //detects the capabilities of the browser
		function BrowserSniffer() {
			if (navigator.userAgent.indexOf("Opera")!=-1 &&document.getElementById) type="OP";		//Opera
			else if(navigator.userAgent.toLowerCase().indexOf("safari")!=-1) type="SAF";			
			else if (document.all) type="IE";														//Internet Explorer e.g. IE4 upwards
			else if (document.layers) type="NN";													//Netscape Communicator 4
			else if (!document.all && document.getElementById) type="MO";							//Mozila e.g. Netscape 6 upwards
			else type = "IE";		//I assume it will not get here
		}
	    BrowserSniffer();
       
		function showFCharts(label,ticker,fundamental, flag) 
		{
			//stocks  = convertSTickers(stocks);
		
			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) 
		{	
		   try{
			    nTotal++;
				var div="<span width='315px' class='smartChart' z_index='300' mCharts='" + ticker;
				div += "' ticker='";
				div += ticker;	
				div += "' index='";
				div += nTotal;	
				div += "'>(<A href='http://quote.morningstar.com/Switch.html?ticker=";
				div += ticker;
				div += "'>";// style='text-decoration:underline; color: #000099;' >";
				div += ticker;
				div += "</A>"
				div += "<span class='smartChartTag'>";
				if (type=="MO" || type=="OP" || type =="SAF" ) 	/// firefox			
				   div += "<div class='msSmall' style='background:#666666; height:15; width:305' id='TOP";		
				else
				   div += "<div class='msSmall' style='background:#666666; height:15; width:315;vertical-align: bottom;' id='TOP";	
				div += ticker
				div += nTotal;	
				div += "'>";
				div += "</div>";			
				/// border
				div += "<div class='gBorderDiv'>";				
				div += "<TABLE WIDTH='100%' style='background:#eeeeee;' height='155' BORDER='0' CELLSPACING='0' CELLPADDING='0'>";
				div += "<TR height=20px ><TD colspan=2 width =100% align=left valign=top bgcolor=#eeeeee>"; 
			    if (type=="MO" || type=="OP" || type =="SAF" ) 	/// firefox
				   div += "<div class ='gDiv1' id='";	
				else
				   div += "<div class ='gDiv' id='";   
				if (flag.indexOf("msg") >=0)
				{
					div += ticker
					div += nTotal;			
				}
				div += "'>";		
				//div += " price='<script src=/webgraphs/smartInfo.aspx?Security=";
				//div += ticker;
				//div += "></scrpt>'";
				div += "</div>";
				div += "</TD><TD bgcolor='#eeeeee'><img border='0' width=12 src='http://im.morningstar.com/im/dot_clear.gif'></TD></TR>";
				div += "<TR><TD><img border='0' width=5 src='http://im.morningstar.com/im/dot_clear.gif'></TD><TD width =268 align=center valign=middle bgcolor=#fafae6>"; 
				div += "<img  class='quoteTipChart' border='0' src='http://tools.morningstar.com/webgraphs/images/LoadingScreenAnimation.gif'";
				div += "chartAddress='"
			
				if (eval(bproxy) == 0)
					div += "/webgraphs/miniCharts.aspx?Security=";
				else				  
					div += "http://tools.morningstar.com/webgraphs/miniCharts.aspx?Security=";
				div += ticker
				if (bPremium == 1)
				{
					div += "&TimeFrame=Y1";	
					div += "&Premium=1";		
					div += "&Options=V&bSize=273&VPrime=";
					div += ticker;
				}else{
					div += "&TimeFrame=";
					div += timeFrame;	
				}
				
				div += "'>"	
				div += "</TD><TD bgcolor='#eeeeee'><img border='0' width=12 src='http://im.morningstar.com/im/dot_clear.gif'></TD></TR>";
				div += "</TABLE>";
				/// ad span section
			    if (type=="MO" || type=="OP" || type =="SAF" ) 	/// firefox
		   		  div += "<div align='left' style='background:#eeeeee; height:52; WIDTH=303'>"
		   		else
		   		  div += "<div align='left' style='background:#eeeeee; height:40; WIDTH=303'>"
		   		div += "<TABLE WIDTH='272' height='40' BORDER='0' CELLSPACING='0' CELLPADDING='0'>";
		   		div += "<TR><TD class='msSmall' align= 'left' valign='top' >";
				div += "Sponsored by:</TD><TD align='right' WIDTH='89' valign='middle'>";	  
				div += "<span id='AD";
				div += ticker
				div += nTotal;
				div += "' index='";
				div += ticker
				div += "' ";
				div += "ntotal='";
				div += nTotal;
				div += "' style='background:#eeeeee'></span>";
				div += "</TD></TR></TABLE>";
      	  	 	div += "</div>"	
      	  	 	/// border
      	  	 	div += "</div>";		  	 	
				div += "</span>";
				///end of ad section
				div += "</span>)";		
				document.write(div);
			}
			catch(err)
			{
			//Handle errors here
			}
		}

		function getAdLink(temp)
		{
			var url = temp;		
			while(url.indexOf("+") >=0)
			{
					url = url.replace("+", " ");
			}
			url = unescape(url);
			return url;
		}
		function findObj(divID) {
		  
				if( ns4) { //Netscape layers
					return document.layers[divID];
				}
				if( ns6 ) { //DOM; IE5, NS6, Mozilla, Opera
					return document.getElementById(divID); 
				}
				if(ie4 ) { //Proprietary DOM; IE4
					return document.all[divID]; 
				}
				if( document[divID] ) { //Netscape alternative
					return document[divID]; 
				}
				return false;
		}
	
		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 getXMLHTTP()
		{
			var A=null;
			try{
				A=new ActiveXObject("Msxml2.XMLHTTP")
			}
			catch(e){
				try{
					A=new ActiveXObject("Microsoft.XMLHTTP")
				}
				catch(oc){
					A=null
				}
			}
			if(!A && typeof XMLHttpRequest != "undefined") {
				A=new XMLHttpRequest()
			}
			return A
		}
		function ChangeContent(id, str) {
			if (type=="IE") {
				document.all[id].innerHTML = str;
			}else 
			if (type=="NN") { 
				document.layers[id].document.open();
				document.layers[id].document.write(str);
				document.layers[id].document.close();
			}else 
			if (type=="MO" || type=="OP" || type =="SAF" ) {
				document.getElementById(id).innerHTML = str;
			}
		}
		function setPrice(symbol,nTotal, price)
        {
          
			var nId = nTotal;		
			var mes = price;	
			var t = "", tm =mes;	
			try{
					p = findObj(symbol+nId);
					try{
					if (tm.indexOf("FO") >= 0)
					{	
					    var tt ="";
						if (tm.indexOf("^") >=0)
						   tt = tm.split("^");	
						ChangeContent("TOP"+symbol+nId, getTopBar(symbol,tm));
					    var tbl = "<TABLE WIDTH='210' HEIGHT = '15' BORDER='0' CELLSPACING='0' CELLPADDING='0'><TR><TD class='msSmall12' width='135' valign=middle>";
					    if (eval(tt[0]) == 1)
							t = tbl+"Morningstar&nbsp;Rating:</TD><TD align=left valign=center><img border='0'  src='http://im.morningstar.com/im/1stars.gif'></TD></TR></TABLE>"
					    else if (eval(tt[0]) == 2)
							t = tbl+"Morningstar&nbsp;Rating:</TD><TD align=left valign=center><img border='0'  src='http://im.morningstar.com/im/2stars.gif'></TD></TR></TABLE>"
						else if (eval(tt[0]) == 3)
							t = tbl+"Morningstar&nbsp;Rating:</TD><TD alignleft valign=center><img border='0' src='http://im.morningstar.com/im/3stars.gif'></TD></TR></TABLE>"
						else if (eval(tt[0]) == 4)
							t = tbl+"Morningstar&nbsp;Rating:</TD><TD align=left valign=center><img border='0'  src='http://im.morningstar.com/im/4stars.gif'></TD></TR></TABLE>"
						else if (eval(tt[0]) == 5)
							t = tbl+"Morningstar&nbsp;Rating:</TD><TD align=left valign=center><img border='0' src='http://im.morningstar.com/im/5stars.gif'></TD></TR></TABLE>"
						else
							t = tbl+"Morningstar&nbsp;Rating:</TD><TD align=left class='msSmall12' valign=center>Not Rated</TD></TR></TABLE>"
					}else 
						ChangeContent("TOP"+symbol+nId, getTopBar(symbol,tm));
					}catch(e){}
					if (p != null)
					{
					    try{
							var tt ="";
							if (tm.indexOf("^") >=0)
								tt = tm.split("^");
							if (tm.indexOf("FO") >= 0)
								ChangeContent(symbol+nId, t);
							else
								ChangeContent(symbol+nId, tt[0]);
					     }
					    catch(e){}
					}
			}catch(e){}		
		}
		function setAdLink(symbol,nTotal, OAS_query)
        {
         	var nId = nTotal;	
			var xmlhttp=getXMLHTTP();
			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";
			xmlhttp.onreadystatechange=function() {
				if (xmlhttp.readyState==4) 
				{		
					try{	
						var mes = xmlhttp.responseText;	
						var p   = mes.split("|");
						setPrice(symbol,nTotal, p[1]);
						mes     = p[0];				
						var t     = getAdLink(mes);							
						p = findObj("AD"+symbol+nId); 						
						if (p != null)
						{						
							ChangeContent("AD"+symbol+nId, t);		
						}
					}catch (e){}
				}
			}
			xmlhttp.open("GET",url,true);		
			xmlhttp.send(null)
		}
		function getTopBar(ticker,t)
		{//   var tbl = "<TABLE WIDTH='210' HEIGHT = '15' BORDER='0' CELLSPACING='0' CELLPADDING='0'><TR><TD class='msSmall12' width='135' valign=middle>";
					
		    var 	div = "<TABLE  width='100%' HEIGHT = '15' BORDER='0' CELLSPACING='0' CELLPADDING='0'><TR><TD class='msSmall12' align=left>";
		    div += "<a class='special' href='http://quote.morningstar.com/Quote.html?topnav2=hetopquote&ticker="
			div += ticker
			div += "'><font class='msSmallF'>&nbsp;Quote</font></a>";
			
			if (t.indexOf("E0")>= 0)
			{
			    div += "<font class='msSmallF'>&nbsp;|&nbsp;</font>";
				div += "<a class='special' href='http://tools.morningstar.com/charts/Mcharts.aspx?Country=USA&Security=";
				div += ticker;
				div += "&sLevel=A'>";
				div += "<font class='msSmallF'>Charts</font></a><font class='msSmallF'>&nbsp;|&nbsp;</font>";
				div += "<a class='special' href='http://quicktake.morningstar.com/Stock/MorningstarAnalysis.asp?Country=USA&amp;Symbol=";
			    div += ticker;
			    div += "&stocktab=analysis&pgid=qtqnnavanalysis'>";
			}else if ( t.indexOf("FE")>= 0 )
			{
			    div += "<font class='msSmallF'>&nbsp;|&nbsp;</font>";
				div += "<a class='special' href='http://quicktake.morningstar.com/ETF/MorningstarAnalysis.asp?Country=USA&amp;Symbol=";
			    div += ticker;
			    div += "&stocktab=analysis&pgid=qtqnnavanalysis'>";
			}else if ( t.indexOf("FO")>= 0 )
			{
			    div += "<font class='msSmallF'>&nbsp;|&nbsp;</font>";
				div = "<a class='special' href='http://quicktake.morningstar.com/Fund/Snapshot.asp?Country=USA&pgid=hetopquote&Symbol="
				div += ticker
				div += "'><font class='msSmallF'>Snapshot</font></a><font class='msSmallF'>&nbsp;|&nbsp;</font>";			
				div += "<a class='special' href='http://quicktake.morningstar.com/Fund/TotalReturns.asp?Country=USA&fdtab=returns&Symbol=";
				div += ticker;
				div += "'>";
				div += "<font class='msSmallF'>Total&nbsp;Returns</font></a><font class='msSmallF'>&nbsp;|&nbsp;</font>";
				div += "<a class='special' href='http://quicktake.morningstar.com/Fund/MorningstarAnalysis.asp?Country=USA&amp;Symbol=";
				div += ticker;
				div += "&fdtab=analysis'>";
		
			}else if ( t.indexOf("XI")>= 0 )
			{
			    div += "<font class='msSmall'>&nbsp;<br>&nbsp;</font>";
			}
			if ( t.indexOf("XI")< 0 )	
			{	
				div += "<img  border='0' src='http://im.morningstar.com/im/premium_icon_small.gif'>";
				div += "<font class='msSmallF'>Analyst Research</font></a><font class='msSmallMargin'>&nbsp;</font>";
			}
			div += "</TD></TR></TABLE>";
			return div;
		}
      
		////
		function mCharts() 
		{
			mCharts.hideAllTips = function()
			{
				var arrSpans = document.getElementsByTagName("span");
				for(var i = 0; i < arrSpans.length; ++i)
				{
					try{
						var eltSpan = arrSpans[i];
						if (eltSpan.className == "miniChartToolTipVisible")
							eltSpan.className = "smartChart";
					}catch(e){}
						
				}
				return true;
			}

			mCharts.setPosition = function(element)
			{
				var offsetTrail = element;
				var offsetLeft = 0;
				var offsetTop = 0;
				while (offsetTrail) {
					offsetLeft += offsetTrail.offsetLeft;
					offsetTop += offsetTrail.offsetTop;
					offsetTrail = offsetTrail.offsetParent;
				}
				var visibleTop = 0;
				var visibleBottom = 0;
				var spans = element.getElementsByTagName("span");
				var i;
				if (window.innerHeight)
				{
					visibleTop = window.pageYOffset;
					visibleBottom = window.innerHeight;
				}
				else if (document.documentElement && document.documentElement.scrollTop)
				{
					visibleTop = document.documentElement.scrollTop;
				}
				else if (document.body)
				{
				try{
					visibleTop = document.body.scrollTop
					visibleBottom = document.body.offsetHeight;
				}catch(e){}
				}
			
				for (i = 0; i < spans.length; i++)
				{
					try{
						var subChannel = document.getElementById("subMenu");
						if (spans[i].className == "smartChartTag" && spans[i].style)
						{
							//// For some reason IE is giving the wrong value for offsetTop, that's why the adjustments (100 and 150) are there.  No idea.
							if ((((offsetTop - visibleTop) + spans[i].offsetHeight) > visibleBottom)
								&& ((offsetTop - spans[i].offsetHeight - 100) > visibleTop)
								&& ((offsetTop - spans[i].offsetHeight - 150) > (subChannel.offsetTop + subChannel.offsetHeight)))
							{
								spans[i].style.top = "-" + (spans[i].offsetHeight + 3) + "px";
							}
							else
							{
								spans[i].style.top = "19px";
							}
							//// The 375 is to accomodate for the ad and such
							if ((offsetLeft + spans[i].offsetWidth) > (document.body.offsetWidth - 375) && (offsetLeft - spans[i].offsetWidth) > 0)
							{
								spans[i].style.left = ((element.offsetWidth - spans[i].offsetWidth) - 4) + "px";
							}
							else
							{
								spans[i].style.left = "0";
							}
						}
					}catch(e){}
				}
			}
            //// read charts and price and ads ONLY once.
			mCharts.setup = function()
			{
               try{
				var arrSpans = document.getElementsByTagName("span");
				for(var i = 0; i < arrSpans.length; ++i)
				{
					var eltSpan = arrSpans[i];
					var toolTip = eltSpan.getAttribute("smartChart");					
					if (eltSpan.className == "smartChart")
					{
						var symbol = eltSpan.getAttribute("mCharts");	
						var index  = eltSpan.getAttribute("index");	
						eltSpan.removeAttribute("mCharts");
						eltSpan.onmouseover = function() 
						{						 
							this.className = "miniChartToolTipVisible";
							mCharts.setPosition(this);
							mCharts.getChart(this);	
							return true;
						};
						eltSpan.onmouseout = function() 
						{
							this.className = "smartChart";
							return true;
						};	
						var spanSymbol = document.createElement("span");
						spanSymbol.className = "m symbol";
						var link = document.createElement("a");
						link.href = "http://quote.morningstar.com/Switch.html?ticker=" + symbol;;
					    link.setAttribute('ticker',symbol);
					    link.setAttribute('index',index);
						link.onmouseover = function()
						{
							var idx  = this.getAttribute("index");
						    var tix  = this.getAttribute("ticker");
						    setAdLink(tix,idx, escape(OAS_query));						
 							return true;
						}
						link.appendChild(document.createTextNode(symbol));
						spanSymbol.appendChild(link);
						eltSpan.appendChild(spanSymbol);
					}
				}
				}catch(e){}
			};
		    mCharts.getAds = function(element)
		    {
				var idx  = element.getAttribute("index");
				var tix  = element.getAttribute("ticker");
				setAdLink(tix,idx, escape(OAS_query));	
		    }
			mCharts.getChart = function(element)
			{
				var images = element.getElementsByTagName("img");
				var i;
				try{
					for (i = 0; i < images.length; i++)
					{
						if (images[i].className == "quoteTipChart")
						{
							if (images[i].getAttribute("chartAddress") != "")
							{
								images[i].src = images[i].getAttribute("chartAddress");
								images[i].setAttribute("chartAddress", "");
							}
						}
					}
				}catch(e){}
			}			
		}; 

		mCharts();
		