var FeedSummary = { feed: function() { this.XMLObject = null; } }
var FeaturedFeedEntries = { feed: function() { this.XMLObject = null; } }

        var firstLoad = false
        var firstSearchLoad = false

        function getFeedSummary() 
        {
            if (FeedSummary.feed.XMLObject != null) {
                writeFeedSummary(FeedSummary.feed.XMLObject)
                //alert("using cache")
            } else {
                xmlPath = "latestArticles.aspx"
                //xmlPath += category + ".xml"
            }
            //alert(xmlPath)
            new Ajax.Request(xmlPath,
            {
                method: 'get',
                onSuccess: function(transport) {
                    var response = transport.responseText || "no response text";
                    //alert(response+ "Success! \n\n" + typeof(response));

                    writeFeedSummary(response)
                    FeedSummary.feed.XMLObject = response
                },
                onFailure: function() { alert('Something went wrong...') }
            });
        }
         
         function writeFeedSummary(xmlDoc) {
            
            // convert string to XML object
            //var  = (new DOMParser()).parseFromString(xmlObj, "text/xml");
            var parser = new DOMParser();
            var xmlobjectDoc = parser.parseFromString(xmlDoc, "text/xml");
            var xmlobject = xmlobjectDoc
            // get a reference to the root-element "feed"
            var root = xmlobject.getElementsByTagName('feed')[0];
            var entry = root.getElementsByTagName("entry");
            
            var newsIcon = '<img class="rssSummaryImg" align="left" src="images/ui/icons/newsIcon.jpg">';
            var pressIcon = '<img class="rssSummaryImg"  align="left" src="images/ui/icons/pressIcon.jpg">';
            var specialIcon = '<img class="rssSummaryImg"  align="left" src="images/ui/icons/specialIcon.jpg">';
            
            var divOpenStr = '<div class="listSummaryItem">';
            var divCloseStr = '</div>';
            var spanOpenStr = '<span>';
            var spanCloseStr = '</span>';
            var dividerStr = '<div style="height:  74px; display: inline; float:left; vertical-align: top;">&nbsp;</div>';
            var html = '';
            var shortTitle = "";
            // now get all "entry" tags in the feed
            for (i = 0; i < entry.length; i++) {
                var entryId = entry[i].getElementsByTagName("entryId")[0].childNodes[0].nodeValue;
                var title = entry[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
                try {
                    shortTitle = entry[i].getElementsByTagName("shortTitle")[0].childNodes[0].nodeValue;
                } catch (evt) {

                }
                var publishedISO = entry[i].getElementsByTagName("published")[0].childNodes[0].nodeValue;
                //var pubDate = entry[i].getElementsByTagName("published")[0].childNodes[0].nodeValue;
               var pubDate = isoToStandardDate(publishedISO, 'numeric', '.');
                var summary = entry[i].getElementsByTagName("summary")[0].childNodes[0].nodeValue;
                //var content = getNodeText(entry[i].getElementsByTagName("content")[0].childNodes[0]);
                var content = entry[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
                var feedId = entry[i].getElementsByTagName("feedId")[0].childNodes[0].nodeValue;
                //.nodeValue;

                html += divOpenStr

                switch (feedId) {
                
                case"2":
                    html += newsIcon + dividerStr
                    break;
                case"3":
                    html += pressIcon + dividerStr
                    break;
                case"4":
                    html += specialIcon + dividerStr
                    break;
               
                default:
               
                html += newsIcon + dividerStr
                }
                
                

                html += spanOpenStr + pubDate +'<br \/>';
                html += '<a href="NewsEventsArticle.aspx?articleID=';
                html += entryId;
                html += '"><strong>';
                html += shortTitle.unescapeHTML();
                html += '</strong></a><br \/>';
                html += summary.unescapeHTML();
                html += spanCloseStr + divCloseStr
            }
            var feedSummary = $('feedSummary'); 
                feedSummary.innerHTML = html;
        }

        function getNodeText(xmlNode) {
            if (!xmlNode) return '';
            if (typeof (xmlNode.textContent) != "undefined") return xmlNode.textContent;
            return xmlNode.firstChild.nodeValue;
        }
                
        function formatCategoryName(category) 
        {            
            var re = new RegExp("_", "g");
            var result = category.replace(re, " ");
            return result;
        }
        function randOrd()
        {
            return (Math.round(Math.random())-0.5); 
        }
        function getNewsXML(articleId, archiveYearPassed, feedId, feedName) {


            // check to see if the feedType has been sent in. if not set it.
            if (typeof (feedId) == 'undefined' || feedId == '') {
                feedType = 15;
            }

            // set the feedType
            Article.articles.feedId = feedId;

            // check to see if the feedName has been sent in. if not set it.
            if (typeof (feedName) == 'undefined' || feedName == '') {
                feedName = "Announcements_And_Press_Releases";
            }
            // set the feedName 
            if (Article.articles.feedName == null) {
                Article.articles.feedName = feedName;
            }
            var archiveYear = ''
            //			try {
            //			    var archiveYearFromTag = entryTag.split("-")[1];
            //			    var test = archiveYearFromTag.length;
            //			    //var test = isNaN(Number(archiveYearFromId));
            //			   // alert("id has a year = " + archiveYearFromId);
            //			    archiveYear = entryTag.split("-")[0]
            //			    isArchive = true;
            //			} catch (err) {
            //			//alert("err.description: " + err.description)
            //			}

            // check to see if the articleList has been filled with our array
            //var artIdList = Article.articles.articleList;

            // check to see if articleId has been sent in. if not set it.
            if (articleId == null || typeof (articleId) == 'undefined' || articleId == '') {
                articleId = 0;
            }
            //             else {
            //                articleIndex = artIdList.indexOf(articleIndex);
            //            }




            //var isArchive = false;

            if (Article.articles.XMLObject != null || typeof (Article.articles.XMLObject) != 'undefined') {
                parseNewsFeed(Article.articles.XMLObject, archiveYear, Article.articles.feedName, articleId)
                //alert("using cache")
            } else {

                var xmlPath = ""
                //            if (isArchive) {
                //            //alert("not using cache")
                //                xmlPath = "getArticlesService.aspx?feedId=" + feedType
                //            //xmlPath += "archives/" + archiveYear + "-" + category + ".xml"
                //            } else {
                xmlPath = "LatestArticles.aspx"
                //xmlPath += category + ".xml"
                //            }
                //alert(xmlPath)
                new Ajax.Request(xmlPath,
                {
                    method: 'get',
                    onSuccess: function(transport) {
                        var response = transport.responseText || "no response text";
                        //alert("Success! \n\n" + typeof(response));

                        parseNewsFeed(response, archiveYear, Article.articles.feedName, articleId)
                        Article.articles.XMLObject = response
                    },
                    onFailure: function() { alert('Something went wrong...') }
                });
            }

        }

        function parseNewsFeed(xmlObj, dateRange, category, articleId) {
            //alert(dateRange + " | " + category+ " | " + articleId)
            // convert string to XML object
            //var  = (new DOMParser()).parseFromString(xmlObj, "text/xml");
            var parser = new DOMParser();
            var xmlobjectDoc = parser.parseFromString(xmlObj, "text/xml");
            
            //alert(typeof(xmlobjectDoc))
            var xmlobject = xmlobjectDoc
            // get a reference to the root-element "feed"
            var root = xmlobject.getElementsByTagName('feed')[0];
            // get reference to "title" element
            var title = root.getElementsByTagName("title");
            // get reference to "subtitle" element
            var subtitle = root.getElementsByTagName("short");
            // get reference to "updated" element
            var updated = root.getElementsByTagName("updated");
            // get reference to "i" element
            var id = root.getElementsByTagName("id");
            // get reference to "link alternate" element
            //var linkAlternateLen = root.getElementsByTagName("link")
            var linkAlternate = root.getElementsByTagName("link")[0].getAttribute("alternate");
            // get reference to "link enclosure" element
            //var linkEnclosure = root.getElementsByTagName("link")[1].getAttribute("enclosure");
            // get reference to "author" element
            //var authorName = root.getElementsByTagName("author")[0].getElementsByTagName("name");
            //var authorUri = root.getElementsByTagName("author")[0].getElementsByTagName("uri");
            //var authorEmail = root.getElementsByTagName("author")[0].getElementsByTagName("email");
            //var linkEnclosure = root.getElementsByTagName("link")[1].getAttribute("enclosure");
            // get reference to "channel" element

            var entry = root.getElementsByTagName("entry");
            var entriesArray = new Array();
            if (firstLoad != true) {
                for (i = 0; i < entry.length; i++) {
                    //alert(entry[i].getElementsByTagName("entryId")[0].childNodes[0].nodeValue);
                    var entryIdValue = entry[i].getElementsByTagName("entryId")[0].childNodes[0].nodeValue;
                    //Article.articles.articleList = entryValue

                    entriesArray[i] = entryIdValue
                    //alert(Article.articles.articleList + entry.length)
                }

                Article.articles.articleList = entriesArray;
                if (articleId > 0) {

                    Article.articles.articleListIndex = entriesArray.indexOf(articleId);
                } else {

                    Article.articles.articleListIndex = 0;
                }
                firstLoad = true
            }

            //Article.articles.articleList

            var data = getNewsArticleById(xmlobject, dateRange, category, articleId, entriesArray)
            var categoryName = formatCategoryName(category);
            var categoryTitle = document.getElementById("categoryTitle");
            var articleBody = document.getElementById("articleBody");
            articleBody.innerHTML = data.txt;
            Article.images.imgList = data.imgs;
            Article.images.imgText = data.imgsText;

            categoryTitle.innerHTML = categoryName
            categoryTitle.innerHTML += writeArticleWidget();

        }

        function getNewsArticleById(xmlDoc, dateRange, category, articleId, entriesArray) {
            var root = xmlDoc.getElementsByTagName("feed")[0];


            var entry = root.getElementsByTagName("entry");


            // now get all "entry" tags in the feed and pull the ID
            for (i = 0; i < entry.length; i++) {
                var entryIdTag = entry[i].getElementsByTagName("entryId")[0].childNodes[0].nodeValue;
                var pubTag = entry[i].getElementsByTagName("published")[0].childNodes[0].nodeValue;



                entryCurId = entryIdTag;
                //var category = "";
                //                var articleIdNum = "";
                archiveYear = pubTag.split("-")[0];
                if (typeof (archiveYear) == 'undefined' || archiveYear == '')
                    archiveYear = '';

                //                if (typeof (entryCurId == 'undefined') {
                //                    category = entryCurId.split(".")[0]; 
                //                    articleIdNum = entryCurId.split(".")[1];
                //                } else {

                //                category = entryCurId.split("-")[1].split(".")[0];
                //                    articleIdNum = i.toString();

                //                }
                //entryId = curId.split(",")[1];
                var id = entry[i].getElementsByTagName("entryId")[0].childNodes[0].nodeValue;
                // entryId = id.split(", ")[1];




                //alert(entriesArray.indexOf(articleId));
                if (i == entriesArray.indexOf(articleId)) { 
                    var title = entry[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
                    // in the "item" we have a description, so get that
                    var published = entry[i].getElementsByTagName("published")[0].childNodes[0].nodeValue;
                    var pubDate = isoToStandardDate(published, "numeric", ".");
                    //var summary = entry[i].getElementsByTagName("summary")[0].childNodes[0].nodeValue;
                    // we also get the "pubDate" element in the "item"
                    //var content = entry[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
                    var content = getNodeText(entry[i].getElementsByTagName("content")[0]) //.nodeValue;
                    var imgLen = entry[i].getElementsByTagName("cfns:image")

                    var imgList = new Array();
                    var imgText = new Array();
                    for (j = 0; j < imgLen.length; j++) {
                        imgList[j] = trimASPImagePath(entry[i].getElementsByTagName("cfns:image")[j].getAttribute("href"));
                        imgText[j] = entry[i].getElementsByTagName("cfns:image")[j].getAttribute("mediaDescription");

                    }
                    var html = '';
                    html += '<div class="fullArticle">';
                    html += '<div class="articleTitle">' + title.unescapeHTML() + '<\/div>';
                    if (category == "news") {
                        html += '<img align="left" src="images\/ui\/icons\/newsIcon.jpg" class="rssSummaryImg"\/>';
                        html += '<h3>&nbsp;<\/h3>';
                    }
                    if (category == "news") {
                        html += '<span>' + pubDate + '<br\/>';
                        html += '<\/span>';
                    }
                    html += content.unescapeHTML()
                    html += '&nbsp;<\/div>';

                    return { txt: html, imgs: imgList, imgsText: imgText };
                }
            }
        }

        function getFeaturedFeedEntries() 
        {
            if (FeaturedFeedEntries.feed.XMLObject != null) 
            {
                writeFeaturedFeedEntries(FeaturedFeedEntries.feed.XMLObject); alert("using cache");                
            }
            else 
            {
                xmlPath = "FeaturedFeedEntries.aspx"; //alert(xmlPath);
                new Ajax.Request(xmlPath,
                {
                    method: 'get',
                    onSuccess: function(transport) {
                        var response = transport.responseText || "no response text";
                        //alert(response+ "Success! \n\n" + typeof(response));

                        writeFeaturedFeedEntries(response);
                        FeaturedFeedEntries.feed.XMLObject = response;
                    },
                    onFailure: function() { alert('Something went wrong...') }
                });
            }
        }
        function writeFeaturedFeedEntries(xmlDoc) 
        {
            // convert string to XML object
            var parser = new DOMParser();
            var xmlobjectDoc = parser.parseFromString(xmlDoc, "text/xml");
            var xmlobject = xmlobjectDoc
            
            // get a reference to the root-element "feed"
            var root = xmlobject.getElementsByTagName('feed')[0];
            var entry = root.getElementsByTagName("entry");

            var newsIcon = '<img class="rssSummaryImg" align="left" src="images/ui/icons/newsIcon.jpg">';
            var pressIcon = '<img class="rssSummaryImg"  align="left" src="images/ui/icons/pressIcon.jpg">';
            var specialIcon = '<img class="rssSummaryImg"  align="left" src="images/ui/icons/specialIcon.jpg">';

            var divOpenStr = '<div class="listSummaryItem">';
            var divCloseStr = '</div>';
            var spanOpenStr = '<span>';
            var spanCloseStr = '</span>';
            var dividerStr = '<div style="height:  74px; display: inline; float:left; vertical-align: top;">&nbsp;</div>';
            var html = '';
            var shortTitle = "";
            // now get all "entry" tags in the feed
            for (i = 0; i < entry.length; i++) {
                var entryId = entry[i].getElementsByTagName("entryId")[0].childNodes[0].nodeValue;
                var title = entry[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
                try {
                    shortTitle = entry[i].getElementsByTagName("shortTitle")[0].childNodes[0].nodeValue;
                } catch (evt) {

                }
                var publishedISO = entry[i].getElementsByTagName("published")[0].childNodes[0].nodeValue;
                var pubDate = isoToStandardDate(publishedISO, 'numeric', '.');
                var summary = entry[i].getElementsByTagName("summary")[0].childNodes[0].nodeValue;
                var content = entry[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
                var feedId = entry[i].getElementsByTagName("feedId")[0].childNodes[0].nodeValue;
                
                html += divOpenStr

                switch (feedId) {
                    case "2":
                        html += newsIcon + dividerStr
                        break;
                    case "3":
                        html += pressIcon + dividerStr
                        break;
                    case "4":
                        html += specialIcon + dividerStr
                        break;
                    default:
                        html += newsIcon + dividerStr
                }

                html += spanOpenStr + pubDate + '<br \/>';
                html += '<a href="NewsEventsArticle.aspx?articleID=';
                html += entryId;
                html += '"><strong>';
                html += shortTitle.unescapeHTML();
                html += '</strong></a><br \/>';
                html += summary.unescapeHTML();
                html += spanCloseStr + divCloseStr
            }
            
            var feedSummary = $('feedSummary');
            feedSummary.innerHTML = html;
        }