#!/usr/local/bin/python3.3

import http.cookies as Cookie
import os
import datetime
import pymysql
import cgitb
import DAPRfunctions as dapr

#dapr.loadConfiguration()

cookie = dapr.get_cookies()
db = dapr.DBConnection()

cgitb.enable()

if cookie:
    print(cookie)
    fname = cookie["fname"].value
    lname = cookie["lname"].value
    name = " ".join((fname, lname))
    admin = cookie["admin"].value
    uid = cookie["uid"].value
    uname = cookie["uname"].value
    
    ## define functions for bed file handling
    class BEDfile:
        bedname = None
        filename = None
        bid = None
        colnames = None
        
        def __init__(self,pbid):
            BEDfile.bid=pbid
            q1 = """
                select name, location, fieldnames from BEDfile where bid = "%s";
                """ % BEDfile.bid    
            bed_entry = db.runQueryFetchOne(q1)
            
            BEDfile.bedname = bed_entry[0]   
            BEDfile.filename = bed_entry[1]
            BEDfile.colnames = bed_entry[2].split(",")
        
        def get_peak_lengths(self):
            lengths = []
            with open(BEDfile.filename) as f:
                for line in f:
                    line_spl = line.split("\t")
                    #the format of each entry is [peak_id,length]
                    lengths.append([line_spl[3],int(line_spl[2]) - int(line_spl[1])])
            return lengths

        def get_cname_index(self,colname):
            cindex=4+self.colnames.index(colname) #assumes that the first 4 columns are chr, start, end, ID.
            return(cindex)

        def get_bed_col(self,colname):
            cindex = self.get_cname_index(colname)
            col_values = []
            
            with open(BEDfile.filename) as f:
                for line in f:
                    line_spl = line.split("\t")
                    #the format of each entry is [peak_id,col_values]
                    col_values.append([line_spl[3],line_spl[cindex]])
            return col_values
    
else:
    print("Location: login.py")
    print("Content-type: text/html\n")
