/********************************* 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 += "
"+text+"
"; 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); }