#!/usr/bin/env python

import os #, md5 #, cStringIO
from PythonInsideHTML import PIH

#from os import environ
#from urllib import quote, unquote
#from string import strip
#import Cookie
from cgitools import isOnline, cgi_token
import cgitb; cgitb.enable(display=0, logdir='/tmp')

#pih_vars = {}
			
#index_html = open('ui_logon.html','rt')
cgi_token = "Content-type:text/html\n\n"
pih_dir = 'pages'
guest_page = 'ui_guestpage.pih'
user_page = 'ui_userpage.pih'
default_page = guest_page
page_dict = {'logon':'ui_logon.pih', 'register':'ui_register.pih', 'upload':'ui_upload.pih', 'userpage':'ui_userpage.pih', 'analyze':'ui_analyze.pih', 'analyze_linear_affy':'ui_analyze_linear_affy.pih', 'analyze_linear_dual':'ui_analyze_linear_dual.pih', 'browse':'ui_browse.pih', 'userinfo':'ui_userinfo.pih', 'userfunc':'ui_userfunc.pih', 'guestfunc':'ui_guestfunc.pih', 'userwin':'ui_userwin.pih', 'intro':'ui_intro.pih', 'normPCA':'ui_normpca.pih', 'manage':'ui_manage.pih', 'userprofile':'ui_profile.pih'} # pages not present in this dict should be found in pih_dir directly
guest_allowed_pages = {'logon':'ui_logon.pih', 'register':'ui_register.pih', 'intro':'ui_intro.pih', 'guestfunc':'ui_guestfunc.pih'}

#cookies = getCookiesForServer()
#if CookieJar.has_key('username'): pih_vars['username'] = CookieJar['username'] 

# decide which page according to user logon state 
#print cgi_token

on_line = isOnline()
request_page = os.getenv('PATH_INFO') # 'REQUEST_STRING'
#open('tmpfile.txt', 'a').write("site_0"+os.getenv('REQUEST_URI')+'\n')
if request_page and len(request_page)>1:
	page = request_page[1:]
	if on_line:
		if page_dict.has_key(page): page = page_dict[page] 
	else: page = guest_allowed_pages.get(page, default_page)
else:
	if on_line: page = user_page
	else:	page = default_page

page = os.path.join(pih_dir, page)

#fpage = open(page, 'rt')
#memo_page = cStringIO.StringIO()
#memo_page.write(fpage.read())
#fpage.close()

print cgi_token
#first_line = index_html.readline()
#if cgi_token.strip() != first_line.strip(): print first_line
#for line in index_html.readlines(): print line,

#open('/tmp/tmpfile.py', 'w').write(PIH(page).pythonCode())

#print page
#print CookieJar
#if CookieJar.has_key('user_name'): print '<p>',CookieJar['user_name']
#if CookieJar.has_key('online'): print '<p>',CookieJar['online']

#print PIH(page).pythonCode().replace('\n','<br>')

#if request_page[1:] != 'analyze':
#	import traceback
#	try:

exec PIH(page).pythonCode()

#	except:
#		#import traceback
#		traceback.print_exc()
#		raise
#	sys.exit(0)

#sys.exit(0)
#memo_page.close()

#import cgi
#print cgi.print_environ()
#print '\n\n'
#print cgi.print_environ_usage()

