#!/usr/bin/perl

use strict;

my $table = '#cceecc';
my $odd = '#eeeeaa';
my $even = '#cceecc';
my $heading = '#aaccaa';

sub rewrite_tr
{
    my ( $bg ) = @_;

    if ( /bgcolor/i ) {
	s/bgcolor.*?([>\s])/bgcolor=\"$bg\"$1/i;
    }
    else {
	s/<tr/<tr bgcolor=\"$bg\"/i;
    }
}

sub rewrite_td
{
    my ( $bg ) = @_;

    if ( /bgcolor/i ) {
	s/bgcolor.*?([>\s])/bgcolor=\"$bg\"$1/i;
    }
    else {
	s/<td/<td bgcolor=\"$bg\"/i;
    }
}

sub rewrite_th
{
    my ( $bg ) = @_;

    if ( /bgcolor/i ) {
	s/bgcolor.*?([>\s])/bgcolor=\"$bg\"$1/i;
    }
    else {
	s/<th/<th bgcolor=\"$bg\"/i;
    }
}

sub rewrite_table
{
    my ( $bg ) = @_;

    if ( /bgcolor/i ) {
	s/bgcolor.*?([>\s])/bgcolor=\"$bg\"$1/i;
    }
    else {
	s/<table/<table bgcolor=\"$bg\"/i;
    }
}

my $row = 0;

while( <> ) {

    if ( /<tr/i ) {
	$row++;
    }
    if ( /<td/i ) {
	if ( $row % 2 ) {
	    &rewrite_td( $odd );
	}
	else {
	    &rewrite_td( $even );
	}
    }
    if ( /<th/i ) {
	&rewrite_th( $heading );
    }
    if ( /<table/i ) {
	$row = 0;
	&rewrite_table( $table );
    }

    print;
};
