function addQuotesToPortfolio(baseUrl, dist)
{
	var symbolList = getQuoteSelectionList(",");
	
	if(symbolList.length > 0)
	{
		var qs = new Querystring();
		var addUrl = baseUrl + '?symbs=' + symbolList + 
			'&siteid=' + qs.get('siteid', '') + '&dist=' + dist;
		window.open(addUrl, 'new', 'toolbars=no,scrollbars=yes,resizable=yes,height=375,width=700');			
	}
	else
	{
		alert ("Please select one or more symbols first.");
	}
}

function updateRelatedNewsContent(jsonFormat, relatedNewsContainer, newsText, header, subHeader, moreTitle)
{
	try
	{
		var headlines = eval('(' + jsonFormat + ')');

		if(headlines != null && headlines.Headlines != null &&
			headlines.Headlines.length > 0)
		{
			var currentQS = (new Querystring(new Array('guid'), new Array('dist=RNPullDown'))).toString();

			relatedNewsContainer.innerHTML = "";

			var addedHeadlines = 0;
			// TODO - Jason - 12/16/2005 - I wonder if there's a way you can parse the 
			// current page URL to get the story ID, rather than having story.aspx
			// register a hidden field.
			var currentStoryID = document.forms[0].currentStoryID.value;

			for(var i = 0; i < headlines.Headlines.length; i++)
			{
				var headline = headlines.Headlines[i];

				if(headline.ID != currentStoryID &&
					addedHeadlines < 3)
				{
					var contentLink = document.createElement("A");
					contentLink.innerHTML = headline.Content;
					contentLink.href = headline.ID +
						(currentQS.length > 0 ? "?" + currentQS : "");
					contentLink.className = "RRHeadline";

					relatedNewsContainer.appendChild(contentLink);
					var linkBreak = document.createElement("BR");
					relatedNewsContainer.appendChild(linkBreak);

					var linkBreak2 = document.createElement("BR");
					relatedNewsContainer.appendChild(linkBreak2);	
					addedHeadlines++;															
				}								
			}		

			if(addedHeadlines > 0)
			{
				var bullet = document.createElement("img");

				bullet.alt = "bullet";
				bullet.src = "http://i.mktw.net/images/bullet_dark_sage_5x10.gif";
				bullet.className = "bullet";
				relatedNewsContainer.appendChild(bullet);

				var moreNewsLink = document.createElement("A");
				moreNewsLink.innerHTML = "More news related to " + moreTitle;
				moreNewsLink.href = getMoreNewsHref(header, subHeader, headlines.LinkBase);
				moreNewsLink.className = "RRHeadline";
				relatedNewsContainer.appendChild(moreNewsLink);
				var moreNewsBreak = document.createElement("BR");
				relatedNewsContainer.appendChild(moreNewsBreak);
			}
			else
			{							
				relatedNewsContainer.innerHTML = "";
				relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";													
			}
		}
		else
		{
			relatedNewsContainer.innerHTML = "";
			relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";						
		}
	}
	catch(exception) 
	{ 
		relatedNewsContainer.innerHTML = "";
		relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";
	}}

function getRelatedNewsContent(relatedNewsContainer, newsText, header, subHeader, moreTitle)
{
	var request = getRequest();
	
	try
	{
		request.open("GET", "RelatedNewsBridge.aspx?header=" + header + 
			"&subHeader=" + escape(subHeader), true);		
		request.onreadystatechange = function() {
			if (request.readyState == 4) 
			{
				var response = request.responseText;

				if(response != null)
				{
					updateRelatedNewsContent(response, relatedNewsContainer, newsText, header, subHeader, moreTitle);
				}
			}
		}

		request.send(null);	
	}
	catch(sendException) 
	{ 
		relatedNewsContainer.innerHTML = "";
		relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";
	}
}

function updateCommentaryContent(jsonFormat, relatedNewsContainer, newsText, header, subHeader)
{
	try
	{
		var contentAdded = false;

		var commentators = eval('(' + jsonFormat + ')');
		if(commentators != null && commentators.Commentators != null &&
			commentators.Commentators.length > 0)
		{
			relatedNewsContainer.innerHTML = "";
			var currentQS = (new Querystring(new Array('guid'))).toString();

			// TODO - Jason - 12/16/2005 - I wonder if there's a way you can parse the 
			// current page URL to get the story ID, rather than having story.aspx
			// register a hidden field.
			var currentStoryID = document.forms[0].currentStoryID.value;
			for(var i = 0; i < commentators.Commentators.length; i++)
			{
				var commentator = commentators.Commentators[i];

				if(commentator.Headlines != null && commentator.Headlines.length > 0)
				{
					var headline = null;

					for(var j = 0; j < commentator.Headlines.length; j++)
					{
						if(commentator.Headlines[j].ID != currentStoryID)
						{
							headline = commentator.Headlines[j];
							break;									
						}
					}

					if(headline != null)
					{
						contentAdded = true;
						var commentatorLink = document.createElement("A");
						commentatorLink.innerHTML = commentator.Author.toUpperCase();
						commentatorLink.href = commentators.LinkBase + "news/newsfinder/default.asp?Property=column" +
							(currentQS.length > 0 ? "&" + currentQS : "") + "&value=" + escape(commentator.ColumnName);
						commentatorLink.className = "RRHeadline";
						relatedNewsContainer.appendChild(commentatorLink);

						var commentatorDaySpan = document.createElement("SPAN");
						commentatorDaySpan.innerHTML = "&nbsp;(" + 
							commentator.Day.toUpperCase() + ")";
						relatedNewsContainer.appendChild(commentatorDaySpan);							

						var br = document.createElement("BR");
						relatedNewsContainer.appendChild(br);								

						var contentLink = document.createElement("A");
						contentLink.innerHTML = headline.Content;
						contentLink.href = headline.ID +
							(currentQS.length > 0 ? "?" + currentQS : "");
						contentLink.className = "RRHeadline";

						relatedNewsContainer.appendChild(contentLink);
						relatedNewsContainer.appendChild(br.cloneNode(false));								
						relatedNewsContainer.appendChild(br.cloneNode(false));								
					}
				}
			}						
		}
		else
		{
			relatedNewsContainer.innerHTML = "";
			relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";						
		}		

		if(contentAdded == true)
		{
			var bullet = document.createElement("img");

			bullet.alt = "bullet";
			bullet.src = "http://i.mktw.net/images/bullet_dark_sage_5x10.gif";
			bullet.className = "bullet";
			relatedNewsContainer.appendChild(bullet);

			var moreNewsLink = document.createElement("A");
			moreNewsLink.innerHTML = "More news related to " + subHeader;
			moreNewsLink.href = getMoreNewsHref(header, subHeader, commentators.LinkBase);
			moreNewsLink.className = "RRHeadline";
			relatedNewsContainer.appendChild(moreNewsLink);						
		}
		else
		{
			relatedNewsContainer.innerHTML = "";
			relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";											
		}		
	}
	catch(exception) 
	{ 
		relatedNewsContainer.innerHTML = "";
		relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";
	}
}

function getCommentaryScreenContent(relatedNewsContainer, newsText, header, subHeader)
{
	var request = getRequest();
	
	try
	{
		request.open("GET", "CommentatorsBridge.aspx", true);		
		request.onreadystatechange = function() {
			if (request.readyState == 4) 
			{
				var response = request.responseText;

				if(response != null)
				{
					updateCommentaryContent(response, relatedNewsContainer, newsText, header, subHeader);
				}
				else
				{
					relatedNewsContainer.innerHTML = "";
					relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";						
				}		
			}
		}

		request.send(null);	
	}
	catch(sendException) 
	{ 
		relatedNewsContainer.innerHTML = "";
		relatedNewsContainer.innerHTML = "Related News for " + newsText + " is currently not available.";
	}
}

function changeRelatedNews(newsList)
{
	if((newsList != null) && (newsList.selectedIndex >= 0))
	{
		var relatedNewsContainer = document.getElementById("RelatedNewsInformation");
		var newsText = newsList.options[newsList.selectedIndex].text;
		var newsValues = newsList.options[newsList.selectedIndex].value.split("|");
		var header = newsValues[0];
		var subHeader = newsValues[1];
		var moreTitle = newsValues[2];
		
		if(header == "Commentary" && subHeader == "News &amp; Commentary")
		{
			getCommentaryScreenContent(relatedNewsContainer, newsText, header, subHeader);
		}
		else
		{
			getRelatedNewsContent(relatedNewsContainer, newsText, header, subHeader, moreTitle);
		}
	}
}

function changeRelatedNewsWithJson(jsonFormat, newsText, value)
{
	var relatedNewsContainer = document.getElementById("RelatedNewsInformation");
	var newsValues = value.split("|");
	var header = newsValues[0];
	var subHeader = newsValues[1];
	var moreTitle = newsValues[2];
	updateRelatedNewsContent(jsonFormat, relatedNewsContainer, newsText, header, subHeader, moreTitle);
}

function changeCommentaryWithJson(jsonFormat, newsText, value)
{
	var relatedNewsContainer = document.getElementById("RelatedNewsInformation");
	var newsValues = value.split("|");
	var header = newsValues[0];
	var subHeader = newsValues[1];
	updateCommentaryContent(jsonFormat, relatedNewsContainer, newsText, header, subHeader);
}

function getMoreNewsHref(header, subHeader, linkBase)
{
	var headerType = "";
	var docType = "806";
	
	if(header == "Company")
	{
		headerType = "symb";
	}
	else if(header == "Industry")
	{
		headerType = "mktw-industry";
	}
	else if(header == "Keyword")
	{
		headerType = "word";
	}
	else if(header == "Column")
	{
		headerType = "column";
		docType = "2005";
		subHeader = subHeader.split(":")[0];
	}
	else if(header == "Topic")
	{
		headerType = "mktw-issue";
	}
	else if(header == "Region")
	{
		headerType = "mktw-location";
	}
	else if(header == "Commentary" || header == "PF")
	{
		headerType = "subchannel-code";
		docType = "2005";
		subHeader = "2048";
	}

	return linkBase + "news/newsfinder/default.asp?Property=" + headerType + 
		"&value=" + escape(subHeader) + "&docType=" + docType + "&dist=RNMoreNews";
}

function getGetAlertsHref(header, subHeader, linkBase)
{
	var selectedType = 0;
	
	if(header == "Company")
	{
		selectedType = 2;
	}
	else if(header == "Industry")
	{
		selectedType = 7;
	}
	else if(header == "Keyword")
	{
		selectedType = 5;
	}
	else if(header == "Column")
	{
		selectedType = 3;
	}
	
	return linkBase + "tools/alerts/createalert.asp?alertsymbol=" + escape(subHeader) + 
		(selectedType > 0 ? "&selectedType=" + selectedType : "") + "&dist=RNGetAlerts";
}

function createAlertsForQuotes(baseUrl, dist)
{
	var symbolList = getQuoteSelectionList(" ");
	
	if(symbolList.length > 0)
	{
		var qs = new Querystring();
		var createUrl = baseUrl + '?selectedType=2&alertsymbol=' + symbolList + 
			'&siteid=' + qs.get('siteid', '') + '&dist=' + dist;	
		window.location = createUrl;
	}
	else
	{
		alert ("Please select one or more symbols first.");
	}
}

function getQuoteSelectionList(delimiter)
{
	var quoteList = new Array();
	var index = 0;
	
	for(i = 0; i < quoteSelections.length; i++)
	{
		var quoteSelection = document.getElementById(quoteSelections[i]);
		
		if(quoteSelection.checked == true)
		{
			quoteList[index] = quoteSelection.value;
			index++;
		}
	}

	return escape(quoteList.join(delimiter).replace( /^\s+/g,'').replace(/\s+$/g,''));
}

function changeAd(adUrl, adPlacementId, reset)
{
	var container = document.getElementById(adPlacementId);
	var currentContainer = container.innerHTML;
	
	var request = getRequest();
		
	try
	{
		request.open("GET", adUrl, true);		
		request.onreadystatechange = function() {
			if (request.readyState == 4) 
			{
				var responseAd = request.responseText;

				if(responseAd != null && responseAd.length > 0)
				{
					container.innerHTML = responseAd;			
				}
			
				setTimeout("changeAd(\"" + adUrl + "\",\"" + adPlacementId + "\", " + reset + ")", reset);			
			}
		}

		request.send();	
	}
	catch(sendException) 
	{ 
		setTimeout("changeAd(\"" + adUrl + "\",\"" + adPlacementId + "\", " + reset + ")", reset);			
	}
}

function getRequest()
{
	var xmlHttp = false;
	
	try 
	{
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (msxml2Exception) 
	{
		try 
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch (microsoftException) 
		{
			xmlHttp = false;
		}
	}
	
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') 
	{
		xmlHttp = new XMLHttpRequest();
	}
	
	return xmlHttp; 
}

function toggleSection(disabledSectionNames, disabledLinkNames, enabledSection, enabledLink)
{
	for(de = 0; de < disabledSectionNames.length; de++)
	{
		var disabledSection = document.getElementById(disabledSectionNames[de]);
		if (disabledSection && disabledSection.style)
		{
		    disabledSection.style.display = 'none';
		}
	}

	for(dl = 0; dl < disabledLinkNames.length; dl++)
	{
		var disabledLink = document.getElementById(disabledLinkNames[dl]);
		if (disabledLink && disabledLink.style)
		{
		    disabledLink.style.textDecoration = 'underline';
		    disabledLink.style.color = "";
		}
	}
	
	var enabledSection = document.getElementById(enabledSection);
	if (enabledSection && enabledSection.style)
	{
	    enabledSection.style.display = 'block';
	}
	
	var enabledLink = document.getElementById(enabledLink);
	if (enabledLink && enabledLink.style)
	{
	    enabledLink.style.textDecoration = 'none';
	    enabledLink.style.color = "#000000";
	}
	
	return false;
}

function addToPortfolio (thePage, siteid)
{
   AddPortfolio = window.open(thePage,'new', 'toolbars=no,scrollbars=yes,resizable=yes,height=375,width=700');
}

