Event.addBehavior({
  
  'table.alt_rows': function() {
    setAlt(this);
	},
  
  'table.rates': function() {
		this.cellSpacing = 0;
    setAlt(this);
    setHead(this);
    setFooter(this);
	},
	
  'table.features': function() {
    setAlt(this);
	}

});

function setAlt(element) {
  for (i=1; i < element.rows.length; i++) { 
    element.rows[i].className= ((i%2 != 0) ? 'alt' : '');
  }
}

function setHead(element) {
  element.rows[0].className += " head";
  for (i=1; i < element.rows.length; i++) { 
    element.rows[i].cells[0].className += " first";
  }
}

function setFooter(element) {
  if (element.rows[element.rows.length-1].cells[0].className.search('footer') != -1) 
    element.rows[element.rows.length-1].cells[0].colSpan = element.rows[element.rows.length-2].cells.length;
}