#!/usr/bin/env python

import cgi,sys,os,time
sys.path.append('/home/acb/null_include')
import linklog

fs = cgi.FieldStorage()

(cyear,cmonth,cday) = time.localtime(time.time())[:3]

what = None
if fs.has_key('what'):
  what = fs['what'].value
else:
  what = 'index'

if fs.has_key('y'):  cyear = int(fs['y'].value)
if fs.has_key('m'):  cmonth = int(fs['m'].value)
if fs.has_key('d'):  cday = int(fs['d'].value)

my_url = os.environ['SCRIPT_URI']


def print_linkframe():
  ts_from = time.mktime((cyear,cmonth,1,0,0,0,0,0,0))
  (y2,m2) = (cyear,cmonth+1)
  if m2 > 12:
    m2 = 1
    y2 += 1
  ts_to = time.mktime((y2,m2,1,0,0,0,0,0,0))
  #print "<H2>links from %d to %d</H2>"%(ts_from, ts_to)
  print "<H2>links from %d/%d</H2>"%(cyear,cmonth)
  print '<UL>'
  for a in linklog.inperiod(ts_from,ts_to):
    (id,url,desc) = a[:3]
    print '<LI><A HREF="%s" TITLE="%s">%s</A></LI>'%(url,desc,desc)
  print '</UL>'

def print_searchframe(searchtext):
  print "<H2>Links matching '%s':</H2>"%searchtext
  print '<UL>'
  for a in linklog.linksmatching(searchtext):
    (id,url,desc) = a[:3]
    print '<LI><A HREF="%s" TITLE="%s">%s</A></LI>'%(url,desc,desc)
  print '</UL>'

def print_navframe(y):
  #print "This is the navigation frame"
  mn = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')
  for i in range(1,12,3):
    for j in range(0,3):
      print '<A HREF="%s?what=links&m=%d&y=%d" TARGET="llog_linkframe">%s</A>'%(my_url,i+j,y,mn[i+j-1])

print """Content-Type: text/html

<HTML><HEAD><TITLE>Linklog: most recent links</TITLE></HEAD>
<BODY>
"""
#print "what = %s<BR>"%what

if what=='links':
  print_linkframe()
elif what=='months':
  print '<B>%d</B><BR>'%cyear
  print_navframe(cyear)
elif what=='search':
  #print 'Search frame goes here:'
  if fs.has_key('q'):
    search = fs['q'].value
  else:
    search = ''
  print_searchframe(search)
  sys.exit(0)
elif what=='index':
  print '<TABLE WIDTH="100%" HEIGHT="100%" BORDER="0"><TR><TD WIDTH="33%" valign="top">'
  print '<A HREF="%s?what=months&y=%d" TARGET="llog_monthframe">%d</A> | '%(my_url,cyear-1,cyear-1)
  print '<A HREF="%s?what=months&y=%d" TARGET="llog_monthframe">%d</A><P>'%(my_url,cyear+1,cyear+1)
  print '<IFRAME NAME="llog_monthframe" SRC="%s?what=months" WIDTH="90%%" FRAMEBORDER="0"></IFRAME>'%my_url
  print """<form action="%s" TARGET="llog_linkframe" method="post">
Search for: <input type="text" name="q" size="24" maxlength="32" />
<input type="submit" value="Go" />
<input type="hidden" name="what" value="search" />
</form>
"""%my_url
  print '</TD><TD WIDTH="66%">'
  print '<IFRAME NAME="llog_linkframe" SRC="%s?what=links" WIDTH="100%%" HEIGHT="100%%" FRAMEBORDER="0"></IFRAME>'%my_url
  print '</TD></TR></TABLE>'
else:
  print "Undefined frame"


print """</BODY></HTML>"""

