function NewsItem(datevar,titlevar,urlvar)
{
  this.title = titlevar;
  this.url = urlvar;
  this.datestr = datevar;
}
function NewsSection(sectionTitle){

 this.title = sectionTitle;
 this.itemsCount = 0;
 this.hasMore = false;
 this.items = new Array();
 this.moreLink = "";
 this.moreTitle = "";


}

NewsSection.prototype.addItems = function addI(itemsArray){
  this.items = itemsArray;
  this.itemsCount = itemsArray.length;
}
NewsSection.prototype.addMoreLink = function addM(moreUrl,moreLinkTitle){
  this.moreLink = moreUrl;
  this.moreTitle = moreLinkTitle;
  this.hasMore = true;
}
NewsSection.prototype.addItem = function addItemFunc(itmDate,itmTitle,itmHref){
	var itmvar = new NewsItem(itmDate,itmTitle,itmHref);
	this.items.push(itmvar);
	this.itemsCount = this.items.length;
}
NewsSection.prototype.toHtml2 = function toH2(){
	alert(this.items[0].title);
}
NewsSection.prototype.toHtml = function toH(){
    sectHead = "<div id=\"ecaNewsSection\">";
	sectTail = "</div>";
	sectStart = "<div id=\"ecaNewsLinks\"><table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\">";

    sectionItemsText = "";
    sectionTitleDisplayText="<div id=\"ecaNewsSectionTitle\">" + this.title + "</div>";
    sectionEndWithMoreLink = "<tr><td id=\"moreRow\" colspan=2 ><span id=\"ecaNewsMore\" ><a href=\""+this.moreLink+"\" >"+this.moreTitle+"</a></span></td></tr></table></div>";
    sectionEndWithoutMoreLink = "<tr><td id=\"moreRow\" colspan=2 >&nbsp;</td></tr></table></div>";
	for(var i=0; i<this.itemsCount; i++){
           currentItem = this.items[i];
       	   sectionItemsText = sectionItemsText + "<tr><td id=\"newscol1\" vAlign= \"top\"   >"+currentItem.datestr+"</td><td id=\"newscol2\" vAlign= \"top\"><a href=\""+currentItem.url+"\">" + currentItem.title +"</a></td></tr>";
	}
	sectionListEnd = (this.hasMore) ? sectionEndWithMoreLink  : sectionEndWithoutMoreLink;
    sectionItemsText = sectHead + sectionTitleDisplayText + sectStart + sectionItemsText + sectionListEnd + sectTail;

    //if(this.hasMore)alert(this.moreTitle+"\n"+this.moreLink);
    //alert(this.title + "\nNumber of Items:" +  this.itemsCount);
    //alert(sectionItemsText);
    return sectionItemsText;


}

function addLoadEvent(func) { 
	var oldonload = window.onload; 
	if (typeof window.onload != 'function') { 
	    window.onload = func; 
	} else { 
	    window.onload = function() { 
	      if (oldonload) { 
	        oldonload(); 
	      } 
	      func(); 
	    } 
	  } 
}
var loadInterval = setInterval("checkNews()", 50);

function checkNews(){
	if(document.getElementById("shortUrlDiv") != null){
		clearInterval(loadInterval);
		if(true == showNews()){
			closeDefaultNewsWidget();
		}
	}
}

//addLoadEvent(showNews);
function showNews(){

	var newsObjs = parseNews();
	var newsStatus = false;
	if(newsObjs != null){
		//alert(newsObjs.length);
	  newsStatus = true;	
	  var newsHtml = "";
      for(k=0;k<newsObjs.length;k++){
         currentSection = newsObjs[k];
         newsHtml += currentSection.toHtml();
		 
      }
	  targetElem = document.getElementById("ecaNewsList");
	  if(targetElem != null){
		targetElem.innerHTML = newsHtml;
	  }
		//alert(newsObjs[0].toHtml());
	}
	return newsStatus;
}

function parseNews(){
  newsSectionMarkers = getElementsByClassName("td","pagetitleUnderLine");
  if(newsSectionMarkers.length < 2){
	  newsSectionMarkersAlt = getElementsByClassName("td","pagetitleLineBlue");
	  if(newsSectionMarkersAlt.length>0){
		  for(var i=0; i<newsSectionMarkersAlt.length; i++)newsSectionMarkers.push(newsSectionMarkersAlt[i]);
	  }
  }
  newsSectionCount = newsSectionMarkers.length;
  var newsSections = new Array();
  var datecol = 0;
  var linkcol = 1;
  for(var j=0; j<newsSectionCount; j++){
    var sectionContainerElem = getNearestContainer(newsSectionMarkers[j], "table");
    if(sectionContainerElem != null){
       //alert(sectionContainerElem.className);
       sectionTitleElem = sectionContainerElem.getElementsByTagName("h1");  //assumes only one h1 element in each news section.
       if(sectionTitleElem != null){
	          //alert(sectionTitleElem[0].innerHTML);
			  var currentSection = new NewsSection(sectionTitleElem[0].innerHTML);
			  newsSections.push(currentSection);
              sectionDataTables = sectionContainerElem.getElementsByTagName("table");
              if(sectionDataTables  != null){
                 sectionItemsData =  sectionDataTables[0];
				 var itemsCount = sectionItemsData.rows.length;				 
				 for(var k=0; k<itemsCount; k++){
					 var newItem = new Array(3);
					 var dateStr = sectionItemsData.rows[k].cells[datecol];
					 if(dateStr != null) {
						 newItem["date"] = dateStr.innerHTML;
						 //alert(dateStr.innerHTML);
					 }
					 var itemLinkElem = sectionItemsData.rows[k].cells[linkcol].getElementsByTagName("a");
					 if(itemLinkElem != null){
						newItem["url"] = itemLinkElem[0].href;
						//alert(itemLinkElem[0].href);
						newItem["title"] = itemLinkElem[0].innerHTML;
					 }
					 //alert(dateStr.innerHTML + "\n" + itemLinkElem[0].href + "\n" + itemLinkElem[0].innerHTML);
					 //alert(newItem);
					 //var moreLinkData = sectionDataTables[1];
					 var moreLinkData = sectionContainerElem.nextSibling;
					 if(moreLinkData.tagName == "TABLE"){
						 var moreLinkElem = moreLinkData.getElementsByTagName("a");
						 if(moreLinkElem != null){
							 currentSection.addMoreLink(moreLinkElem[0].href,moreLinkElem[0].innerHTML);
						 }
					 }
					 //alert("moreLinkData.tagName:  "+moreLinkData.tagName);
					 /*if(moreLinkData != null){
						 alert("hasMore");
						 var moreLinkElem = moreLinkData.getElementsByTagName("a");
						 if(moreLinkElem != null){
							 currentSection.addMoreLink(moreLinkElem[0].href,moreLinkElem[0].innerHTML);
						 }
					 }*/
					 currentSection.addItem(dateStr.innerHTML,itemLinkElem[0].innerHTML,itemLinkElem[0].href);
					 
				 }
                 
              }
       }
    }
  }
  
  return newsSections;
}
function getElementsByClassName(tname, cname){
  var targetElems = new Array();
  var allElems = document.getElementsByTagName(tname);
  var elemCount = allElems.length;
  for(var i=0; i<elemCount; i++){
    if(allElems[i].className == cname) targetElems.push(allElems[i]);
  }
  return targetElems;
}
function getParentElem(targetElem, numberOfLevels){
   var newTarget=targetElem;
   for(var i=0; i<numberOfLevels; i++){
      newTarget = newTarget.parentNode;
   }
   return newTarget;
}
function getNearestContainer(targetElem, targetName){
   var newTarget=targetElem;
   maxLevels = 10;
   for(var i=0; i<maxLevels; i++){
      newTarget = newTarget.parentNode;
      newTargetTagName = newTarget.tagName;
      if(newTargetTagName.toLowerCase() == targetName.toLowerCase())break;
   }
   return newTarget;
}
function closeDefaultNewsWidget(){
  var sectionMarker = document.getElementsByTagName("td");
  for (var i = 0; i < sectionMarker.length; i++) {
    targetElem = sectionMarker[i];
    if(targetElem.className == "pagetitleUnderLine"){
        elemToClose = getNearestContainer(targetElem,"table");
        elemToClose.style.display = "none";
        //alert("elemtoclose:"+elemToHide.tagName)
        //alert("found td=pagetitleUnderline");
    }else if(targetElem.className=="pagetitleLineBlue"){
        elemToClose = getNearestContainer(targetElem,"table");
        elemToClose.style.display = "none";

    }else if(targetElem.getAttribute("width") == "90%"){
        elemToClose = getNearestContainer(targetElem,"table");
        if(elemToClose!=null)elemToClose.style.display = "none";
    }
  }
}
