/********************************* news.js for EA.com code by Byron Tredwell (byron(AT)blastradius.com) *********************************/ //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 cont = getElm("cont_"+gridNum); var tabs = getElm("newsEventsTabs"); var scroll = getElm("elScrollbar_"+gridNum); cont.style.marginTop = tabs.offsetHeight + "px"; scroll.style.marginTop = tabs.offsetHeight + "px"; cont.style.height = (cont.offsetHeight - tabs.offsetHeight) + "px"; 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("newsEventsArticle"); 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 = ""; } 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); } function initNewsArticle(dataDCR,id) { 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,""); } var newsItem = 0; // For screenshot viewer 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("/framework/_includes/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("newsEventsArticle"); if(!newsBlock) return; var waitHTML = "
Loading XML...
" writeHTML(newsBlock,waitHTML); } function doNewsArticleReady(dataDCR,id,itemId) { var newsBlock = getElm("newsEventsArticle"); 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 = ""; var content_type_media = "undefined"; var content_type_classification = "undefined"; var content_type_title = "undefined"; 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 == "type") { newsHTML += "
"+HTMLtext+"
"; } if(newsXML.childNodes[i].nodeName == "date") { newsHTML += "
"+HTMLtext+"
"; } if(newsXML.childNodes[i].nodeName == "body") { newsHTML += "
"+HTMLtext+"
"; } if(newsXML.childNodes[i].nodeName == "content_type_media") { content_type_media = getNodeValue(newsXML.childNodes[i]); if(content_type_media == "null"){ content_type_media = "undefined"; } } if(newsXML.childNodes[i].nodeName == "content_type_classification") { content_type_classification = getNodeValue(newsXML.childNodes[i]); if(content_type_classification == "null"){ content_type_classification = "undefined"; } } if(newsXML.childNodes[i].nodeName == "content_type_title") { content_type_title = getNodeValue(newsXML.childNodes[i]); if(content_type_title == "null"){ content_type_title = "undefined"; } } } buildContentType(content_type_media, content_type_classification, content_type_title); writeHTML(newsBlock,newsHTML); if(document.getElementById("screenshots")) { screenshotImages = newsXML.getElementsByTagName("screenshot"); currentImage = 0; showScreenshots(currentImage); }else{ doNewsScrollBarAdjust(); } if(itemId!="") hiliteHeadline(itemId) } function doNewsScrollBarAdjust() { var nac = getElm("newsArticleScrollContainer"); var nal = getElm("newsArticleScroll"); var newsBlock = getElm("newsEventsArticle"); 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){ var headlineLink = getElm("headline_" + itemId); var teaserDiv = getElm("teaser_" + itemId); if(!headlineLink) return; headlineLink.className="on" teaserDiv.className="teaserOn"; if(currItem != "" && itemId != currItem){ getElm("headline_" + currItem).className = "off"; getElm("teaser_" + currItem).className = "teaser"; } currItem = itemId; } // 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); }