# -*- coding: utf-8 -*-
import sys
import os


def CreateHtml(tableId, dataType, fPath, rows, titles, pos):
    logstr = ""
    if len(rows) != 0:
        periodRain = str(rows[-1][4]-rows[0][4])
        selectedPeriod = str(rows[0][0])+' - '+str(rows[-1][0])        
        r_start = rows[0][4]
        r_prev = 0
        lrows = []
       
        for row in rows:
            lrow = list(row)
            r_tmp = lrow[4]
            if lrow[4] == r_start: #if first row
                lrow[4] = lrow[4] - r_start
            else:
                lrow[4] = lrow[4] - r_prev
            r_prev = r_tmp
            lrows.append(lrow)    
        rows = lrows
        
        # convert the data into a table
        chart_table=""
        for row in rows[:-1]:
            rowstr="['{0}', {1}],\n".format(str(row[4]),str(row[pos]))
            chart_table+=rowstr
        row=rows[-1]
        rowstr="['{0}', {1}],\n".format(str(row[4]),str(row[pos]))
        chart_table+=rowstr
        table=chart_table
    else:
        print "No data found"
        return

    # start creating the html page
    logstr += "<html>"+'\n\r'
    logstr += "<head>"+'\n\r'
    logstr += "    </title>"+'\n\r'
    logstr += "    </title>"+'\n\r'
       
    # google chart snippet
    c_code_1 = """
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
          var data = google.visualization.arrayToDataTable(["""
    c_code_2 = str(titles)
    c_code_3 = """
    ,
            %s
            ]);

        var options = {
          title: """
    c_code_4 = dataType
    c_code_5 = """
        };
        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>"""
    c_code = c_code_1+c_code_2+c_code_3+'"'+c_code_4+'"'+c_code_5
    logstr += c_code % (table)
    logstr += '\n\r'
    logstr += "</head>"+'\n\r'
    logstr +=  "<body>"+'\n\r'
    logstr +=  "<h1>EventGhost Climate Data Calculation Graph</h1>"+'\n\r'
    logstr += "<hr>"+'\n\r'
    logstr += "<h2>"+tableId+"</h2>"+'\n\r'
    logstr += "<h5>Selected period: "+selectedPeriod+"</h5>"+'\n\r'
    logstr += "<h5>Total rain during period: "+periodRain+" mm</h5>"+'\n\r'
    logstr += '<div id="chart_div" style="width: 900px; height: 500px;"></div>'+'\n\r'
    logstr += "</body>"+'\n\r'
    logstr += "</html>"+'\n\r'

    fName = tableId+'.html'
    fileHandle = None
    if not os.path.exists(fPath) and not os.path.isdir(fPath):
            os.makedirs(fPath)
    fileHandle = open(fPath+'/'+fName, 'a')
    fileHandle.seek(0)
    fileHandle.truncate()
    fileHandle.write(logstr.encode('utf-8'))
    fileHandle.close()


