#!/usr/bin/env python

import sys, os
from PythonInsideHTML import PIH

import cgitb; cgitb.enable(display=0, logdir='/tmp')

from cgitools import *
from tools import decodeStr

#namemap = {'slides':'intensity_file', 'gal.file.name':'gal_file', 'WithinArray.Nor':'norm_in_array',
#	'BetweenArra.Nor':'norm_bt_array', 'Output.Format':'output_format', 'BG.Sub':'bg_substraction',
#	'MA.File.Format':'intensity_format', 'Num.of.Dup':'replicates_in_array'} 
namemap = dict(zip(namemap_limma_linear.values(), namemap_limma_linear.keys()))

req_id = os.getenv('PATH_INFO')
if req_id: req_id = decodeStr(req_id[1:])
if not req_id: exitWithInfo('No request need to load.')

## SAVE user_params to database
#import MySQLdb, cPickle
#from db_vars import *
#exec open('db').read()
#connection = MySQLdb.connect(host=host, db=db, port=port, user=user, passwd=passwd)
#cursor = connection.cursor()
#sql_statement = 'SELECT req_name, req_info, category FROM requests WHERE req_id="%s"' % req_id
#n = cursor.execute(sql_statement)
#if not n: 
#	cursor.close()
#	connection.close()
#	exitWithInfo('No request with ID ('+req_id+') in the database')
#req_name, req_info, req_type = cursor.fetchone()
#user_params = cPickle.loads(req_info)
#cursor.close()
#connection.close()

#sql_statement = 'SELECT req_name, req_info, category FROM requests WHERE req_id="%s"' % req_id
sql_statement = 'SELECT requests.req_name, requests.req_info, requests.category FROM requests, users WHERE users.user_name="%s" and users.id=requests.user_id and requests.req_name="%s"' % (username, req_id)
rlt = inquireDB(sql_statement, fetch=True)
if not rlt: exitWithInfo('No request with ID ('+req_id+') in the database')
req_name, req_info, req_type = rlt[0]
import cPickle
user_params = cPickle.loads(req_info)


#print cgi_token
pih_vars = {}
my_values = {}
for k,v in user_params.items():
	kr = namemap.get(k, '') or k.replace('.', '_')
	my_values[kr] = v
	#print '<br>', k, ' --------- ', v
my_values['request_name'] = req_name
pih_vars['my_values'] = my_values

#special parameters
#contrast = my_values.get('contrast', '')
#if type(contrast) is type([]): my_values['contrast'] = ', '.join(contrast)

if req_type == TYPE_NORM_ANALYSIS or req_type==TYPE_LINEAR_DUAL:
	page = 'pages/ui_analyze_linear_dual.pih'
elif req_type == TYPE_LINEAR_AFFY:
	page = 'pages/ui_analyze_linear_affy.pih'
elif req_type == TYPE_NORMPCA:
	page = 'pages/ui_normpca.pih'
else:
	exitWithInfo('No such a page')

print cgi_token
#import traceback
#pc = PIH(page).pythonCode()
#open('/tmp/tmpfile.py', 'w').write(pc)
try:
	exec PIH(page).pythonCode()
	#from tmpfile import *
	#for k,v in my_values.items(): print '<br>', k, '   :    ', v
except:
	#for k,v in my_values.items(): print '<br>', k, '   :    ', v
	#traceback.print_exc()
	raise

