#!/usr/local/monitoring/bin/python

import calendar, time, sys
sys.path.insert (1, '/usr/local/monitoring/princeton/lib')
from puseleniumnew import init_selenium

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common import exceptions as EXCEP
from random import sample

if len (sys.argv) != 4:
	print "Usage: %s <URL> <username> <password>" % sys.argv[0]
	sys.exit (3)

url = sys.argv[1]
usr = sys.argv[2]
usrpass = sys.argv[3]

ff, fp = init_selenium()

try:
	ff.implicitly_wait (10)
	ff.get (url)

	bbid = ff.find_element_by_xpath ("//input[@type='radio'][@value='blackboardId']")
	bbid.click()

	loginid = ff.find_element_by_id ("user_id")
	loginid.send_keys (usr)

	loginpass = ff.find_element_by_id ("password")
	loginpass.send_keys (usrpass)

	continuebtn = ff.find_element_by_xpath ("//div[text()='Login']")
	continuebtn.click()

	logout = ff.find_element_by_xpath ("//a[@title='Logout']")
	logout.click()

	WebDriverWait (ff, 10).until (EC.element_to_be_clickable((By.XPATH, "//input[@type='radio'][@value='blackboardId']")))

	time.sleep(5)

except EXCEP.ErrorInResponseException, (resp, msg):
	
	print "ERROR: An error occured communicating with the browser server: Response: %s; Message: %s" % (resp, msg)
	sys.exit (1)

except EXCEP.NoSuchElementException, msg:

	print "ERROR: Unable to locate webpage element. Probably the page loaded incompletely or incorrectly: %s" % msg
	sys.exit (1)

except EXCEP.TimeoutException, msg:

	print "ERROR: Request timed out. Network??? Response: %s" % msg
	sys.exit (1)

except EXCEP.WebDriverException, msg:

	print "ERROR: I don't know what happened. Read this - %s" % msg
	sys.exit (1)

finally:
	ff.quit()

print "Successfully logged on to Blackboard and logged off"

sys.exit (0)

