#!/usr/bin/python

# Visitor Information - Process Averages

# By Brian Prentice
# August 2000

import sys, urllib, string

def ToLongMonth(Month):
	ShortNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
			 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
	LongNames = ['January', 'February', 'March', 'April',
				 'May', 'June', 'July', 'August',
				 'September', 'October', 'November', 'December']
	return LongNames[ShortNames.index(Month)]

sys.stdin = urllib.urlopen(string.replace(sys.argv[1], '\\', ''))
ls = sys.stdin.readlines()
print 'Content-type: text/html\n'
print '<HTML>';
print '<HEAD><TITLE>Visitor Information</TITLE></HEAD>'
print '<BODY><CENTER>'
print '<H2>Visitor Information</H2>'
print '<TABLE BORDER>'
DayCount = NoDays = MonthCount = 0
for l in ls[1:]:
	dayname, day, month, year, hour, minute, visitor = string.split(l, '\t')
	try:
		Year
	except NameError:
		Year = year
	try:
		Month
	except NameError:
		Month = month
		print '<TR><TH COLSPAN=2>' + ToLongMonth(Month) + ' ' + Year + '</TH></TR>'
		print '<TR><TH>Day</TH><TH>Visits</TH></TR>'
	try:
		Day
	except NameError:
		Day = day
	if (Day == day) and (Month == month):
		DayCount = DayCount + 1
	else:
		print '<TR ALIGN=CENTER><TD>' + str(Day) + '</TD><TD>' + str(DayCount) + '</TD></TR>'
		Day = day
		NoDays = NoDays + 1
		DayCount = 1
	if (Month == month):
		MonthCount = MonthCount + 1
	else:
		print '<TR><TD COLSPAN=2 ALIGN=CENTER>Average per day ' \
											+ str(int(MonthCount / float(NoDays) + 0.5)) + '</TD></TR>'
		print '<TR><TD COLSPAN=2 ALIGN=CENTER>Month Total is ' + str(MonthCount) \
											+ '</TD></TR>'
		print '</TABLE><BR>';
		Month = month
		Year = year
		MonthCount = 1
		NoDays = 0
		print '<TABLE BORDER>'
		print '<TR><TH COLSPAN=2>' + ToLongMonth(Month) + ' ' + str(Year) + '</TH></TR>'
		print '<TR><TH>Day</TH><TH>Visits</TH></TR>'
try:
	Year
except NameError:
	pass
else:
	print '<TR ALIGN=CENTER><TD>' + str(Day) + '</TD><TD>' + str(DayCount) + '</TD></TR>'
	NoDays = NoDays + 1
	print '<TR><TD COLSPAN=2 ALIGN=CENTER>Average per day ' \
											+ str(int(MonthCount / float(NoDays) + 0.5)) + '</TD></TR>'
	print '<TR><TD COLSPAN=2 ALIGN=CENTER>Month Total is ' + str(MonthCount) + '</TD></TR>'
print '</TABLE></CENTER></BODY></HTML>'
