import time
import sys
import datetime
import PyIE

def main():
	try:
		results = []
		ie = PyIE.IE()
		
		ie.safely('Navigate',	'http://www.statcounter.com/')
		
		# get arguments from command-line
		USER_NAME	=	sys.argv[1]
		PASSWORD	=	sys.argv[2]
		
		ie.safely('document.forms.statcounter.username.setAttribute',	('value',	USER_NAME))
		ie.safely('document.forms.statcounter.password.setAttribute',	('value',	PASSWORD))
		ie.safely('document.forms.statcounter.LOGIN_BUTTON.click()')
		
		# scan projects
		table = ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(4).childNodes.item(0)')
		num_projects = int(ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(4).childNodes.item(0).children.length')) - 1
		
		projects = [ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(4).childNodes.item(0).childNodes.item(%d+1).childNodes.item(0).childNodes.item(0).href' % (i)) for i in range(num_projects)]
		
		def remove_html(s):
			while s.find('<') != -1: s = s.replace(s[s.find('<'):s.find('>')+1], '')
			return s.strip()
		
		# now read each project
		for proj_url in projects:
			ie.safely('Navigate', proj_url)
		
			proj_name = ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(1).innertext')
			proj_name = proj_name.split('(')[1].split(')')[0]
			
		#	day = ie.document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(1).childNodes.item(3).childNodes.item(0).childNodes.item(2).childNodes.item(0).innertext
		#	date = ie.document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(1).childNodes.item(3).childNodes.item(0).childNodes.item(2).childNodes.item(1).innertext
		#	page_loads = ie.document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(1).childNodes.item(3).childNodes.item(0).childNodes.item(2).childNodes.item(2).innertext
			stats 		= ie.safely('document.body.childNodes.item(2).all.item(210).innerhtml').splitlines()
			day			= remove_html(stats[0])
			date		= remove_html(stats[1])
			page_loads	= remove_html(stats[2])
			
			# goto popular-pages
			ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(0).childNodes.item(2).childNodes.item(0).childNodes.item(0).click()')
			popular_count = ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(2).childNodes.item(0).childNodes.item(1).childNodes.item(1).innertext')
			popular_url = ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(2).childNodes.item(0).childNodes.item(1).childNodes.item(2).childNodes.item(0).innertext')
			
			# goto came-from
			ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(0).childNodes.item(5).childNodes.item(0).childNodes.item(0).click()')
			came_count = ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(2).childNodes.item(0).childNodes.item(1).childNodes.item(1).innertext')
			came_url = ie.safely('document.body.childNodes.item(2).childNodes.item(0).childNodes.item(0).childNodes.item(2).childNodes.item(2).childNodes.item(0).childNodes.item(1).childNodes.item(2).childNodes.item(0).innertext')
			
			print(proj_name)
			print(day + ', ' + date)
			print('page_loads : %s' % (page_loads))
			print('popular : %s%% - %s' % (popular_count, popular_url))
			print('camefrom: %s%% - %s' % (came_count, came_url))
			if str(proj_url) is not str(projects[:1][0]): print('')
		
		ie.safely('Quit')
	except:
		print('statcounter error')

# our main
if __name__ == "__main__":
    main()
