if (event.type==pygame.KEYDOWN):
		strtext=""
		if (event.key==pygame.K_BACKSPACE):
			if listtxt != []:
				listtxt.pop()
				for character in listtxt: strtext += character
		else:
			listtxt.append(chr(event.key))  #build up the strtext with each key press
			for character in listtxt: strtext += character
		screen.fill(background)
		for value in listtxt:
			if value in numbers: valid = True
			else:
				valid = False; break
		if valid:
			if luhn.ccn_valid(strtext) and len(strtext)>0 and len(strtext)==16:
				ccndiags = "CCN: VALID!"
				ccncolor = [0,255,0]
			else:
				ccndiags = "CCN: INVALID!"
				ccncolor = [255,0,0]
			if luhn.sin_valid(strtext) and len(strtext)==9:
				sindiags = "SIN: VALID!"
				sincolor = [0,255,0]
			else:
				sindiags = "SIN: INVALID!"
				sincolor = [255,0,0]
			if len(strtext) == 15: ccn_csum = "Valid check digit for this as a CCN: " + str(luhn.calc_ccn(int(strtext)))
			else: ccn_csum = " "
			if len(strtext) == 8: sin_csum = "Valid check digit for this as a SIN: " + str(luhn.calc_sin(strtext))
			else: sin_csum = " "
		except TypeError: print "What?"
		except NameError: print "What?"
		except SyntaxError: print "What?"

	if choice == 1:
		print "Random credit card number:",luhn.rand_ccn()
		print "Random Canadian Social Insurance Number:",luhn.rand_sin()

	elif choice == 2:
		validDigits=['0','1','2','3','4','5','6','7','8','9']
		while True:
			try:
				digits = raw_input("Please input a 9 or 16 digit long string of numbers to check for validity: ")
				if len(digits) != 9 and len(digits) != 16: raise UserWarning
				for digit in digits:
					if digit not in validDigits:
						raise ValueError
				break
			except UserWarning:
				print "\'Please input a 9 or 16 digit long string.\'\n\'...input a 9 or 16 digit long string.\'\n\'...9 or 16 digit long string.\'\n\'...9 or 16 digit...\'\nHoo boy, I wonder where you went wrong!"
			except ValueError:
				print "I said OF NUMBERS."
		del validDigits
		sin_num = digits
		ccn_num = digits
		if luhn.ccn_valid(ccn_num): print digits,"is a valid credit card number."
		else: print digits,"is not a valid credit card number."
		if luhn.sin_valid(sin_num): print digits,"is a valid Canadian Social Insurance Number."
		else: print digits,"is not a valid Canadian Social Insurance Number."

	elif choice == 3: break