/*********************************
news.js for EA.com
code by Byron Tredwell (byron(AT)blastradius.com)
*********************************/
//default previous id
var prevId = null;
//RSS NEWS FEED
function writeNewsFeed(feedType,feedNum)
{
loadXMLDoc("/framework/_includes/rss_conduit.jsp?feed="+feedType,feedType,function(){doNewsRSSReady(feedType,feedNum)},function(){doNewsRSSWait(feedType,feedNum)});
}
function doNewsRSSWait(feedType,feedNum)
{
var newsBlock = getElm(feedType+"_"+feedNum);
if(!newsBlock)
return;
var waitHTML = "
Loading XML...
"
writeHTML(newsBlock,waitHTML);
}
function doNewsRSSReady(feedType,feedNum)
{
feedNum = parseInt(feedNum);
var newsBlock = getElm(feedType+"_"+feedNum);
if(!newsBlock)
return;
if(!xmlDocs[feedType])
return;
var rssXML = xmlDocs[feedType].xml;
if(!rssXML)
return;
clearElm(newsBlock);
var rssItems = rssXML.getElementsByTagName("item");
var feedItemCount = 0;
var newsItem = "";
for(var i=0; i < rssItems.length; i++)
{
var itemNode = rssItems[i];
var text = "";
var href = "";
for(var j=0; j < itemNode.childNodes.length; j++)
{
if(itemNode.childNodes[j].nodeName == "title")
{
text = getNodeValue(itemNode.childNodes[j]);
}
if(itemNode.childNodes[j].nodeName == "link")
{
href = getNodeValue(itemNode.childNodes[j]);
}
}
if(text != "" && href != "")
{
newsItem += "";
feedItemCount++;
}
if(feedItemCount >= feedNum)
{
break;
}
}
writeHTML(newsBlock,newsItem);
}
//TITLE SITE NEWS / EVENTS HELPERS
//init the scrolling for a news list
function initNewsList(gridNum)
{
initScrollingComponent(gridNum);
var comp = getElm("comp_"+gridNum);
var contW = comp.offsetWidth;
var lOne = getElm("news_all_");
var lTwo = getElm("news_community_");
lOne.style.width = (contW-(PADDING+SB_WIDTH)) +"px";
lTwo.style.width = (contW-(PADDING+SB_WIDTH)) +"px";
var lOne = getElm("listOneFirstChild_"+gridNum+"_0");
var lTwo = getElm("listTwoFirstChild_"+gridNum+"_0");
lOne.style.marginTop = "0px";
if(lTwo && typeof lTwo != "undefined"){
lTwo.style.marginTop = "0px";
}
}
function resetNewsListScroller(tab)
{
if(typeof nlScrollbar != "undefined" && firstLoad){
nlScrollbar.reset(tab.pane.id);
var na = document.getElementById("newsEventsArticleFeed");
if(na)
showFirstArticle(tab)
}
firstLoad = true;
}
function showFirstArticle(tab){
sectionTab = tab.id.substring(5,tab.id.length-4);
switch(sectionTab){
case "all":
articleType = "";
break;
case "easports":
articleType = "generic";
break;
case "community":
articleType = "community";
break;
default:
articleType = "";
}
// try/catch in case there are no news items in list
try {
newDataId = eval(articleType + "_firstItemDataId");
newDCR = eval(articleType + "_firstItemDCR");
shortDCR = newDCR.substring(10,newDCR.length-16);
if(shortDCR.length>0){
if(shortDCR.substring(0,1) == "/"){
shortDCR = shortDCR.substring(1,shortDCR.length);
}
}
newItemId = shortDCR + articleType + newDataId;
getNewsArticle(newDCR, newDataId,newItemId);
} catch (ex) {}
}
function initNewsArticle(dataDCR,id)
{
if (id == 'null') {
// check to see if first list item exists if there isn't one specified
try {
newDataId = eval("_firstItemDataId");
newDCR = eval("_firstItemDCR");
if (newDCR == dataDCR) {
// set item id
id = newDataId;
}
} catch (ex) { }
}
var nac = getElm("newsArticleScrollContainer");
nac.style.top = PADDING+"px";
nac.style.height = (nac.parentNode.offsetHeight - (nac.offsetTop+(PADDING*2))) +"px";
nac.style.width = (nac.parentNode.offsetWidth) +"px";
var nal = getElm("newsArticleScroll");
var contW = nac.offsetWidth;
nal.style.width = (contW-WIDTH_W_SCROLL) +"px";
nal.baseWidth = parseInt(nal.style.width);
naScrollbar = new scrollbar("naScrollbar","newsArticleScroll");
naScrollbar.sb.style.top = nac.style.top;
getNewsArticle(dataDCR,id,"0");
}
var newsItem = 0; // For screenshot viewer
var currItem = 0;
function getNewsArticle(dataDCR,id,itemId)
{
if (itemId != "") {
newsItem = itemId;
}
else {
newsItem = 0;
}
var winScroll = getScrollTop(window);
var readableTop = getOffsetProperty("newsEventsArticle","Top")-10;
if(winScroll > readableTop)
window.scrollTo(0,readableTop);
loadXMLDoc("/prostreet/components/xml_news_events_article.jsp?dcr="+dataDCR+"&id="+id,dataDCR+"_"+id,function(){doNewsArticleReady(dataDCR,id,itemId)},function(){doNewsArticleWait(dataDCR,id)});
}
function doNewsArticleWait()
{
var newsBlock = getElm("newsEventsArticleFeed");
if(!newsBlock)
return;
var waitHTML = "Loading XML...
"
writeHTML(newsBlock,waitHTML);
}
function doNewsArticleReady(dataDCR,id,itemId)
{
var newsBlock = getElm("newsEventsArticleFeed");
if(!newsBlock)
return;
var newsXML = xmlDocs[dataDCR+"_"+id].xml;
if(!newsXML)
return;
clearElm(newsBlock);
//find the first ELEMENT_NODE node - its our root (IE will place a PROCESSING_INSTRUCTION_NODE in there)
for(var i=0; i < newsXML.childNodes.length; i++)
{
if(newsXML.childNodes[i].nodeType == Node.ELEMENT_NODE)
{
newsXML = newsXML.childNodes[i];
break;
}
}
var newsHTML = "";
for(var i=0; i < newsXML.childNodes.length; i++)
{
if(newsXML.childNodes[i].nodeType != Node.ELEMENT_NODE)
continue;
var HTMLtext = getNodeValue(newsXML.childNodes[i]);
if(newsXML.childNodes[i].nodeName == "title")
{
newsHTML += ""+HTMLtext+"
";
}
if(newsXML.childNodes[i].nodeName == "subtitle")
{
newsHTML += ""+HTMLtext+"
";
}
if(newsXML.childNodes[i].nodeName == "date")
{
newsHTML += ""+HTMLtext+"
";
}
if(newsXML.childNodes[i].nodeName == "body")
{
newsHTML += ""+HTMLtext+"
";
}
}
writeHTML(newsBlock,newsHTML);
if(document.getElementById("screenshots"))
{
screenshotImages = newsXML.getElementsByTagName("screenshot");
currentImage = 0;
showScreenshots(currentImage);
}else{
doNewsScrollBarAdjust();
}
hiliteHeadline(itemId, id);
}
function doNewsScrollBarAdjust()
{
var nac = getElm("newsArticleScrollContainer");
var nal = getElm("newsArticleScroll");
var newsBlock = getElm("newsEventsArticleFeed");
var viewableH = nac.offsetHeight;
if(viewableH > newsBlock.offsetHeight)
{
naScrollbar.sb.style.display = "none";
nal.style.width = nal.baseWidth + SB_WIDTH +"px";
}else{
naScrollbar.sb.style.display = "block";
nal.style.width = nal.baseWidth +"px";
}
naScrollbar.reset("newsArticleScroll");
}
function hiliteHeadline(itemId, id){
var eventsListDiv = getElm("listOneFirstChild_3_" + itemId).offsetHeight;
var cornersHiLite = getElm("corners_"+id);
cornersHiLite.style.height = eventsListDiv+"px";
if(prevId != null){
getElm("corners_"+prevId).style.display = "none";
}
cornersHiLite.style.display = "block";
prevId = id;
var headlineLink = getElm("headline_" + itemId);
var Div = getElm("_" + itemId);
if(!headlineLink)
return;
headlineLink.className="on";
Div.className="On";
if(currItem != "" && itemId != currItem){
eventsListDiv = getElm("listOneFirstChild_3_" + itemId).className = "content";
getElm("headline_" + currItem).className = "off";
getElm("_" + currItem).className = "";
}
}
// Get the screenshot images.
var screenshotImages = new Array(); // Array of news article screenshot arrays.
var currentImage = 0; // Image currently displayed in screenshot viewer.
var noImages; // Total no. of article screenshots.
function showScreenshots(index) {
if(!screenshotImages[index])
return
if (screenshotImages.length > 0) {
noImages = screenshotImages.length;
var screenshotHTML = '';
screenshotHTML += '
';
screenshotHTML += '';
if (currentImage > 0) {
screenshotHTML += '
<< Prev ';
}
else {
screenshotHTML += '
<< Prev ';
}
if (currentImage < noImages - 1) {
screenshotHTML += ' |
Next >> ';
}
else {
screenshotHTML += ' |
Next >> ';
}
screenshotHTML += " " + (currentImage + 1) + ' of ' + noImages;
screenshotHTML += '
';
if (document.getElementById("screenshots")) {
document.getElementById("screenshots").innerHTML = screenshotHTML;
}
}
}
function showNextImage() {
currentImage++;
showScreenshots(currentImage);
}
function showPrevImage() {
currentImage--;
showScreenshots(currentImage);
}