
var feeds = 
 [
	"/feed/100003s2c8j5stu9cc6.xml",
	"/feed/100003s2c8jc9tu9fbw.xml",
    "/feed/100003s2d3124alc6l1.xml",
	"/feed/100003s2c8j6nlu9ctb.xml",
	"/feed/100003s2d3161ilc8qh.xml",
	"/feed/100003s2c8jc1du9f71.xml",
	"/feed/100003s2c8je5lu9g8h.xml",
	"/feed/100003s2cmh2h2d8jg6.xml",
	"/feed/100003s2c8jbrtu9f46.xml",
    "/feed/100003s2c8jcslu9fqp.xml",
    "/feed/100003s2c8ja3tu9eiu.xml",
    "/feed/100003s2c8jd4tu9fr8.xml",
    "/feed/100003s2c8jcgtu9fmh.xml",
    "/feed/100003s2c8j7f5u9da3.xml",
    "/feed/100003s2c8jai5u9eqt.xml",
	"/feed/100003s2d317falc9su.xml",
    "/feed/100003s2cmh46id8lgf.xml",
    "/feed/100003s2c8j5stu9cc6.xml",
    "/feed/100003s2cci2tm45ufr.xml",
    "/feed/100003s2cci2k645ti1.xml",
    "/feed/100003s2c8j6ttu9cvr.xml"
];
var itemsPerFeed = 40;
var itemsPerPage = 10;
var amountOfPages = 4;

var countForEachPage = [];
var countForEachModel = [];

/********************************************************/
/********************************************************/
/* Gets the RSS feeds, generates HTML with the content **/
/********************************************************/
/********************************************************/
function activateViewAndPage(viewNum, modelNum, pageNum) {
 
	try{
		//hide the  navbar
		$('nb_mvNavigationNewsView').style.display = "none";
		
		//resolve the model we are working on
	    if (modelNum == 'activeModel') {
	        try { 
				modelNum = getCookie("modelNum"); 
			} catch (e) { 
				modelNum = 0; 
			}
	    }
		else {
			setCookie("modelNum", modelNum);
		}
	    
	    if(viewNum == 0){
	 
			$('dview0').style.display = "block";
	        $('mview1').style.display = "none";	

			$('nums00').innerHTML = (pageNum * itemsPerPage + 1) + " &#8212; " + (pageNum * itemsPerPage + itemsPerPage) + " of " + countForEachModel['dview0_items'];
			$('nums01').innerHTML = (pageNum * itemsPerPage + 1) + " &#8212; " + (pageNum * itemsPerPage + itemsPerPage) + " of " + countForEachModel['dview0_items'] ;
			
	        for(var i = 0; i < amountOfPages; i++){
	            if(i == pageNum) {
					$('dlink0'+i).style.fontWeight = "bold";
					$('dlink1'+i).style.fontWeight = "bold";
					$('dview0_itemspage' + i).style.display = "block";
	            } 
	            else {
					$('dlink0'+i).style.fontWeight = "normal";
					$('dlink1'+i).style.fontWeight = "normal";
					$('dview0_itemspage' + i).style.display = "none"; 
	            }
	        }		
	    }
	    else {
	        
			$('dview0').style.display = "none";
	        $('mview1').style.display = "block";
			
			$('nums10').innerHTML = (pageNum * itemsPerPage + 1) + " &#8212; " + (pageNum * itemsPerPage+ itemsPerPage) + " of " + countForEachModel['dview0_items'];
			$('nums11').innerHTML = (pageNum * itemsPerPage + 1) + " &#8212; " + (pageNum * itemsPerPage+ itemsPerPage) + " of " + countForEachModel['dview0_items'];			
			
			if($('view' + modelNum) == null) {
				loadModel(modelNum);
				
				for (var i = 0; i < feeds.length; i++) {
					if (modelNum == i) {
						if($('view' + i)) {
							$('view' + i).style.display = "block";	
						}
		            }
		            else {
						if($('view' + i)) {
							$('view' + i).style.display = "none";
						}
		            }
				}
			}
			else {
			
				var itemsOnAPage = countForEachPage["view"+modelNum+"page"+pageNum];
				
				$('nums10').innerHTML = (pageNum * itemsPerPage + 1) + " &#8212; " + itemsOnAPage + " of " + countForEachModel['view' + modelNum];
				$('nums11').innerHTML = (pageNum * itemsPerPage + 1) + " &#8212; " + itemsOnAPage + " of " + countForEachModel['view' + modelNum];			
				
		        for (var i = 0; i < feeds.length; i++) {
					if (modelNum == i) {
						$('view' + modelNum).style.display = "block";	
						for (var j = 0; j < amountOfPages; j++) {

							//set the pager up
							if($( 'view'+ i + 'page' + j)) {
								$('mlink0'+j).style.display = "inline";
								$('mlink1'+j).style.display = "inline";
							}
							else {
								$('mlink0'+j).style.display = "none";
								$('mlink1'+j).style.display = "none";
							}
							
							//Show - hide a page
		                    if (pageNum == j) {
								$('mlink0'+j).style.fontWeight = "bold";
								$('mlink1'+j).style.fontWeight = "bold";
		                        $('view' + i + 'page' + j).style.display = "block";
		                    }
		                    else {
								$('mlink0'+j).style.fontWeight = "normal";
								$('mlink1'+j).style.fontWeight = "normal";
								if($('view' + i + 'page' + j)) {
									$('view' + i + 'page' + j).style.display = "none";
								}
		                    }
		                }
		            }
		            else {
						if($('view' + i)) {
							$('view' + i).style.display = "none";
						}
		            }
				}
			}
	    }
	} catch(e) {
		//alert('error over here');
	}
}
 
function buildFirstView(){
	
	var model = $('dview0_items');
	model.style.display = "block";
	
	populateViews(model, feeds[0]); //Get the view by date feed URL (first one)
}

//Only for the View By Model or Topic View
function loadModel(modelNum) {

    var model = document.createElement('div');
    model.id = "view" + modelNum;
    $(model).style.display = "none";
    $('mview1_items').appendChild(model);
	
    populateViews(model, feeds[modelNum+1]);
}

//*********************************************
//*** Ajax call and procedure *****************
//*********************************************
// fetch news from server
function populateViews(model, link) {
  new Ajax.Request(link, {
    method: 'GET',
    onComplete: function(transport) {
	    var news_items = retrieveNews(transport.responseXML);
		generateEmptyPages(model, news_items.length);
		insertNewsItems(model, news_items);
    }//,
    //onFailure: function(){alert(link);}//,
    //onException: function(e) {alert(link+"   "+e);}}
	}
  );
}
  
function generateEmptyPages(model, itemsForThisFeed) {

	//generate the page items so they are loaded when the time to show them comes
	for(var i = 0; i < itemsForThisFeed / itemsPerPage; i++) {
    
	    //get a copy of the upper template
		var aPage;
	    if($('_pageTemplate').clone) {
			aPage = $('_pageTemplate').clone();
		}
		else {
			aPage = $('_pageTemplate').cloneNode(true);
		}
	    aPage.innerHTML = $('_pageTemplate').innerHTML;
	    aPage.id = model.id + 'page' + i;
	 
	    if (i == 0) aPage.style.display = "block";
	    
	    model.appendChild(aPage);
	}
}
  
//********* RSS to JSON ********** 
function retrieveNews(responseXML){
 
 root = getXmlElements(responseXML,'rss')[0]; //get the first rss element
 channel = getXmlElements(root,"channel")[0]; //get the first channel element
 items = getXmlElements(channel,"item"); //get the collection of items
 
 var elements = [];
 for(var i = 0; i < items.length ; i++) {
   
   //strip the xml values from the item
   var values = { title: getTitle(items[i],"title"), text: getDescription(items[i],"description"),
                    pubDate :getPubDate(items[i],"pubDate"), link: getLink(items[i],"link")};
   
   elements = elements.concat(values);
 }
 return elements; 
}

 
//*** Function to InsertNews into the HTML ****
function insertNewsItems(model, news_items){
 
	$('mlink00').style.fontWeight = "bold";
	$('mlink10').style.fontWeight = "bold";
	
	countForEachModel[model.id] = news_items.length;
	//(itemsPerPage<itemsOnThisFeed)?itemsPerPage:itemsOnThisFeed +
	  
  for(var i = 0; i < amountOfPages; i++) {
    
	if($(model.id + 'page' + i)) {
		$('mlink0'+i).style.display = "inline";
		$('mlink1'+i).style.display = "inline";
	}
	else {
		$('mlink0'+i).style.display = "none";
		$('mlink1'+i).style.display = "none";
		continue;
	}
	
	var itemsOnThisFeed = news_items.length;
	
	if((i+1)*itemsPerPage <= itemsOnThisFeed) {
		countForEachPage[model.id + 'page' + i] = itemsPerPage * (i+1);
	}
	else {
		countForEachPage[model.id + 'page' + i] = itemsOnThisFeed % ((i+1)*itemsPerPage);
	}
	
	if(i == 0) {
		$('nums00').innerHTML = "1 &#8212; " + countForEachPage[model.id + 'page' + i] + " of " + countForEachModel[model.id];
		$('nums01').innerHTML = "1 &#8212; " + countForEachPage[model.id + 'page' + i] + " of " + countForEachModel[model.id];
		
		$('nums10').innerHTML = "1 &#8212; " + countForEachPage[model.id + 'page' + i] + " of " + countForEachModel[model.id];	
		$('nums11').innerHTML = "1 &#8212; " + countForEachPage[model.id + 'page' + i] + " of " + countForEachModel[model.id];
	}
	
	var page_insertion; 
	if($(model.id + 'page' + i).children) {
		page_insertion = ($(model.id + 'page' + i).children[0]).children[0];
	} else {
    try {
		page_insertion = ($(model.id + 'page' + i).descendants()[0]).descendants()[0];
    } catch (e) {
      page_insertion = $(model.id + 'page' + i).childNodes[1].childNodes[1];
    }
	}
    
    for(var j = 0; j < itemsPerPage; j++) {
     
  	 try{
  	 
        var news_item = document.createElement("li");
        
        //var value1 = $('_newsItemTemplate').innerHTML.replace(/#%7B([a-zA-Z0-9_-]+)%7D/gi, "#{$1}");
        var jsonObjectToEval = news_items[i * itemsPerPage + j];
        news_item.innerHTML = "<div id='_newsItemTemplate' style='display: block; '><p><span id='_pubDate'>"+jsonObjectToEval.pubDate+"</span></p><p><a href='" +jsonObjectToEval.link+"' target='_blank'><strong>"+jsonObjectToEval.title+"</strong></a></p><p><span style='margin-bottom: 7px;' id='_text'>"+jsonObjectToEval.text+"</span></p><hr style='border-top:none;border-left:none;border-right:none;border-bottom: #d0d0d0 dashed 1px;' /></div>";
  	  
    	  news_item.getElementsByTagName('a').href = news_items[i * itemsPerPage + j].link;
    	  
        try {
        
          if((news_item.childNodes[0]).childNodes[2]) { var a = 0; } //this line only breaks on firefox 3.0,
      	
          if(news_item.childNodes[0].children[2].children[0].children[0]) {
                
              try {
                var temp = news_item.childNodes[0].children[2].children[0].children[0].children[0].children[0].children[0].innerHTML;
                news_item.childNodes[0].children[2].children[0].innerHTML = temp;
              } catch (e) {
                var temp = news_item.childNodes[0].children[2].children[0].children[0].children[0].children[0].children[0].outerText;
                news_item.childNodes[0].children[2].children[0].innerHTML = temp;
              }
              
            } else {
              var temp = news_item.childNodes[0].childNodes[3].childNodes[1].childNodes[0].childNodes[0].innerHTML;
              news_item.childNodes[0].childNodes[3].innerHTML = temp;
            }
        } catch(e) {
          var temp = news_item.childNodes[0].childNodes[2].childNodes[0].childNodes[1].childNodes[1].childNodes[0].childNodes[0].childNodes[0].textContent;
          news_item.childNodes[0].childNodes[2].childNodes[0].innerHTML = temp;
        }
    	  
    	  page_insertion.innerHTML = page_insertion.innerHTML + '<li>' + news_item.innerHTML + '</li>';   //insert into page
     
        if (i == 0 && j==0) news_item.style.display = "block";
  	  } catch (e) {
        var a = e;
      }
    }
  }
}
 
 
//Retrieve the xmlElement's content
function getElementText(xmlElement){
 text = xmlElement.text || xmlElement.textContent;
 return text.stripScripts(); //strip scripts and unescape the html
}
function getXmlElements(item, tagName){
  return item.getElementsByTagName(tagName);
}
 
function getText(item, tagName){
  return getElementText(getXmlElements(item,tagName)[0]);
}
 
function getTitle(element){
    return getText(element,"title");
}
function getLink(element){
    return getText(element,"link");
}
function getDescription(element){
    return getText(element,"description");
}
function getPubDate(element){
 
    var date = new Date(getText(element,"pubDate"));
    return dateFormat(date, "mmmm d, yyyy");
}

function activateFirstTab() {
	var dropdown = $('nb_mvNavigationNewsView');
	dropdown.style.display = "none";

	$('ts_tsFirst').style.background = 'url(/images/about/tab-on.jpg)';
	$('ts_btnTab0').style.color = "white";

	$('ts_tsSecond').style.background = 'url(/images/about/tab-off.jpg)';
	$('ts_btnTab1').style.color = "#3c3c3c";

	activateViewAndPage(0, 0, 0);
}
function activateSecondTab() {
	var dropdown = $('nb_mvNavigationNewsView');
	dropdown.style.display = "block";

	$('ts_tsSecond').style.background = 'url(/images/about/tab-on.jpg)';
	$('ts_btnTab1').style.color = "white";

	$('ts_tsFirst').style.background = 'url(/images/about/tab-off.jpg)';
	$('ts_btnTab0').style.color = "#3c3c3c";
}

