# Citi Card
#
# Douglas Thrift
#
# $Id$

from datetime import datetime
import re
import website

class Bank(website.Website):
	def __init__(self, username, password, debug):
		website.Website.__init__(self, debug)

		self.browser.open('https://www.citicards.com/')
		self.browser.select_form(name = 'LOGIN')

		self.browser['USERNAME'] = username
		self.browser['PASSWORD'] = password

		self.browser.submit()

	def __call__(self, account):
		payment_due = re.compile(r'[A-Z][a-z]{2}\. \d{1,2}, \d{4}')

		try:
			return datetime.strptime(payment_due.search(self.Soup(self.browser.follow_link(text_regex = account)).find(text = re.compile('Payment Due')).findNext(text = payment_due)).group(0), '%b. %d, %Y').date()
		finally:
			self.browser.back()
