#!/usr/bin/env python


import os
import sys
import getpass  # just to get user login
import shutil
import datetime
import glob


#===============================================================================
#  Choix
#===============================================================================
#var1='thetao' ;   project_list=['woa2009','woa23','GLORYS','glorys12v1','soda3','cmip5','cmip6','trop']
#var1='so' ;       project_list=['woa2009','woa23','GLORYS','glorys12v1','soda3','cmip5','cmip6','trop']
#var1='uo';        project_list=['GLORYS','glorys12v1','soda3','cmip5','cmip6','trop'] 
var1='vo';        project_list=['GLORYS','glorys12v1','soda3','cmip5','cmip6','trop'] 
#var1='wo' ;       project_list=['cmip5','cmip6']
#var1='o2' ;       project_list=['woa2009','woa23','cmip5','cmip6','trop']
#var1='no3' ;      project_list=['woa2009','woa23','cmip5','cmip6','trop']

Klev1="20-26";  lev1='69m-133m'
Klev2="24";     lev2="97m"
Klev3="18";     lev3="47m"

num_col=4   #   nombre de colonnes pour répéter le nom de l'expérience

# là où se fait la liste des exp...
img_root_dir='../../images/'
suffix="_mean.PRE-PROCESS.png"
initial_dir=img_root_dir+'02_pre-processing'

if (var1 == 'uo') | (var1 == 'vo') : 
   #obs='GLORYS'       #  thetao, so, uo, vo
   obs='glorys12v1'   #  thetao, so, uo, vo
elif (var1 == 'thetao') | (var1 == 'so') | (var1 == 'o2') | (var1 == 'no3'): 
   #obs='woa2009'      #  thetao, so, o2, no3
   obs='woa23'        #  thetao, so, o2, no3
else :
   obs='none'

   
#===============================================================================
#  Definitions
#===============================================================================
local_time1=datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d')    #  '2018-09-19'
local_time2=datetime.datetime.strftime(datetime.datetime.now(), '%d-%b-%Y')    #  '19-Sep-2018'
local_time3=datetime.datetime.strftime(datetime.datetime.now(), 'the %d %b %Y at %H:%M:%S')    #  '20-Jun-2019 at 16:27:43'
local_time4=datetime.datetime.strftime(datetime.datetime.now(), '%Y_%m_%d-%H_%M_%S')    #  '2019_08_12-18_33_13'

script_name=os.path.basename(sys.argv[0])

script_name_root=script_name.split('_3D')[0]

script_dir=os.getcwd()



#===============================================================================
#  Main
#===============================================================================

# to open/create a new html file in the write mode
f1 = open(script_name_root+'_'+var1+'.html', 'w')
  
# the html code which will go in the file GFG.html

html_template_begin1 = """
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">

  <head>
"""
f1.write(html_template_begin1)

f1.write('   <title>Data Processing '+var1+' </title>\n')

html_template_begin2 = """
    <link type="text/css" rel="stylesheet" href="./css/chris_EUC_Upwelling.css" title="feuille de style EUC_Upwelling" />

  <meta charset="UTF-8" /></head>



<!--========================================================================-->
<!--                      Javascript (Open Windows)                         -->
<!--========================================================================-->
  <script type="text/javascript">
    // initialise the visibility check
    function affCache(idDiv) {
    var div = document.getElementById(idDiv);
    if (div.style.display == "none")
    div.style.display = "";
    else
    div.style.display = "none";
    }

    // Chargement images dans window.open
    function ChargeImage1(img1) {
    window.open(img1,img1,'width=1000, height=700, status=no').focus();return false;
    }
  </script>


<!--========================================================================-->
<!--                              BODY                                      -->
<!--========================================================================-->
  <body>
"""
f1.write(html_template_begin2)

f1.write('    <h1>CMIP '+var1+' (X Y)</h1>\n')


html_template_begin3 = """
<!--========================================================================-->
<!--                              TABLE                                     -->
<!--========================================================================-->
<table border="1px">
  <tbody>
"""
f1.write(html_template_begin3)


str1='<tr>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">ORIG</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">PRE_PROCESS</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">grid_reg1x1-lev_natif</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">grid_tr025-lev_natif</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">grid_tr025-lev1_orig</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">-'+obs+'</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">PERU</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">-'+obs+'</td>\n'

if var1 == 'wo' : 
   str1=str1+'\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">grid_tr025</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">-'+obs+'</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">PERU</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">-'+obs+'</td>\n'

str1=str1+'\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">grid_tr025</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">-'+obs+'</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">PERU</td>\n\
<td align="center" rowspan="1" colspan="1" style="background-color: #ffffff">-'+obs+'</td>\n\
</tr>\n'

f1.write(str1)

str2='<tr>\n\
<td align="center" rowspan="1" colspan="4">lev 1 (xy)</td>\n\
<td align="center" rowspan="1" colspan="4">lev 1 natif (lonlat)</td>\n'

if var1 == 'wo' : 
   str2=str2+'\
<td align="center" rowspan="1" colspan="4"> K='+Klev3+' '+lev3+' (lonlat)</td>\n'

str2=str2+'\
<td align="center" rowspan="1" colspan="4"> K='+Klev2+' '+lev2+' (lonlat)</td>\n \
</tr>\n'

num_col_total=12
if var1 == 'wo' : num_col_total=16

f1.write(str2)



os.chdir(initial_dir)
iproject=0
#-------------------------------------------------------------------------------
#   For each project...
#-------------------------------------------------------------------------------
for project in project_list :
   ii=1
   if project == 'GLORYS' : color1='#f8e3ff'
   if project == 'soda3' : color1='#f8e3ff'
   if project == 'woa2009' : color1='#f8e3ff'
   if project == 'cmip5' : color1='#e2ffd7'
   if project == 'cmip6' : color1='#d7fffb'
   if project == 'trop' : color1='#fffed7'
   

   #-------------------------------------------------------------------------------
   #   For each exp_file...
   #-------------------------------------------------------------------------------
#  for exp_file in eval(exp_list) :
   for exp_file in sorted(glob.glob(project+'*'+var1+suffix)) :

      print(exp_file,':')
      if ii%4 == 0 : f1.write(str1);  f1.write(str2)
      f1.write('<tr>\n')

      exp_name=exp_file.split('_'+var1+'_')[0]

      for jj in range(num_col_total) :
#        print(jj, num_col, jj%num_col)
         if (jj%num_col == 00) : 
            if (num_col_total-jj) >= num_col : 
               f1.write('<td align="center" rowspan="1" colspan="'+str(num_col)+'" style="background-color: #ffffff">n°'+str(ii)+': <span class="stabilo2">'+exp_file.replace(suffix,'')+'</span> ('+str(iproject)+')</td>\n')
   
      f1.write('</tr>\n')
      f1.write('<tr>\n')
   

      exp_file1=exp_name+'_'+var1+'_mean.ORIG.png'
### exception pour Oyr dans 01_extract
      if not(os.path.exists(img_root_dir+'01_extract/'+exp_file1)) : 
         print(exp_file1)
         print('   Omon_1m does not exist =>  Oyr_1y')
         exp_file1=exp_file1.replace('Omon_1m','Oyr_1y')
         print(exp_file1,'\n')

### 01_extract sans échelle
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'01_extract/'+exp_file1+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'01_extract/'+exp_file1+'\' /></a></td>\n')

### 02_pre-processing   
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'02_pre-processing/'+exp_file+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'02_pre-processing/'+exp_file+'\' /></a></td>\n')
   
### 03_interp-horiz - reg1x1
      exp_file3=exp_name+'_'+var1+'_mean.grid_reg1x1-lev_natif_xy.png'
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'03_interp-horiz/'+exp_file3+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'03_interp-horiz/'+exp_file3+'\' /></a></td>\n')
   
### 03_interp-horiz - tr025
      exp_file4=exp_name+'_'+var1+'_mean.grid_tr025-lev_natif_xy.png'
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'03_interp-horiz/'+exp_file4+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'03_interp-horiz/'+exp_file4+'\' /></a></td>\n')
   
### 05_lev1_orig  -  K=1  - lev 1 natif
      exp_file6=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig_lonlat_K_1.png'
#     exp_file6=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig_xy_K_1')
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file6+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file6+'\' /></a></td>\n')
   
### 05_lev1_orig  -  K=1  - lev 1 natif - global woa2009
      exp_file61=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig_lonlat-'+obs+'_K_1.png'
#     exp_file61=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig_lonlat-'+obs+'_K_1')
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file61+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file61+'\' /></a></td>\n')
   
### 05_lev1_orig  -  K=1  - lev 1 natif
      exp_file62=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig.PERU_lonlat_K_1.png'
#     exp_file62=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_1')
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file62+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file62+'\' /></a></td>\n')
   
### 05_lev1_orig  -  K=1  - lev 1 natif - PERU woa2009
      exp_file63=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_1.png'
#     exp_file63=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_1')
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file63+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file63+'\' /></a></td>\n')
   

      if var1 == 'wo' : 
   ### 05_lev1_orig  -  K=18 (47m) 
         exp_file71=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig_lonlat_K_'+str(Klev3)+'.png'
         f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file71+'\');">\n')
         f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file71+'\' /></a></td>\n')
   
   ### 05_lev1_orig  -  K=18 (47m)  - global woa2009
         exp_file72=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig_lonlat-'+obs+'_K_'+str(Klev3)+'.png'
         f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file72+'\');">\n')
         f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file72+'\' /></a></td>\n')
   
   ### 05_lev1_orig  -  K=18 (47m)
         exp_file73=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig.PERU_lonlat_K_'+str(Klev3)+'.png'
         f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file73+'\');">\n')
         f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file73+'\' /></a></td>\n')

   ### 05_lev1_orig  -  K=18 (47m)  - PERU woa2009
         exp_file74=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_'+str(Klev3)+'.png'
         f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file74+'\');">\n')
         f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file74+'\' /></a></td>\n')
   

### 05_lev1_orig  -  K=24 (97m) 
      exp_file5=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig_lonlat_K_'+str(Klev2)+'.png'
#     exp_file5=exp_file.replace('PRE-PROCESS','grid_tr025')
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file5+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file5+'\' /></a></td>\n')
   
### 05_lev1_orig  -  K=24 (97m)  - global woa2009
      exp_file51=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig_lonlat-'+obs+'_K_'+str(Klev2)+'.png'
#     exp_file51=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig_lonlat-'+obs+'_K_'+str(Klev2))
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file51+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file51+'\' /></a></td>\n')
   
### 05_lev1_orig  -  K=24 (97m)
      exp_file52=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig.PERU_lonlat_K_'+str(Klev2)+'.png'
#     exp_file52=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_'+str(Klev2))
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file52+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file52+'\' /></a></td>\n')

### 05_lev1_orig  -  K=24 (97m)  - PERU woa2009
      exp_file53=exp_name+'_'+var1+'_mean.grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_'+str(Klev2)+'.png'
#     exp_file53=exp_file.replace('PRE-PROCESS','grid_tr025-lev1_orig.PERU_lonlat-'+obs+'_K_'+str(Klev2))
      f1.write('<td style="background-color: '+color1+'"><a href="javascript:;" onclick="ChargeImage1(\''+img_root_dir+'05_lev1_orig/'+exp_file53+'\');">\n')
      f1.write('    <img class="image1" src=\''+img_root_dir+'05_lev1_orig/'+exp_file53+'\' /></a></td>\n')
   
      f1.write('</tr>\n')
      ii=ii+1
      iproject=iproject+1

os.chdir(script_dir)
#########




html_template_end = """
  <tr>
  </tr>
  </tbody>
</table>

   <!--=================================== Pied de page  ===================================-->
   <br />
   <br />
   <br />

   <table width="100%" border="1px">
      <tbody>
         <tr>
            <td align="center">Webmaster: christophe.hourdin @ locean-ipsl.upmc.fr</td>
         </tr>
         <tr>
            <td align="center">Croco-Agrif-Pisces Projects - <a href="https://pagesperso.locean-ipsl.upmc.fr/cholod/EUC_Upwelling/index.xhtml">Home</a></td>
         </tr>
      </tbody>
   </table>
</body>
</html>
"""


f1.write(html_template_end)
  
# close the file
f1.close()









