function getElText(node) {
  if (node.firstChild != null) {
    return (node.firstChild.data);
  }
  return null;
}

function monthAsNum(monthStr) {
  switch (monthStr) {
  case 'January':
    return 1;
  case 'February':
    return 2;
  case 'March':
    return 3;
  case 'April':
    return 4;
  case 'May':
    return 5;
  case 'June':
    return 6;
  case 'July':
    return 7;
  case 'August':
    return 8;
  case 'September':
    return 9;
  case 'October':
    return 10;
  case 'November':
    return 11;
  case 'December':
    return 12;
  }

  return 0;
}

function HideOldDates() {
  var nodes = document.getElementsByTagName('tr');
  var year;
  var month;
  var day;
  
  var d = new Date();
  var curr_day = d.getDate();
  var curr_month = d.getMonth() + 1;  // start months at 1 not 0
  var curr_year = d.getFullYear();

  for (var i = 0; i < nodes.length; i++){ 
    if (nodes[i].className == 'calendar') {
      var children = nodes[i].getElementsByTagName('td');
      for(var j = 0; j < children.length; j++) {
	if (children[j].className == 'tableyear') {
	  var data = getElText(children[j]);
	  if (data != null) {
	    year = data;
	    month = null;
	    day = null;
	  }
	}
	if (children[j].className == 'tablemonth') {
	  var data = getElText(children[j]);
	  if (data != null) {
	    month = monthAsNum(data);
	    day = null;
	  }
	}
 	if (children[j].className == 'tabledate') {
 	  var data = getElText(children[j]);
 	  if (data != null) {
 	    day = data; 
 	  }
 	}
      }
      
      if (year < curr_year) {
	nodes[i].style.display = 'none';
      }
      if ((year == curr_year) && (month != null) && (month  < curr_month)) {
	//alert ("year: " + year + " month: " + month);
	nodes[i].style.display = 'none';
      }	
      // For now ignore day, just display in blocks by month.
    }
  }
}

function ShowAll() {
  var nodes = document.getElementsByTagName('tr');
  for (var i = 0; i < nodes.length; i++){ 
    if (nodes[i].className == 'calendar') {
      nodes[i].style.display = '';
    }
  }
}


