source: ether_visual/trunk/save_form/formulaire.jsp.V3 @ 848

Last change on this file since 848 was 17, checked in by cbipsl, 18 years ago

ajout V3

File size: 118.8 KB
Line 
1<%@ page import="fr.acri.norm.*" %>
2
3<%@ page import="java.io.*" %>
4<%@ page import="java.util.*" %>
5<%@ page import="java.lang.*" %>
6<%@ include file="declarations.jsp" %>
7<%@ include file="affectations.jsp" %>
8<%
9VISU_conf conf_visu=new VISU_conf();
10String rep_data=conf_visu.REP_DATA;
11String rep_xml=conf_visu.REP_XML;
12
13out.write("rep_xml="+rep_xml);
14out.write("<br>rep_data="+rep_data);
15/********************************  LISTE DES EXPERIENCES  ***********************************************************/
16
17sql="SELECT distinct exp_name";
18sql+=" FROM ether.dcp_file_class, ether.ether_experiment, ether.dcp_descripteur, ether.dcp_parameter ";
19sql+="WHERE ether_experiment.exp_id=dcp_file_class.exp_id and dcp_descripteur.tpl_id=dcp_file_class.tpl_id ";
20sql+="and dcp_parameter.par_acronym = ether.dcp_descripteur.par_acronym and (isord=0 or isord=2) and associate=-1 ";
21
22if (sel_temp_name!=null && !sel_temp_name.equals("")) sql+="and exp_name like '%"+sel_temp_name+"%' ";
23;sql+=" and dcp_file_class.tpl_id NOT IN (1332,1333,1331) ";
24
25sql+="and exp_name not like '%AMON%' and exp_name not like '%SMR_OF%' and exp_name not like '%ELHYSA%' and exp_name not like '%LIDAR.AND%' and exp_name not like '%LIDAR.REU%'";
26
27sql+="ORDER BY exp_name";
28exp_list=req.get_list(sql,exp_columns0);
29
30if (exp_list==null || exp_list.size()==0) {
31        error_msg="No file class found in the database";
32}
33else {
34        nexp=exp_list.size()/exp_columns0.length;
35        exp_options0="";
36        if (nexp>0) {
37                k=0;
38                for(i=0;i<nexp;i++){
39                        selected="";
40                        if( isExp && exp_list.get(k).toString().equals(sel_tpl_name) ){
41                                selected="selected";
42                                sel_tpl_name=exp_list.get(k).toString();
43                        }
44                        exp_options0+="<OPTION class=grass VALUE=\""+exp_list.get(k)+"\" "+selected+">"+exp_list.get(k);
45                        exp_options0+="</OPTION>";
46                        k+=exp_columns0.length;
47                }
48
49        }
50        nexp=0;
51        exp_list=null; 
52}
53
54
55//LISTE DES DIFFERENTES VERSION ET NIVEAUX DE L'EXPERIENCE CHOISIE
56
57sql="SELECT distinct ether_experiment.exp_id,exp_name,exp_mission,set_dataset_version,set_ceos_level,set_ceos_sublevel,set_format";
58sql+=",dcp_file_class.tpl_id,exp_public,exp_alt_min,exp_alt_max FROM ether.dcp_file_class, ether.ether_experiment, ether.dcp_descripteur, ether.dcp_parameter ";
59sql+="WHERE ether_experiment.exp_id=dcp_file_class.exp_id and dcp_descripteur.tpl_id=dcp_file_class.tpl_id ";
60sql+="and dcp_parameter.par_acronym = ether.dcp_descripteur.par_acronym and (isord=0 or isord=2) and associate=-1 ";
61sql+="and dcp_file_class.tpl_id NOT IN (1332,1333,1331) ";
62sql+="and dcp_file_class.tpl_id in (select dcp_file_class.tpl_id from ether.ether_experiment, ether.dcp_file_class ";
63sql+="where ether_experiment.exp_id=dcp_file_class.exp_id and exp_name='"+sel_tpl_name+"') ";
64sql+="ORDER BY exp_name, set_dataset_version";
65
66
67nreq=-1;
68exp_list=req.get_list(sql,exp_columns);
69
70if (exp_list==null || exp_list.size()==0) {
71        error_msg="No file class found in the database";
72}
73else{
74        nreq=exp_list.size()/exp_columns.length;
75        exp_options="";
76        if (nreq>0) {
77                k=0;
78                sel_tpl="";
79                for (i=0 ; i < nreq ; i++) {
80
81                        if(exp_list.get(k+7).toString().equals(sel_tpl_id) ){
82                                selected="selected";
83                                sel_tpl=exp_list.get(k+7).toString();
84                                sel_exp_id=exp_list.get(k).toString();
85                                sel_version=exp_list.get(k+3).toString();
86                                sel_level=exp_list.get(k+4).toString();
87                                sel_sublevel=exp_list.get(k+5).toString();
88                                sel_format=exp_list.get(k+6).toString();
89                                sel_exp_public=exp_list.get(k+8).toString();
90                                exp_alt_min=exp_list.get(k+9).toString();
91                                exp_alt_max=exp_list.get(k+10).toString();
92                               
93                                //heightTexte="<b>(Between "+exp_alt_min+" km and "+exp_alt_max+" km in altitude)</b>";
94                                lib_mission=exp_list.get(k+2).toString();
95                                lib_version=exp_list.get(k+3).toString();
96                                lib_level=exp_list.get(k+4).toString();
97                               
98                                lib_sublevel=exp_list.get(k+5).toString();
99                                if (lib_sublevel.equals(".")) lib_sublevel="None";
100
101
102                                lib_fileformat=exp_list.get(k+6).toString();
103                                lib_tpl_id=exp_list.get(k+2).toString()+" - "+exp_list.get(k+3).toString()+" - "+exp_list.get(k+4).toString()+" - "+lib_sublevel+" - "+exp_list.get(k+6).toString();
104                        }
105                        else selected="";
106
107                        exp_options+="<OPTION class=selection VALUE=\""+exp_list.get(k+7)+"\" "+selected+">"+exp_list.get(k+2);
108                        exp_options+=" - "+exp_list.get(k+3)+" - "+exp_list.get(k+4)+" - ";
109                        if (!exp_list.get(k+5).toString().equals(".")) exp_options+=exp_list.get(k+5).toString()+" - ";
110                        exp_options+=exp_list.get(k+6)+"</OPTION>";
111                        k+=exp_columns.length;
112                }
113
114        }
115        exp_list=null;
116}
117exp_list=null; 
118
119if (!sel_tpl_id.equals("") && !sel_tpl_id.equals("null")) {
120
121listAbscisses absExp = new listAbscisses(sel_tpl_id, sel_exp_id, sel_par_abs);
122absExp.recupList();
123
124
125error_msg=absExp.error_msg;
126isParAbs=absExp.isParAbs;
127
128file_par_abs=absExp.file_par_abs;
129file_unit_abs=absExp.file_unit_abs;
130file_nature_abs=absExp.file_nature_abs;
131file_type_abs=absExp.file_type_abs;
132form_par_abs=absExp.form_par_abs;
133form_legend=absExp.form_legend;
134form_par_id=absExp.form_par_id;
135lib_param=absExp.lib_param;
136par_options_abs=absExp.par_options_abs;
137
138
139
140/* LISTE DES SOUS-PARAMETRES ABSCISSE */
141
142if(isParAbs) {// && !sel_par_abs.equals("") && !sel_par_abs.equals("null")) {
143        nreq=-1;
144
145        sel_par="";
146        if (sel_par_abs!=null) sel_par=(new stringSplit()).split(sel_par_abs,"%")[0];
147
148        // BORNES DE DATES
149        sql="SELECT DISTINCT set_first_date,set_last_date,set_lon_min,set_lon_max,set_lat_min,set_lat_max ";
150        sql+="FROM ether.ether_dataset,ether.dcp_file_class,set_parameter=par_acronym and set_id_experiment=exp_id and ";
151        sql+="(exp_id="+sel_exp_id+" or exp_id= ( select exp_id from ether.dcp_file_class where associate= "+sel_tpl_id+")) and set_parameter='";
152        sql+=sel_par+"' and ether_dataset.set_dataset_version='"+sel_version+"' "+ " and ether_dataset.set_ceos_level='"+sel_level+"' ";
153        sql+=" and ether_dataset.set_ceos_sublevel='"+sel_sublevel+"' "+" and ether_dataset.set_format='"+sel_format+"' ";
154        sspar_list=req.get_list(sql,sspar_columns1);
155        if (sspar_list!=null && sspar_list.size()>0) {
156                mindate_ms=Long.parseLong(sspar_list.get(0).toString());
157                maxdate_ms=Long.parseLong(sspar_list.get(1).toString());
158                DSMinDate=(new calDate(mindate_ms)).date_cal;
159                DSMaxDate=(new calDate(maxdate_ms)).date_cal;
160                date_time=DSMinDate.substring(0,10);
161                lonmin=sspar_list.get(2).toString();
162                lonmax=sspar_list.get(3).toString();
163                latmin=sspar_list.get(4).toString();
164                latmax=sspar_list.get(5).toString();
165        }
166
167        // LISTE DES SOUS-PARAMETRES PROPREMENT DIT
168        sql="select distinct subvariable from ether.dcp_descripteur, ether.dcp_file_class where par_acronym='"+sel_par+"'";
169        sql+=" and dcp_descripteur.tpl_id="+sel_tpl_id+" and dcp_descripteur.tpl_id=dcp_file_class.tpl_id and (exp_id="+sel_exp_id;
170        sql+=" or exp_id=( select exp_id from ether.dcp_file_class where associate= "+sel_tpl_id+"))";
171
172
173        sspar_list=req.get_list(sql,sspar_columns);
174        if (sspar_list==null || sspar_list.size()==0) isSspar=false;
175        else {
176                isSspar=true;
177                nreq=sspar_list.size()/sspar_columns.length;
178                sspar_options="";
179                if (nreq>0) {
180                     k=0;
181                     if (sel_sspar_abs=="" || sel_sspar_abs==null || sel_sspar_abs.equals("") || sel_sspar_abs.equals("null")) sel_sspar_abs=sspar_list.get(0).toString();
182                                for (i=0;i<nreq;i++) {
183                                        selected="";
184                                        if (isSspar && sspar_list.get(k).toString().equals(sel_sspar_abs)) selected="selected";
185                                        sspar_options+="<OPTION class=selection VALUE=\""+sspar_list.get(k).toString()+"\" "+selected+">";
186
187                                        if (sspar_list.get(k).toString().equals(".")) sspar_options+="None";
188                                        else sspar_options+=sspar_list.get(k);
189                                        sspar_options+="</OPTION>";
190                                        form_sspar_abs=sspar_list.get(k).toString();
191
192                                        k+=sspar_columns.length;
193                                }
194                }
195        }
196}
197
198
199/*LISTE DES PARAMETRES EN ORDONNEES*/
200
201if( isFile && isParAbs && sel_par_abs!=null && !sel_par_abs.equals("null") && !sel_par_abs.equals(""))  {
202if (graph_sel.equals("2")) {
203        listAbscisses ordExp = new listAbscisses(sel_tpl_id, sel_exp_id, sel_par_ord);
204        ordExp.recupList();
205
206        error_msg=ordExp.error_msg;
207        isParOrd=ordExp.isParAbs;
208
209        file_par_ord=ordExp.file_par_abs;
210        file_unit_ord=ordExp.file_unit_abs;
211        file_nature_ord=ordExp.file_nature_abs;
212        form_par_abs=ordExp.form_par_abs;
213        form_legend=ordExp.form_legend;
214
215        par_options_ord=ordExp.par_options_abs;
216
217
218        if (isParOrd && sel_par_ord!=null && sel_par_ord!="" && !sel_par_ord.equals("null") ) {
219        nreq=-1;
220
221        sel_par="";
222        if (sel_par_ord!=null) sel_par=(new stringSplit()).split(sel_par_ord,"%")[0];
223
224        // BORNES DE DATES
225        /*sql="SELECT DISTINCT set_first_date,set_last_date,set_lon_min,set_lon_max,set_lat_min,set_lat_max ";
226        sql+="FROM ether.ether_dataset,ether.dcp_file_class,set_parameter=par_acronym and set_id_experiment=exp_id and ";
227        sql+="(exp_id="+sel_exp_id+" or exp_id= ( select exp_id from ether.dcp_file_class WHERE associate= "+sel_tpl_id+")) and set_parameter='";
228        sql+=sel_par+"' and ether_dataset.set_dataset_version='"+sel_version+"' "+ " and ether_dataset.set_ceos_level='"+sel_level+"' ";
229        sql+=" and ether_dataset.set_ceos_sublevel='"+sel_sublevel+"' "+" and ether_dataset.set_format='"+sel_format+"' ";
230        sspar_list=req.get_list(sql,sspar_columns1);
231        if (sspar_list!=null && sspar_list.size()>0) {
232                mindate_ms=Long.parseLong(sspar_list.get(0).toString());
233                maxdate_ms=Long.parseLong(sspar_list.get(1).toString());
234                DSMinDate=(new calDate(mindate_ms)).date_cal;
235                DSMaxDate=(new calDate(maxdate_ms)).date_cal;
236                date_time=DSMinDate.substring(0,10);
237                lonmin=sspar_list.get(2).toString();
238                lonmax=sspar_list.get(3).toString();
239                latmin=sspar_list.get(4).toString();
240                latmax=sspar_list.get(5).toString();
241        }*/
242
243        // LISTE DES SOUS-PARAMETRES PROPREMENT DIT
244        sql="select distinct subvariable from ether.dcp_descripteur, ether.dcp_file_class where par_acronym='"+sel_par+"'";
245        sql+=" and dcp_descripteur.tpl_id="+sel_tpl_id+" and dcp_descripteur.tpl_id=dcp_file_class.tpl_id and (exp_id="+sel_exp_id;
246        sql+=" or exp_id=( select exp_id from ether.dcp_file_class where associate= "+sel_tpl_id+"))";
247
248
249        sspar_list=req.get_list(sql,sspar_columns);
250        if (sspar_list==null || sspar_list.size()==0) isSspar=false;
251        else {
252                isSspar=true;
253                nreq=sspar_list.size()/sspar_columns.length;
254                ssparord_options="";
255                if (nreq>0) {
256                     k=0;
257                     if (sel_sspar_ord=="" || sel_sspar_ord==null || sel_sspar_ord.equals("") || sel_sspar_ord.equals("null")) sel_sspar_ord=sspar_list.get(0).toString();
258                                for (i=0;i<nreq;i++) {
259                                        selected="";
260                                        if (isSspar && sspar_list.get(k).toString().equals(sel_sspar_ord)) selected="selected";
261                                        ssparord_options+="<OPTION class=selection VALUE=\""+sspar_list.get(k).toString()+"\" "+selected+">";
262
263                                        if (sspar_list.get(k).toString().equals(".")) ssparord_options+="None";
264                                        else ssparord_options+=sspar_list.get(k);
265                                        ssparord_options+="</OPTION>";
266
267                                        k+=sspar_columns.length;
268                                }
269                }
270        }
271       
272               
273
274        }       
275       
276}
277else {
278
279        from=" from ";
280        TRF=new Transform(sel_tpl_id, sel_exp_id,lang, file_type_abs);
281        isParOrd=TRF.isPar;
282        par_options_ord="";
283
284        if( !isParOrd ) error_msg="";
285        else{
286        _parameters=new ArrayList();
287        for(i=0;i<TRF.parameter.length;i++) if (!TRF.parameter[i].equals("Time") && !TRF.parameter[i].equals("Latitude") && !TRF.parameter[i].equals("Longitude")) {
288                if (!TRF.parameter[i].equals("Longitude") && !TRF.parameter[i].equals("Latitude") && !TRF.parameter[i].equals("Time")) {
289                if (!(graph_sel.equals("0") && !TRF.par_acr[i].equals("h"))) {
290                selected="";
291                svalue=TRF.par_acr[i]+"%"+TRF.nature[i]+"%"+TRF.ssparameter[i];
292                if ((selected.equals("") || selected.equals("null")) && (sel_par_ord.equals("") || sel_par_ord.equals("null"))) {
293                        if (file_type_abs.equals("densite")) sel_par_ord=svalue;
294                }
295
296                if( sel_par_ord!=null && sel_par_ord!="" && !sel_par_ord.equals("null") && TRF.par_acr[i]!=null && svalue.equals(sel_par_ord) ){
297                        selected="selected";
298                        file_par_ord=TRF.par_acr[i];
299                        file_sspar_ord=TRF.ssparameter[i];
300                        file_unit_ord=TRF.unit[i];
301                        if( sel_unit_ord==null || sel_unit_ord.equals("") || sel_unit_ord.equals("null") ){
302                                sel_unit_ord=file_unit_ord;
303                                isUnitOrd=true;
304                        }
305
306                        file_nature_ord=TRF.nature[i];
307                        display_type="available";
308                        form_par_ord=TRF.parameter[i];
309                }
310               
311
312                par_options_ord+="<OPTION class=selection VALUE=\""+svalue+"\" "+selected+">"+TRF.parameter[i];
313
314                if (TRF.nature[i].equals("Mes")) par_options_ord+=" (Measured)";
315                else par_options_ord+=" ("+TRF.nature[i]+")";
316
317                if (!TRF.ssparameter[i].equals(".")) par_options_ord+=" (subparameter : "+TRF.ssparameter[i]+")</OPTION>";
318                //else par_options_ord+=" - "+TRF.ssparameter[i]+"</OPTION>";
319                //if (selected.equals("selected")) par_observation_height=TRF.parameter[i]+" - "+TRF.nature[i]+" - "+TRF.ssparameter[i];
320                if (selected.equals("selected")) {
321                        par_observation_height=TRF.parameter[i]+" - ";
322                        if (TRF.nature[i].equals("Mes")) par_observation_height+=" (Measured)";
323                        else par_observation_height+=" ("+TRF.nature[i]+")";
324                        if (!TRF.ssparameter[i].equals(".")) par_options_ord+="- (subparameter : "+TRF.ssparameter[i]+")";
325                }
326
327                _parameters.add(TRF.par_acr[i]);
328                }
329                }
330        }
331
332         // PARAMETRES OBTENUS PAR TRANSFORMATIONS SIMPLES
333         if( file_type_abs.equals("profil") && TRF.cal_parameter!=null ) {
334        //      if (!TRF.cal_parameter[i].equals("Longitude") && !TRF.cal_parameter[i].equals("Latitude") && !TRF.cal_parameter[i].equals("Time")) {
335                for(i=0;i<TRF.cal_parameter.length;i++) {
336                        selected="";
337                        svalue=TRF.cal_par_acr[i]+"%"+TRF.cal_nature[i]+"%"+TRF.cal_par_acr_orig[i]+"%";
338                        svalue+=TRF.cal_ssparameter[i];
339                        if( sel_par_ord!=null && sel_par_ord!="" && !sel_par_ord.equals("null") && TRF.cal_par_acr[i]!=null && svalue.equals(sel_par_ord) ){
340                                selected="selected";
341                                file_par_ord=TRF.cal_par_acr[i];
342                                file_sspar_ord=TRF.cal_ssparameter[i];
343                                file_unit_ord=TRF.cal_unit[i];
344
345                                if( sel_unit_ord==null || sel_unit_ord.equals("") || sel_unit_ord.equals("null") ){
346                                        sel_unit_ord=file_unit_ord;
347                                        isUnitOrd=true;
348                                }
349
350                                file_nature_ord=TRF.cal_nature[i];
351                                display_type="transformed";
352
353                                file_par_aux=TRF.cal_par_acr_aux[i];
354                                file_unit_aux=TRF.cal_unit_aux[i];
355                                file_nature_aux=TRF.cal_nature_aux[i];
356                                file_par_aux1=TRF.cal_par_acr_aux1[i];
357                                file_unit_aux1=TRF.cal_unit_aux1[i];
358                                file_nature_aux1=TRF.cal_nature_aux1[i];
359
360                                file_trf_id=TRF.cal_trf_id[i];
361                                file_par_orig=TRF.cal_par_acr_orig[i];
362                                file_unit_orig=TRF.cal_unit_orig[i];
363                                file_nature_orig=TRF.cal_nature_orig[i];
364                        }
365
366                        if( !TRF.isRedundant[i] && !TRF.cal_trf_id[i].equals("999")) {// && !svalue.equals("Geopotential%Cal%Press%."))
367                                par_options_ord+="<OPTION class=selection VALUE=\""+svalue+"\" "+selected+">";
368                                par_options_ord+=TRF.cal_parameter[i]+from+TRF.cal_parameter_orig[i]+" (Calculated)</OPTION>";
369                                if (selected.equals("selected")) par_observation_height=TRF.cal_parameter[i]+from+TRF.cal_parameter_orig[i]+" (Calculated)";
370                        }
371
372                        _parameters.add(TRF.cal_par_acr[i]);
373                }
374        //}
375        }
376
377
378        // PARAMETRES OBTENUS PAR TRANSFORMATIONS COMBINEES
379/*        if( file_type_abs.equals("profil") && TRF.cbn_parameter!=null ){
380                for(i=0;i<TRF.cbn_parameter.length;i++){
381                        selected="";
382
383                        svalue=TRF.cbn_par_acr[i][TRF.cbn_parameter[i].length-1];
384                        svalue+="%"+TRF.cbn_nature[i][TRF.cbn_parameter[i].length-1]+"%";
385                        svalue+=TRF.cbn_par_acr_orig[i][0]+"%"+TRF.cbn_nature[i][TRF.cbn_ssparameter[i].length-1];
386
387                        if( sel_par_ord!=null && sel_par_ord!="" && !sel_par_ord.equals("null") && svalue.equals(sel_par_ord) ) {
388                                selected="selected";
389                                file_par_ord=TRF.cbn_par_acr[i][TRF.cbn_parameter[i].length-1];
390                                file_sspar_ord=TRF.cbn_ssparameter[i][TRF.cbn_parameter[i].length-1];
391                                file_unit_ord=TRF.cbn_unit[i][TRF.cbn_parameter[i].length-1];
392
393                                if( sel_unit_ord==null || sel_unit_ord.equals("") || sel_unit_ord.equals("null") ){
394                                        sel_unit_ord=file_unit_ord;
395                                        isUnitOrd=true;
396                                }
397                                file_nature_ord=TRF.cbn_nature[i][TRF.cbn_parameter[i].length-1];
398                                display_type="combined";
399                                file_trf_id=TRF.cbn_trf_id[i];
400                                file_par_orig=TRF.cbn_par_acr_orig[i][0];
401                                file_unit_orig=TRF.cbn_unit_orig[i][0];
402                                file_nature_orig=TRF.cbn_nature_orig[i][0];
403                         }
404
405                         // ON ECARTE LES TRANSFORMATIONS DONT LE PARAMETRE ORIGINE N'APPARTIENT PAS AU FICHIER
406                         // ON ECARTE EGALEMENT LES TRANSFORMATIONS REDONDANTES
407                         if( TRF.cbn_nature_orig[i][0]!=null && !TRF.cbn_nature_orig[i][0].equals("Cal") && !TRF.isRedundantCbn[i]) {
408                                par_options_ord+="<OPTION class=selection VALUE=\""+svalue+"\" "+selected+">";
409                                par_options_ord+=TRF.cbn_parameter[i][TRF.cbn_parameter[i].length-1]+from;
410                                par_options_ord+=TRF.cbn_parameter_orig[i][0];
411                                par_options_ord+=" (Calculated)</OPTION>";
412                                if (selected.equals("selected"))
413                                        par_observation_height=TRF.cbn_parameter[i][TRF.cbn_parameter[i].length-1]+from+TRF.cbn_parameter_orig[i][0]+" (Calculated)";
414
415
416                                _parameters.add(TRF.cbn_par_acr[i][TRF.cbn_parameter[i].length-1]);
417                         }
418
419       
420                }
421        }*/
422
423}
424}
425}
426
427
428
429
430//UNITES
431nunit_abs=-1;
432nunit_ord=-1;
433if (isFile) {
434        sql="select unit2.unit_acronym from ether.dcp_unit,ether.dcp_parameter,ether.dcp_unit unit2,ether.dcp_conversion ";
435        sql+="where par_acronym = '"+file_par_abs+"' and dcp_unit.unit_acronym = '"+file_unit_abs+"'";
436        sql+="and dcp_parameter.cls_acronym = dcp_unit.cls_acronym ";
437        sql+="and dcp_unit.unit_id = dcp_conversion.unit_orig and dcp_conversion.unit_final = unit2.unit_id";
438
439
440        unit_list_abs=req.get_list(sql,unit_columns);
441        isUnitAbs=true;
442        Object obs1=new Object();
443        obs1=file_unit_abs;
444        unit_list_abs.add(0,obs1);
445        nunit_abs=unit_list_abs.size()/unit_columns.length;
446        unit_options_abs="";
447
448        if( nunit_abs>0 ){
449                k=0;
450                if (!(sel_unit_abs!=null && !sel_unit_abs.equals("")) && sel_par_abs!=null
451                                && !sel_par_abs.equals("")) sel_unit_abs=unit_list_abs.get(0).toString();
452
453                for(i=0;i<nunit_abs;i++){
454                        selected="";
455                        if( isUnitAbs && unit_list_abs.get(k).toString().equals(sel_unit_abs)) selected="selected";
456
457                        unit_options_abs+="<OPTION class=selection VALUE=\"";
458                        unit_options_abs+=unit_list_abs.get(k)+"\" "+selected+">"+unit_list_abs.get(k)+"</OPTION>";
459                        k+=unit_columns.length;
460                }
461         }
462         if( isParOrd && file_par_ord!=null && !file_par_ord.equals("null") &&
463                                file_unit_ord!=null && !file_unit_ord.equals("null") && !file_unit_ord.equals("") ) {
464
465                sql="select unit2.unit_acronym from ether.dcp_unit, ether.dcp_parameter, ether.dcp_unit unit2,";
466                sql+="ether.dcp_conversion where par_acronym = '"+file_par_ord+"' and dcp_unit.unit_acronym = '"+file_unit_ord+"' ";
467                sql+="and dcp_parameter.cls_acronym = dcp_unit.cls_acronym and dcp_unit.unit_id = dcp_conversion.unit_orig ";
468                sql+="and dcp_conversion.unit_final = unit2.unit_id";
469                unit_list_ord=req.get_list(sql,unit_columns);
470
471                // RAJOUT DE L'UNITE DU FICHIER
472                Object obs=new Object();
473                obs=file_unit_ord;
474                unit_list_ord.add(0,obs);
475                isUnitOrd=true;
476                nunit_ord=unit_list_ord.size()/unit_columns.length;
477                unit_options_ord="";
478                if( nunit_ord>0 ){
479                        k=0;
480                        // ON FORCE LA SELECTION DE L'UNITE EN ORDONNEE A CELLE DU FICHIER PAR DEFAUT
481                        issel=false;
482                        for(i=0;i<nunit_ord;i++){
483                                if( isUnitOrd && unit_list_ord.get(k).toString().equals(sel_unit_ord) ){
484                                        issel=true;
485                                        break;
486                                }
487                                k+=unit_columns.length;
488                        }
489
490                        if( !issel ) sel_unit_ord=file_unit_ord;
491
492                        k=0;
493                        for(i=0;i<nunit_ord;i++){
494                                selected="";
495                                if( isUnitOrd && unit_list_ord.get(k).toString().equals(sel_unit_ord) )selected="selected";
496                                unit_options_ord+="<OPTION class=selection VALUE=\""+unit_list_ord.get(k)+"\" "+selected+">";
497                                unit_options_ord+=unit_list_ord.get(k)+"</OPTION>";
498                                k+=unit_columns.length;
499                        }
500                }
501        }
502
503}
504
505if (!afficheTrace.equals("null") && afficheTrace.equals("1")) {
506count=1;
507//UNITE DIFFERENTE
508//POUR L'ABSCISSE
509if( sel_unit_abs!=null && !sel_unit_abs.equals("") && !file_unit_abs.equals(sel_unit_abs) ){
510        ids=get_conv("acr", file_unit_abs, sel_unit_abs,req);
511        cnv_id=(new stringSplit()).split(ids,"%")[0];
512        trf_id=(new stringSplit()).split(ids,"%")[1];
513        // EST-CE UNE CONVERSION OU/ET UNE TRANSFORMATION (EN ABSCISSE SEULE UNE TRANFO NON COMBINEE PEUT AVOIR LIEU
514
515        if( !trf_id.equals("999") ){
516                // LA CONVERSION POINTE VERS UNE TRANSFORMATION: ATTENTION DANS CE CAS LA VARIABLE N'EST PAS TRANSFORMEE
517                // CELA RESTE UN CHANGEMENT D'UNITE
518                // DONC LA VARIABLE A LIRE RESTE LA MEME (CONTRAIREMENT A L'ORDONNEE OU CELLE A LIRE EST
519                // LA VARIABLE ORIGINE DE LA TRANSFORMATION ET NON PAS LA VARIABLE CHOISIE PAR L'UTILISATEUR
520                // QUI N'EXISTE PAS DANS LE FICHIER DE MESURE PUISQUE CALCULEE)
521                result=treat_trf(trf_id, sel_tpl_id, count,"",sel_unit_abs,false,true,req);
522                spl=(new stringSplit()).split(result,"%");
523                Xtransfo=spl[1];
524                AUX0transfo=spl[2];
525                AUX1transfo=spl[3];
526                count=Integer.parseInt(spl[4]);
527                more_varid+=spl[5];
528         }
529         else if( !cnv_id.equals("-1") ){
530                // C'EST UNE CONVERSION SIMPLE
531                Xtransfo="conv"+cnv_id+",999,999";
532         }
533        else{
534                sel_unit_abs=file_unit_abs;
535                Xtransfo="t999,999,999";
536        }
537 }
538 else{
539        Xtransfo="t999,999,999";
540 }
541
542//POUR ORDONNEE
543
544if(sel_unit_ord!=null && !sel_unit_ord.equals("")) {
545
546        if (graph_sel.equals("2")) {
547                if(!file_unit_ord.equals(sel_unit_ord) ){
548                ids=get_conv("acr", file_unit_ord, sel_unit_ord,req);
549                cnv_id=(new stringSplit()).split(ids,"%")[0];
550                trf_id=(new stringSplit()).split(ids,"%")[1];
551                // EST-CE UNE CONVERSION OU/ET UNE TRANSFORMATION (EN ABSCISSE SEULE UNE TRANFO NON COMBINEE PEUT AVOIR LIEU
552   
553                if( !trf_id.equals("999") ){
554                        // LA CONVERSION POINTE VERS UNE TRANSFORMATION: ATTENTION DANS CE CAS LA VARIABLE N'EST PAS TRANSFORMEE
555                        // CELA RESTE UN CHANGEMENT D'UNITE
556                        // DONC LA VARIABLE A LIRE RESTE LA MEME (CONTRAIREMENT A L'ORDONNEE OU CELLE A LIRE EST
557                        // LA VARIABLE ORIGINE DE LA TRANSFORMATION ET NON PAS LA VARIABLE CHOISIE PAR L'UTILISATEUR
558                        // QUI N'EXISTE PAS DANS LE FICHIER DE MESURE PUISQUE CALCULEE)
559                        result=treat_trf(trf_id, sel_tpl_id, count,"",sel_unit_ord,false,true,req);
560                        spl=(new stringSplit()).split(result,"%");
561                        Ytransfo=spl[1];
562                        AUY0transfo=spl[2];
563                        AUY1transfo=spl[3];
564                        count=Integer.parseInt(spl[4]);
565                        more_varid+=spl[5];
566                 }
567                 else if( !cnv_id.equals("-1") ){
568                        // C'EST UNE CONVERSION SIMPLE
569                        Ytransfo="conv"+cnv_id+",999,999";
570                }
571                else{
572                     sel_unit_ord=file_unit_ord;
573                     Ytransfo="t999,999,999";
574               }
575        }
576        else{
577               Ytransfo="t999,999,999";
578        }
579
580        }
581        else {
582 
583        ordonnee=file_par_ord;
584        sspar_ordonnee=file_sspar_ord;
585        numY_aux0=999;
586        numY_aux1=999;
587        isTransform=false;
588
589        // LA VARIABLE DEMANDEE EN ORDONNEE N'EST PAS DISPONIBLE DANS LE FICHIER
590        // ON CREE DE LA DONNEE VIA UNE TRANSFORMATION DE VARIABLE
591        if( !display_type.equals("available") ){
592
593                isTransform=true;
594                auxiliary=file_par_aux;
595                auxiliary_nature=file_nature_aux;
596                auxiliary1=file_par_aux1;
597                auxiliary_nature1="file_nature_aux1";
598                origin="file_par_orig";
599                origin_unit=file_unit_orig;
600                origin_nature=file_nature_orig;
601
602                // 2 POSSIBILITES :
603                // 1/ ON TRANSFORME LA VARIABLE INITIALE PAR UNE TRANSFORMATION SIMPLE
604                if( display_type.equals("transformed") ){
605                        if( !file_trf_id.equals("999") ){
606                                //LA CONVERSION POINTE VERS UNE TRANSFORMATION
607                                result=treat_trf(file_trf_id, sel_tpl_id, count,origin_unit,sel_unit_ord,true,true,req);
608                                spl=(new stringSplit()).split(result,"%");
609                                varY=spl[0];
610                                Ytransfo=spl[1];
611                                AUY0transfo=spl[2];
612                                //AUY0transfo=spl[2];
613                                AUY1transfo=spl[3];
614                                count=Integer.parseInt(spl[4]);
615
616                                more_varid+=spl[5];
617
618                         }else{
619                                sel_unit_ord=file_unit_ord;
620                                Ytransfo="t999,999,999";
621
622                         }
623                 // 2/ ON TRANSFORME LA VARIABLE INITIALE PAR UNE TRANSFORMATION COMBINEE
624                 }
625                else if( display_type.equals("combined") ){
626                        if( !file_trf_id.equals("999") ){
627                                //La conversion pointe vers une transformation
628                                result=treat_cbn(file_trf_id, sel_tpl_id, count,origin_unit,sel_unit_ord,req);
629                                spl=(new stringSplit()).split(result,"%");
630                                varY=spl[0];
631                               
632                                Ytransfo=spl[1];
633                                AUY0transfo=spl[2];
634                                AUY1transfo=spl[3];
635                                count=Integer.parseInt(spl[4]);
636                                more_varid+=spl[5];
637                        }else {
638                                sel_unit_ord=file_unit_ord;
639                                Ytransfo="t999,999,999";
640                        }
641                 }
642                 }else{
643                        // PAS DE TRANSFORMATION MAIS PEUT-ETRE UNE CONVERSION
644                      nature_ord=file_nature_ord;
645                      //varY=",{variable:'"+ordonnee+"', nature:'"+nature_ord+"', subvariable:'"+sspar_ordonnee+"', unite:'"+sel_unit_ord+"'}";
646                        varY=ordonnee+","+nature_ord+","+sspar_ordonnee+","+sel_unit_ord;
647                      if( !file_unit_ord.equals(sel_unit_ord) ){
648                                ids=get_conv("acr", file_unit_ord, sel_unit_ord,req);
649                                cnv_id=(new stringSplit()).split(ids,"%")[0];
650                                trf_id=(new stringSplit()).split(ids,"%")[1];
651
652                                //EST-CE UNE CONVERSION OU/ET UNE TRANSFORMATION (EN ORDONNEE TRANFO OU COMBINEE PEUVENT
653                                //AVOIR LIEU
654                                if( !trf_id.equals("999") ){
655                                        //LA CONVERSION POINTE VERS UNE TRANSFORMATION
656                                        result=treat_trf(trf_id, sel_tpl_id, count, "", sel_unit_ord,false,true,req);
657                                        spl=(new stringSplit()).split(result,"%");
658                                        varY=spl[0];
659                                        Ytransfo=spl[1];
660                                        AUY0transfo=spl[2];
661                                        AUY1transfo=spl[3];
662                                        count=Integer.parseInt(spl[4]);
663                                        more_varid+=spl[5];
664                                }
665                                else if( !cnv_id.equals("-1") ){
666                                        //C'EST UNE CONVERSION SIMPLE
667                                        Ytransfo="conv"+cnv_id+",999,999";
668
669                                }else{
670                                        sel_unit_ord=file_unit_ord;
671                                        Ytransfo="t999,999,999";
672                                }
673                        }else{
674                                        Ytransfo="t999,999,999";
675                        }
676                 }
677        }
678
679}
680TRANSFO="";
681TRANSFO+=Xtransfo+"&"+Ytransfo;
682if( !AUX0transfo.equals("") )TRANSFO+="&"+AUX0transfo;
683if( !AUX1transfo.equals("") )TRANSFO+="&"+AUX1transfo;
684if( !AUY0transfo.equals("") )TRANSFO+="&"+AUY0transfo;
685if( !AUY1transfo.equals("") )TRANSFO+="&"+AUY1transfo;
686}
687
688//if (!afficheTrace.equals("null") && afficheTrace.equals("1")) {
689nfile=-1;
690if (isParAbs && sel_par_abs!=null && isParOrd ) {
691        if (sel_par_ord!=null && sel_par_ord!="") {
692        sel_par="";
693        if (sel_par_abs!=null) sel_par=(new stringSplit()).split(sel_par_abs,"%")[0];
694        //DETERMINATION DES BORNES SPATIO-TEMPROELLES
695                if ((sel_mindate==null || sel_mindate.equals("") || sel_mindate.equals("null")
696                        || sel_maxdate==null || sel_maxdate.equals("") || sel_maxdate.equals("null")
697                        || lonmin==null || lonmin.equals("") || lonmin.equals("null")
698                        || lonmax==null || lonmax.equals("") || lonmax.equals("null")
699                        || latmin==null || latmin.equals("") || latmin.equals("null")
700                        || latmax==null || latmax.equals("") || latmax.equals("null"))
701                        && sel_exp_id!=null && sel_sspar_abs!=null) {
702
703                        sql="SELECT min(eth_first_date) as mindate, max(eth_last_date) as maxdate,min(eth_lon_min) as lonmin";
704                        sql+=",max(eth_lon_max) as lonmax,min(eth_lat_min) as latmin, max(eth_lat_max) as latmax,min(eth_alt_min) as altmin";
705                        sql+=",max(eth_alt_max) as altmax ";
706                        sql+="FROM ether.ether_file where (eth_id_experiment="+sel_exp_id;
707                        sql+=" or eth_id_experiment=(select exp_id from ether.dcp_file_class where associate="+sel_tpl_id+")) ";
708                        sql+=" and (eth_subparameter='"+sel_sspar_abs+"' or eth_subparameter='.') and eth_parameter='"+sel_par+"'";
709                        sql+=" and eth_dataset_version='"+sel_version+"' ";
710                        sql+=" and eth_ceos_level='"+sel_level+"' ";
711                        sql+=" and eth_ceos_sublevel='"+sel_sublevel+"' ";
712                        sql+=" and eth_format='"+sel_format+"'";
713       
714                        al1=req.get_list(sql,cols);
715                        exp_alt_min=al1.get(6).toString();
716                        exp_alt_max=al1.get(7).toString();
717                        if(al1!=null && al1.size()>0) {
718                                if (exp_alt_min!=null && !exp_alt_min.equals("") && exp_alt_max!=null && !exp_alt_min.equals("")) {
719                                        heightTexte="<b>(Between "+exp_alt_min+" km and "+exp_alt_max+" km in altitude)</b>";
720                                }
721
722                                if (sel_mindate==null || sel_mindate.equals("") || sel_mindate.equals("null")) {
723                                        mindate_ms=Long.parseLong(al1.get(0).toString());
724                                        DSMinDate=(new calDate(mindate_ms)).date_cal;
725                                }
726                                else {
727                                        DSMinDate=sel_mindate;
728                                        mindate_ms=(new calDate()).invers(sel_mindate);
729
730                                }
731
732                                if (sel_maxdate==null || sel_maxdate.equals("") || sel_maxdate.equals("null")) {
733                                        maxdate_ms=Long.parseLong(al1.get(1).toString());
734                                        DSMaxDate=(new calDate(maxdate_ms)).date_cal;
735
736                                }
737                                else {
738                                        DSMaxDate=sel_maxdate;
739                                        maxdate_ms=(new calDate()).invers(sel_maxdate);
740
741                                }
742                                if (lonmin==null || lonmin.equals("") || lonmin.equals("null")) lonmin=al1.get(2).toString();
743                                if (lonmax==null || lonmax.equals("") || lonmax.equals("null")) lonmax=al1.get(3).toString();
744
745                                if (latmin==null || latmin.equals("") || latmin.equals("null")) latmin=al1.get(4).toString();
746                                if (latmax==null || latmax.equals("") || latmax.equals("null")) latmax=al1.get(5).toString();
747
748                                DSMinDate_file=DSMinDate;
749                                DSMaxDate_file=DSMaxDate;
750                                if (file_type_abs.equals("densite")) {
751                                        sel_date_time=DSMinDate.substring(0,10);
752                                }
753                                lonmin_file=lonmin;
754                                lonmax_file=lonmax;
755                                latmin_file=latmin;
756                                latmax_file=latmax;
757
758                        }
759
760                        if (!exp_nrecouv.equals("-1") && exp_nrecouv!=null) {
761                                calNRecouv pnrecouv = new calNRecouv((new calDate()).invers(DSMinDate),Integer.parseInt(exp_nrecouv),"jour");
762                                DSMaxDate=pnrecouv.date_cal;
763                                if ((new calDate()).invers(DSMaxDate) > (new calDate()).invers(DSMaxDate_file)) DSMaxDate=DSMaxDate_file;
764                        }
765
766
767        }
768        else if ((sel_mindate!=null && sel_maxdate!=null)) {//|| (sel_date_time!="" && sel_date_time!=null)) {
769                DSMinDate=sel_mindate;
770                DSMaxDate=sel_maxdate;
771
772                if (!file_type_abs.equals("densite")) {
773                        mindate_ms=(new calDate()).invers(sel_mindate);
774                        maxdate_ms=(new calDate()).invers(sel_maxdate);
775                }
776                else {
777                        mindate_ms=(new calDate()).invers(sel_date_time+"-00:00:00:000");
778                        maxdate_ms=(new calDate()).invers(sel_date_time+"-23:59:59:000");
779                }
780        }
781
782}
783
784}
785// LISTE DES FICHIERS diSponibles
786sel_file="";
787file_list=null;
788nfile=0;
789
790
791sql="select is_batch, exp_nrecouv from sil_experiment_attribut where exp_id='"+sel_exp_id+"'";
792exp_attribut_list=req.get_list(sql,exp_attribut_columns);
793
794if (exp_attribut_list==null || exp_attribut_list.size()==0) {
795        is_batch="0";
796        exp_nrecouv="-1";
797}
798else{
799        nreq=exp_attribut_list.size()/exp_attribut_columns.length;
800        if( nreq>0 ){
801            k=0;
802            is_batch=exp_attribut_list.get(k).toString();
803            if (!exp_attribut_list.get(k+1).toString().equals("") && exp_attribut_list.get(k+1).toString()!=null) exp_nrecouv=exp_attribut_list.get(k+1).toString();
804            else exp_nrecouv="-1";     
805               
806        }
807}
808
809if (sel_exp_public.equals("1")) {
810        is_private="1";
811        private_data_flag="1";
812}
813else {
814        is_private="0";
815        private_data_flag="0";
816}
817
818
819if (is_private.equals("1")) {
820        if (is_batch.equals("0")) {
821                droit="1";
822                modei="none";
823        }
824        else {
825                modei="email";
826                if (cemail.equals("") || cemail.equals("null")) {
827                        droit="0";
828                }
829                else {
830                        droit="1";
831                }
832        }
833        download_auth="0";
834}
835if (is_private.equals("0")) {
836//      email="";
837        modei="loginu";
838
839        if (onlydata.equals("1")) {
840                download_auth="1";
841                droit="1";
842                rightTexte="Only data";
843        }
844        else {
845        if (is_batch.equals("1")) {
846                if (!cemail.equals("") && !cemail.equals("null")) {
847                        download_auth="1";
848                        email=cemail;
849                        droit="1";
850                        continuer="0";
851                }
852                else continuer="1";
853        }
854        else continuer="1";
855
856        if (continuer.equals("1")) {
857
858        if (!login.equals("") && !passu.equals("")) {
859
860        //recherche donnees utilisateur
861        sql="select id,email,name,first_name from ether_user where login='"+login+"' and password='"+passu+"'";
862        user_list=req.get_list(sql,user_columns);
863
864        if (user_list==null || user_list.size()==0) {
865                droit="0";
866                login="";
867                passu="";
868                lance="0";
869                name="Login non-existent in Ether base";
870                modei="err";
871
872        }
873        else{
874                nreq=user_list.size()/user_columns.length;
875                if( nreq>0 ){
876                        k=0;
877                        userid=user_list.get(k).toString();
878                        email=user_list.get(k+1).toString();
879                        name=user_list.get(k+2).toString();
880                        first_name=user_list.get(k+3).toString();
881
882                }
883
884        }
885
886
887        //recherche group_id de l'experience
888        sql="select eri_group_id from ether_experiment_right where eri_experiment_id='"+sel_exp_id+"'";
889        group_list=req.get_list(sql,group_columns);
890
891        if (group_list==null || group_list.size()==0) {
892        }
893        else{
894               nreq=group_list.size()/group_columns.length;
895               if( nreq>0 ){
896                        k=0;
897                        group=group_list.get(k).toString();
898                }
899
900        }
901
902        //recherche droit utilisateur
903        sql="select id from ether_group_user where user_id='"+userid+"' and group_id='"+group+"'";
904        priv_list=req.get_list(sql,priv_columns);
905
906        if (priv_list==null || priv_list.size()==0) {
907                download_auth="1";
908                login="";
909                passu="";
910        }
911        else{
912                nreq=priv_list.size()/priv_columns.length;
913                if( nreq>0 ){
914                        droit="1";
915                        download_auth="0";
916                }
917                else {
918                        download_auth="1";
919                }
920
921        }
922
923        }
924        droit="1";
925        }
926        if (download_auth.equals("0")) rightTexte="Data and download";
927        else rightTexte="Only data";
928
929        }
930
931}
932
933if (download_auth.equals("0")) rightTexte="Data and download";
934else rightTexte="Only data";
935
936
937if (is_batch.equals("1")) modeTexte="BATCH";
938else modeTexte="DIRECT";
939
940ftitle=request.getParameter("ftitle");
941if (ftitle==null || ftitle.equals("") || ftitle.equals("null")) {
942                ftitle="";
943}
944
945if (colour_bar_title==null || colour_bar_title.equals("") || colour_bar_title.equals("null")) {
946        colour_bar_title=form_legend;
947
948}
949
950if (droit.equals("1") && !afficheTrace.equals("null") && afficheTrace.equals("1")) {
951
952/*        sql="select * from ether.ether_file,ether.dcp_file_class file_class ";
953        sql+="where eth_id_experiment=exp_id ";
954        sql+="and eth_dataset_version=set_dataset_version ";
955        sql+="and eth_ceos_level=set_ceos_level ";
956        sql+="and eth_ceos_sublevel=set_ceos_sublevel ";
957        sql+="and eth_format=set_format and ";
958        sql+="eth_id_experiment=exp_id and eth_id_experiment="+sel_exp_id;
959        sql+=" and (eth_subparameter='"+sel_sspar_abs+"' ";
960        sql+=" or eth_subparameter='.') ";
961        sql+=" and eth_parameter='"+file_par_abs+"' and associate=-1 ";
962        sql+=" and eth_dataset_version='"+sel_version+"' ";
963        sql+=" and eth_ceos_level='"+sel_level+"' ";
964        sql+=" and eth_ceos_sublevel='"+sel_sublevel+"' ";
965        sql+=" and eth_format='"+sel_format+"' and ";
966        sql+=" (eth_last_date>="+mindate_ms+" and eth_first_date<="+maxdate_ms+") ";
967        sql+="and (eth_lon_max>="+lonmin+" and eth_lon_min<="+lonmax+") and (eth_lat_max>="+latmin+" and eth_lat_min<="+latmax+") ";
968
969*/
970
971        sql="SELECT * ";
972        sql+="FROM ether.ether_file where (eth_id_experiment="+sel_exp_id;
973        sql+=" or eth_id_experiment=(select exp_id from ether.dcp_file_class where associate="+sel_tpl_id+")) ";
974        sql+=" and (eth_subparameter='"+sel_sspar_abs+"' or eth_subparameter='.') and eth_parameter='"+file_par_abs+"'";
975        sql+=" and eth_dataset_version='"+sel_version+"' ";
976        sql+=" and eth_ceos_level='"+sel_level+"' ";
977        sql+=" and eth_ceos_sublevel='"+sel_sublevel+"' ";
978        sql+=" and eth_format='"+sel_format+"'";
979
980        file_list=req.get_list(sql,file_columns2);
981
982        if (file_list==null || file_list.size()==0) {
983                out.write("<script>alert('No experiment files found for this selection');</script>");
984                isFile=false;
985        }else{
986                isFile=true;
987                nfile=file_list.size()/file_columns2.length;
988                if( nfile>0 ){
989                        if (is_batch.equals("1")) mode="BATCH";
990                        else mode="DIRECT";
991                        k=0;
992                        for(i=0;i<nfile;i++){
993                                sel_file+=file_list.get(k+2)+","+file_list.get(k+5)+","+file_list.get(k+6)+","+file_list.get(k+7);
994                                sel_file+=","+file_list.get(k+8)+"&";
995                                k+=file_columns2.length;
996                        }
997                }
998
999        }
1000
1001
1002
1003pageMode="";
1004
1005if (sel_tpl_id!=null && !sel_tpl_id.equals("") && isFile==true) {
1006        pageMode="";
1007        reader=file_reader(sel_tpl_id,req);
1008        if (sel_file!=null && !sel_file.equals("")) {
1009
1010                files=sel_file;
1011                varid="[{variable:'"+file_par_abs+"', nature:'"+file_nature_abs+"', subvariable:'"+sel_sspar_abs+"', unite:'"+sel_unit_abs+"'}"+varY;
1012                varid+=more_varid;
1013                varid+="]";
1014
1015                typeOrdonnee=file_par_ord;
1016
1017                reader_param_varid=file_par_abs+","+file_nature_abs+","+sel_sspar_abs+","+sel_unit_abs;
1018                reader_param_varid+="&";
1019                reader_param_varid+=varY+more_varid;
1020
1021                tt=(new stringSplit()).split(files,"&");
1022                len=tt.length;
1023                if( tt[len-1].equals("")) len=len-1;
1024                filename=new String[len];
1025                auxfile=new String[len];
1026                infofile="";
1027
1028                for(i=0; i<len;i++){
1029                        filename[i]=(new stringSplit()).split(tt[i],",")[0];
1030                        tab_file_name+=rep_data+filename[i];
1031                        if( i<len-1 )tab_file_name+=",";
1032
1033
1034                        assoc=scanAssociates("info",sel_tpl_id,filename[i],rep_data,req);
1035                        if( assoc!=null && assoc.length>0 ){
1036                                infofile+=assoc[0];
1037                        }else{
1038                                infofile+="none";
1039                        }
1040
1041                        if (i<len-1) infofile+=",";
1042
1043                        ///////////////////////////////////////////////
1044                        assoc=scanAssociates("paramaux",sel_tpl_id,filename[i],rep_data,req);
1045                        if( assoc!=null && assoc.length>0 ){
1046                                for(int p=0;p<assoc.length;p++){
1047
1048                                        reponse=(new stringSplit()).split(assoc[p],"%");
1049                                        nomfile=reponse[0];
1050                                        nomvariable=reponse[1];
1051                                        nomsubvariable=reponse[2];
1052                                        src=reponse[3];
1053
1054                                        tab_paux=nomfile+",";
1055                                        tab_paux+=nomvariable+",";
1056                                        tab_paux+=nomsubvariable+",";
1057                                        tab_paux+=src;
1058                                        nassoc=scanAssociates("info",sel_tpl_id,(new File(nomfile)).getName(),rep_data,req);
1059                                        if (nassoc!=null && nassoc.length>0) tab_paux+=","+nassoc[0];
1060                                        else tab_paux+=",.";
1061
1062                                        auxstruct+=tab_paux;
1063                                        if( p<assoc.length-1 )auxstruct+="&";
1064
1065                                }
1066                        }
1067                        else{
1068                                tab_paux="none,";
1069                                tab_paux+="none,";
1070                                tab_paux+="none,";
1071                                tab_paux+="none,";
1072                                tab_paux+=".";
1073                                auxstruct+=tab_paux;
1074                                isParamaux=false;
1075                        }
1076
1077                        if (i<len-1) auxstruct+="@";
1078
1079                }
1080        }
1081        /**************************CREATION FICHIER XML*********************************************/
1082
1083        structureXML docXML = new structureXML();
1084       
1085        docXML.rep_xml=rep_xml;
1086
1087        docXML.id_session=id_session;
1088        docXML.uniqueid=uniqueid;
1089        docXML.mode=mode;
1090
1091        docXML.private_data_flag=private_data_flag;
1092        docXML.download_auth=download_auth;
1093        docXML.flag_extrapolate_auth=flag_extrapolate_auth;
1094
1095        docXML._1d_interpolator_method=_1d_interpolator_method;
1096        docXML._1d_spacing=_1d_spacing;
1097        docXML._1d_Nmax=_1d_Nmax;
1098        docXML._1d_Nmin=_1d_Nmin;
1099
1100        docXML.irreg_grid_method=irreg_grid_method;
1101        docXML.reg_grid_method=reg_grid_method;
1102        docXML._2d_xspacing=_2d_xspacing;
1103        docXML._2d_yspacing=_2d_yspacing;
1104        docXML._2d_NXmax=_2d_NXmax;
1105        docXML._2d_NXmin=_2d_NXmin;
1106        docXML._2d_NYmax=_2d_NYmax;
1107        docXML._2d_NYmin=_2d_NYmin;
1108        docXML.flag_validity_mask=flag_validity_mask;
1109
1110        if (file_type_abs.equals("densite")) {
1111                densite="1";
1112                docXML.profil_flag="1";
1113        }
1114        else docXML.profil_flag="0";
1115
1116        docXML.densite=densite;
1117
1118        docXML.experiment_name=sel_tpl_name;
1119
1120        docXML.plot_type=graph_sel;
1121        docXML.reader=reader;
1122        docXML.tab_file=tab_file_name;
1123        docXML.tab_infofile=infofile;
1124
1125        if (!file_type_abs.equals("densite")) {
1126                docXML.mindate=DSMinDate;
1127                docXML.maxdate=DSMaxDate;
1128        }
1129        else {
1130                docXML.mindate=sel_date_time+"-00:00:00:000";
1131                docXML.maxdate=sel_date_time+"-23:59:59:000";
1132        }
1133
1134        docXML.latmin=latmin;
1135        docXML.latmax=latmax;
1136        docXML.lonmin=lonmin;
1137        docXML.lonmax=lonmax;
1138
1139        docXML.observation_height=observation_height;
1140        docXML.num_version=sel_version;
1141        docXML.map_projection=map_projection;
1142
1143        docXML.hemisphere=hemisphere;
1144
1145        docXML.title=ftitle;
1146        docXML.sub_title=ftitle;
1147
1148        docXML.colour_bar_title=colour_bar_title;
1149        docXML.map_information_level=map_information_level;
1150        docXML.map_filling=map_filling;
1151        docXML.map_axes_type=map_axes_type;
1152        docXML.grid_linestyle=grid_linestyle;
1153        docXML.latitude_posting=latitude_posting;
1154        docXML.longitude_posting=longitude_posting;
1155        docXML.colour_bar_grid=colour_bar_grid;
1156        docXML.colour_bar_nb_value=colour_bar_nb_value;
1157
1158        docXML.auxstruct=auxstruct;
1159
1160        docXML.read_param_varid=reader_param_varid;
1161
1162        docXML.parameter_name=form_par_abs;
1163        docXML.vertical_scale_name=file_par_ord;
1164
1165        docXML.vertical_scale_unit=sel_unit_ord;
1166        docXML.parameter_unit=sel_unit_abs;
1167        docXML.sub_parameter=form_sspar_abs;
1168
1169        docXML.xvariable=file_par_abs;
1170        docXML.xnature=file_nature_abs;
1171        if (sel_sspar_abs.equals(".")) docXML.xsubvariable="none";
1172        else docXML.xsubvariable=sel_sspar_abs;
1173        docXML.xunite=sel_unit_abs;
1174
1175        docXML.contour_display_mode=contour_display_mode;
1176        docXML.contour_default_colour_flag=contour_default_colour_flag;
1177        docXML.contour_default_colour=contour_default_colour;
1178        docXML.contour_default_linestyle=contour_default_linestyle;
1179        docXML.contour_default_line_thickness=contour_default_line_thickness;
1180        docXML.contour_default_label_flag=contour_default_label_flag;
1181
1182        if (graph_sel.equals("13") && contour_default_colour_flag.equals("0")) {
1183                if (contour_display_mode.equals("0")) {
1184                        if (contour_default_colour_flag.equals("0") && contour_default_colour.equals("0,0,0")) {
1185                                docXML.idl_colour_table_id="";
1186                                docXML.contour_default_colour_flag="1";
1187                        }
1188                        else {
1189                                docXML.line_colour=contour_default_colour;
1190                        }
1191                }
1192                else {
1193                        docXML.idl_colour_table_id="";
1194                        docXML.contour_default_colour_flag="1";
1195                }
1196
1197        }
1198        else if ((graph_sel.equals("3") && dot_plot_colour_flag.equals("1")) ||
1199                        (graph_sel.equals("13") && contour_default_colour_flag.equals("1")) ||
1200                        (graph_sel.equals("0"))
1201                ) {
1202                docXML.idl_colour_table_id=idl_colour_table_id;
1203
1204                if (!imported_colour_table.equals("") && !imported_colour_table.equals("null") && imported_colour_table!="" && imported_colour_table!=null)
1205                {
1206                        docXML.imported_colour_table=imported_colour_table;
1207                }
1208
1209                docXML.val_min_bd=val_min_bd;
1210                docXML.val_max_bd=val_max_bd;
1211                docXML.unite_bd=unite_bd;
1212
1213        }
1214
1215        sql="SELECT mt_id ";
1216        sql+="FROM sil_type_trace WHERE tt_id="+graph_sel;
1217        file_list=null;
1218        file_list=req.get_list(sql,metat_columns);
1219
1220        if (file_list==null || file_list.size()==0) {
1221        }else{
1222                nfile=file_list.size()/metat_columns.length;
1223                if (nfile>0) {
1224                        k=0;
1225                        docXML.meta_type=file_list.get(k).toString();
1226                }
1227        }
1228
1229        docXML.transfo=TRANSFO;
1230
1231        docXML.dot_plot_dot_style=dot_plot_dot_style;
1232        if (dot_plot_colour_flag.equals("0")) docXML.dot_plot_colour_flag="1";
1233        else docXML.dot_plot_colour_flag=dot_plot_colour_flag;
1234
1235        docXML.dot_plot_dotcolour=dot_plot_dotcolour;
1236        docXML.dot_plot_dotsize=dot_plot_dotsize;
1237
1238        if (levels.equals("1") && !userLevels.equals("") && !userLevels.equals("null")) {
1239                docXML.userLevels=userLevels;
1240                docXML.contour_level_setting_mode=levels;
1241        }
1242        else {
1243                docXML.userLevels="";
1244                docXML.contour_level_setting_mode="0";
1245        }
1246
1247
1248        String ret=docXML.generate();
1249        if (mode.equals("BATCH")) {
1250               
1251                pageMode="lanceEnTacheDeFond.jsp";
1252                if (!login.equals("") && !passu.equals("")) {
1253                        chainePageMode="?id="+id_session+"&uniqueid="+uniqueid+"&mode="+mode+"&email="+email;
1254                }
1255                else {
1256                        chainePageMode="?id="+id_session+"&uniqueid="+uniqueid+"&mode="+mode+"&email="+cemail;
1257                }
1258        }
1259        else {
1260               
1261                pageMode="lanceAppletEtherVisu.html";
1262                chainePageMode="?id="+id_session+"&uniqueid="+uniqueid+"&mode="+mode+"&email=";
1263        }
1264
1265}
1266}
1267}
1268par_options_abs+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1269
1270par_options_abs0+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1271
1272par_options_ord+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1273
1274unit_options_abs+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1275
1276//if (sspar_options.equals("") || sspar_options.equals("null") || sspar_options=="" || sspar_options==null) sspar_options="<OPTION class=selection VALUE=\".
1277//\" selected>None</OPTION>";
1278
1279sspar_options+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1280
1281ssparord_options+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1282
1283unit_options_ord+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1284
1285exp_options+="<option class=selection value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";
1286
1287
1288req.close_connection();
1289%>
1290<html>
1291<head>
1292<title>setAttribute et tableaux</title>
1293<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
1294<link rel="stylesheet" href="ether.css" type="text/css">
1295<script language="Javascript">
1296//<!--
1297var longdate="";
1298var regExpEmpty=/^(\s)*$/g;
1299
1300function updateCreation(mode) {
1301parent.creation.document.thisForm.active.value=mode;
1302parent.creation.document.thisForm.submit();
1303return true;
1304}
1305
1306function lancerMode(page,chainePage) {
1307if (page!='' && chainePage!='') {
1308Newfen(page+chainePage,'Visualisation_V3','800','800');
1309}
1310
1311return true;
1312
1313}
1314
1315function initForm(niv) {
1316var obj=document.thisForm;
1317if (niv=='5') {
1318        if (obj.file_type_abs.value=='densite') niv='6b';
1319        updateTitle();
1320}
1321
1322if (niv=='2') {
1323        obj.class_data_set.value="ssrubrique";
1324        obj.dis_data_set.value="";     
1325
1326        obj.class_component.value="inactif";
1327        obj.dis_component.value="disabled";
1328
1329        obj.class_axis.value="inactif";
1330
1331        obj.class_vertical_scale.value="inactif";
1332        obj.dis_vertical_scale.value="disabled";
1333               
1334        obj.class_time.value="inactif";
1335        obj.dis_time.value="disabled";
1336
1337        obj.class_ho.value="inactif";
1338        obj.dis_ho.value="disabled";
1339       
1340        obj.class_location.value="inactif";
1341        obj.class_location2.value="inactif";
1342       
1343        obj.sel_tpl_id.value="";
1344        obj.graph_sel.value="";
1345       
1346        openListGraph('1','1','');
1347}
1348
1349
1350if (obj.graph_sel.value=='' && niv!='2') {
1351        openListGraph('1','1');
1352        niv='2';
1353        obj.sel_tpl_id.value="";
1354}
1355
1356if (obj.graph_sel.value!='' && niv=='2') {
1357        //niv='3';
1358}
1359
1360
1361if (niv=='4' || niv=='1' || niv=='2') {
1362        obj.sel_par_abs.value="";
1363        obj.sel_par_ord.value="";
1364        obj.sel_unit_abs.value="";
1365        obj.sel_unit_ord.value="";
1366        obj.sel_sspar_abs.value="";
1367        obj.observation_height.value="";
1368        obj.latmin.value="";
1369        obj.lonmin.value="";
1370        obj.latmax.value="";
1371        obj.lonmax.value="";
1372
1373        obj.class_data_set.value="ssrubrique";
1374        obj.dis_data_set.value="";
1375
1376        obj.class_component.value="inactif";
1377        obj.dis_component.value="disabled";
1378        obj.class_axis.value="inactif";
1379
1380        obj.class_vertical_scale.value="inactif";
1381        obj.dis_vertical_scale.value="disabled";
1382
1383        obj.class_time.value="inactif";
1384        obj.dis_time.value="disabled";
1385
1386        obj.class_ho.value="inactif";
1387        obj.dis_ho.value="disabled";
1388        obj.class_location.value="inactif";
1389        obj.class_location2.value="inactif";
1390
1391}
1392
1393if (niv=='4') {
1394       
1395        obj.class_component.value="ssrubrique";
1396        obj.dis_component.value="";
1397        obj.class_axis.value="rubrique";
1398}
1399
1400if (niv=='5') {
1401        obj.sel_par_ord.value="";
1402        obj.sel_unit_ord.value="";
1403        obj.observation_height.value="";
1404        obj.latmin.value="";
1405        obj.lonmin.value="";
1406        obj.latmax.value="";
1407        obj.lonmax.value="";
1408
1409        obj.class_data_set.value="ssrubrique";
1410        obj.dis_data_set.value="";
1411
1412        obj.class_component.value="ssrubrique";
1413        obj.dis_component.value="";
1414        obj.class_axis.value="rubrique";
1415
1416        obj.class_vertical_scale.value="ssrubrique";
1417        obj.dis_vertical_scale.value="";
1418
1419        obj.class_time.value="ssrubrique";
1420        obj.dis_time.value="";
1421
1422        obj.class_ho.value="inactif";
1423        obj.dis_ho.value="disabled";
1424        obj.class_location.value="inactif";
1425        obj.class_location2.value="rubrique";
1426
1427}
1428
1429if (niv=='6') {
1430        obj.observation_height.value="";       
1431
1432        obj.class_data_set.value="ssrubrique";
1433        obj.dis_data_set.value="";
1434
1435        obj.class_component.value="ssrubrique";
1436        obj.dis_component.value="";
1437        obj.class_axis.value="rubrique";
1438
1439        obj.class_vertical_scale.value="ssrubrique";
1440        obj.dis_vertical_scale.value="";
1441
1442        obj.class_time.value="ssrubrique";
1443        obj.dis_time.value="";
1444
1445        obj.class_ho.value="ssrubrique";
1446        obj.dis_ho.value="";
1447        obj.class_location.value="rubrique";
1448}
1449
1450if (niv=='6b') {
1451       obj.observation_height.value="";
1452
1453       obj.class_data_set.value="ssrubrique";
1454       obj.dis_data_set.value="";
1455 
1456       obj.class_component.value="ssrubrique";
1457       obj.dis_component.value="";
1458       obj.class_axis.value="rubrique";
1459 
1460       obj.class_vertical_scale.value="ssrubrique";
1461       obj.dis_vertical_scale.value="";
1462
1463       obj.class_time.value="ssrubrique";
1464       obj.dis_time.value="";
1465 
1466       obj.class_ho.value="ssrubrique";
1467       obj.dis_ho.value="";
1468       obj.class_location.value="rubrique";
1469}
1470
1471
1472if (niv=='6' || niv=='6b') updateCreation('1');
1473else updateCreation('0');
1474
1475
1476parent.user_info.location.href='user_info.jsp?num_step='+niv+'&is_private='+<%=is_private%>;
1477//parent.user_info.document.thisForm.num_step.value=niv;
1478//parent.user_info.document.thisForm.submit(); 
1479
1480return true;
1481}
1482
1483function blocForm() {
1484document.thisForm.submit();
1485
1486document.thisForm.sel_tpl_id.disabled=true;
1487document.thisForm.sel_par_abs.disabled=true;
1488document.thisForm.sel_unit_abs.disabled=true;
1489document.thisForm.sel_sspar_abs.disabled=true;
1490if (document.thisForm.sel_par_ord) {
1491        document.thisForm.sel_par_ord.disabled=true;
1492        document.thisForm.sel_unit_ord.disabled=true;
1493}
1494document.thisForm.latmin.disabled=true;
1495document.thisForm.latmax.disabled=true;
1496document.thisForm.lonmin.disabled=true;
1497document.thisForm.lonmax.disabled=true;
1498document.thisForm.mindate.disabled=true;
1499document.thisForm.maxdate.disabled=true;
1500document.thisForm.observation_height.disabled=true;
1501document.thisForm.ftitle.disabled=true;
1502document.thisForm.colour_bar_title.disabled=true;
1503
1504
1505}
1506
1507function updateLegend() {
1508document.thisForm.colour_bar_title.value="";
1509
1510abs=document.thisForm.form_par_abs.value;
1511unit=document.thisForm.sel_unit_abs.value;
1512
1513legend=abs+' ('+unit+')';
1514
1515document.thisForm.colour_bar_title.value=legend;
1516
1517return true;
1518
1519}
1520
1521function updateTitle() {
1522document.thisForm.ftitle.value="";
1523oh=document.thisForm.observation_height.value;
1524
1525exp=document.thisForm.sel_tpl_name.value;
1526mid=document.thisForm.mindate.value;
1527mad=document.thisForm.maxdate.value;
1528par_observation_height=document.thisForm.par_observation_height.value;
1529sel_unit_ord=document.thisForm.sel_unit_ord.value;
1530
1531tt=exp;
1532if (document.thisForm.file_type_abs.value!="densite") {
1533if (oh!='' && !matchRegExp(oh, regExpEmpty)) {
1534        tt+=' - '+oh+' '+sel_unit_ord+' - ';
1535        tt+=document.thisForm.mindate.value.substring(0,10)+' to '+document.thisForm.maxdate.value.substring(0,10);
1536}
1537}
1538else tt+=' - '+document.thisForm.sel_date_time.value;
1539document.thisForm.ftitle.value=tt;
1540
1541return true;
1542
1543}
1544
1545function choixIdent(is_batch) {
1546if (document.thisForm.modei.value=="email") {
1547        //Newfen('email.jsp?cemail=&modifye=0&is_batch=','Email','400','300');
1548}
1549else if (document.thisForm.modei.value=="loginu") {
1550        //Newfen('loginu.jsp?modifye=0&is_batch='+is_batch,'Authentification','650','550');
1551}
1552document.thisForm.lance.value="1";
1553return true;
1554}
1555
1556function updateOverview() {
1557        graph_sel=document.thisForm.graph_sel.value;
1558        chaineURL="overview.jsp?graph_sel="+graph_sel;
1559        chaineURL+="&meta_type="+document.thisForm.lib_meta_type.value;
1560        chaineURL+="&file_type_abs="+document.thisForm.file_type_abs.value;
1561       
1562        if (document.thisForm.mindate.value!='') chaineURL+="&datemin="+document.thisForm.mindate.value;
1563        if (document.thisForm.maxdate.value!='') chaineURL+="&datemax="+document.thisForm.maxdate.value;
1564        if (document.thisForm.latmin.value!='') chaineURL+="&latmin="+document.thisForm.latmin.value;
1565        if (document.thisForm.latmax.value!='') chaineURL+="&latmax="+document.thisForm.latmax.value;
1566        if (document.thisForm.lonmin.value!='') chaineURL+="&lonmin="+document.thisForm.lonmin.value;
1567        if (document.thisForm.lonmax.value!='') chaineURL+="&lonmax="+document.thisForm.lonmax.value;
1568        if (document.thisForm.ftitle.value!='') chaineURL+="&title="+document.thisForm.ftitle.value;
1569        if (document.thisForm.sel_tpl_name.value!='') chaineURL+="&sel_tpl_name="+document.thisForm.sel_tpl_name.value;
1570        if (document.thisForm.sel_tpl_id.value!='') chaineURL+="&sel_tpl_id="+document.thisForm.lib_tpl_id.value;
1571        if (document.thisForm.sel_par_abs.value!='') chaineURL+="&sel_par_abs="+document.thisForm.lib_param.value;
1572        if (document.thisForm.sel_sspar_abs.value!='') chaineURL+="&sel_sspar_abs="+document.thisForm.sel_sspar_abs.value;
1573        if (document.thisForm.sel_par_ord.value!='') chaineURL+="&sel_par_ord="+document.thisForm.form_par_ord.value;
1574        if (document.thisForm.sel_unit_ord.value!='') chaineURL+="&sel_unit_ord="+document.thisForm.sel_unit_ord.value;
1575        if (document.thisForm.sel_unit_abs.value!='') chaineURL+="&sel_unit_abs="+document.thisForm.sel_unit_abs.value;
1576        if (document.thisForm.colour_bar_title!='') chaineURL+="&colour_bar_title="+document.thisForm.colour_bar_title.value;
1577        if (document.thisForm.observation_height!='') chaineURL+="&observation_height="+document.thisForm.observation_height.value;
1578
1579        parent.overview.location.href=chaineURL;
1580        return true;
1581}
1582
1583function showTrace(id_session,uniqueid,mode) {
1584var chaine='pop_upapplet.jsp?id_session='+id_session+'&uniqueid='+uniqueid+'&mode='+mode;
1585
1586Newfen(chaine,'Visualisation_V3','600','600');
1587
1588return true;
1589}
1590
1591
1592function checkObservationHeight(type_abs) {
1593if (type_abs!='profil') return false;
1594if (checkOH()) {
1595        return false;
1596}
1597else return true;
1598
1599}
1600
1601function checkOH() {
1602        if (!checkValue(document.thisForm.observation_height.value,'The height observation','','1')) {
1603                return false;
1604        }
1605        else {
1606                if (!matchRegExp(document.thisForm.observation_height.value, regExpEmpty) && document.thisForm.observation_height.value!='') {
1607                        return true;
1608                }
1609                else {
1610                        alert("You must enter an observation height");
1611                        return false;
1612                }
1613        }
1614
1615}
1616
1617function checkValue(valeur,texte,def,mode) {
1618if (isNaN(valeur)) {
1619        if (mode=='1') alert(texte+' must be numeric');
1620        if (texte=="Level value") document.thisForm.level_value.value=def;
1621        else if (mode=='1') document.thisForm.observation_height.value=def;
1622        return false;
1623}
1624return true;
1625}
1626
1627
1628function matchRegExp(valeur, regularExpression) {
1629        var resultat = valeur.match(regularExpression);
1630        if(resultat!=null && resultat.length==1) return true;
1631        else return false;
1632}
1633
1634function checkLongitude(minL,maxL){
1635        var text='';
1636
1637        if (isNaN(document.thisForm.lonmin.value) || isNaN(document.thisForm.lonmax.value)) {
1638                alert("Error : Invalid longitude format");
1639                document.thisForm.lonmin.value=minL;
1640                document.thisForm.lonmax.value=maxL;
1641                return false;
1642        }
1643
1644        minlon=parseFloat(document.thisForm.lonmin.value);
1645        maxlon=parseFloat(document.thisForm.lonmax.value);
1646        if( minlon > maxlon ){
1647                alert("Error : Latitude min is greater than latitude max");
1648                document.thisForm.lonmin.value=minL;
1649                document.thisForm.lonmax.value=maxL;
1650                return false;
1651        }
1652        if( minlon<-180 || maxlon>180 ){
1653                alert("Error : the selected longitude is out of range [-180,180]");
1654                if (minlon<-180) document.thisForm.lonmin.value=minL;
1655                if (maxlon>180) document.thisForm.lonmax.value=maxL;
1656                return false;
1657        }
1658        if( minlon<minL || maxlon>maxL ){
1659                alert("Error : the selected longitude is out of range of the experiment files ["+minL+","+maxL+"]");
1660                if (minlon<minL) document.thisForm.lonmin.value=minL;
1661                if (maxlon>maxL) document.thisForm.lonmax.value=maxL;
1662                return false;
1663        }
1664
1665        if (matchRegExp(document.thisForm.lonmax.value, regExpEmpty) || document.thisForm.lonmax.value=='') {
1666                document.thisForm.lonmax.value=maxL;
1667        }
1668        if (matchRegExp(document.thisForm.lonmin.value, regExpEmpty) || document.thisForm.lonmin.value=='') {
1669                document.thisForm.lonmin.value=minL;
1670        }
1671        updateOverview();
1672        return true;
1673}
1674
1675
1676function checkLatitude(minL,maxL) {
1677
1678        if (isNaN(document.thisForm.latmin.value) || isNaN(document.thisForm.latmax.value)) {
1679                alert("Error : Invalid latitude format");
1680                document.thisForm.latmin.value=minL;
1681                document.thisForm.latmax.value=maxL;
1682                return false;
1683        }
1684
1685        minlat=parseFloat(document.thisForm.latmin.value);
1686        maxlat=parseFloat(document.thisForm.latmax.value);
1687
1688
1689        if( minlat > maxlat ){
1690                alert("Error : Latitude min is greater than latitude max");
1691                document.thisForm.latmin.value=minL;
1692                document.thisForm.latmax.value=maxL;
1693                return false;
1694        }
1695        if( minlat<-90 || maxlat>90 ){
1696                alert("Error : the selected latitude is out of range [-90,90]");
1697                if (minlat<-90) document.thisForm.latmin.value=minL;
1698                if (maxlat>90) document.thisForm.latmax.value=maxL;
1699                return false;
1700        }
1701        if (minlat<minL || maxlat>maxL) {
1702                alert("Error : the selected latitude is out of range of the experiment files ["+minL+","+maxL+"]");
1703                if (minlat<minL) document.thisForm.latmin.value=minL;
1704                if (maxlat>maxL) document.thisForm.latmax.value=maxL;
1705                return false;
1706        }
1707
1708
1709        if (matchRegExp(document.thisForm.latmax.value, regExpEmpty) || document.thisForm.latmax.value=='') {
1710                document.thisForm.latmax.value=maxL;
1711        }
1712        if (matchRegExp(document.thisForm.latmin.value, regExpEmpty) || document.thisForm.latmin.value=='') {
1713                document.thisForm.latmin.value=minL;
1714        }
1715        updateOverview();
1716        return true;
1717}
1718
1719function isDate2(s) {
1720        // Verification de la date
1721        var a1=s.split("/");
1722        var e=true;
1723        if( (a1.length!=3) && (a1[0].length!=4 || a1[1].length!=2 || a1[2].length!=2)) {
1724               e=false;
1725        }else{
1726                var y=a1[0],m=a1[1],d=a1[2];
1727                if (isPositiveInteger(a1[0]) && isPositiveInteger(a1[1]) && isPositiveInteger(a1[2])){
1728                if ( (y<1000)||(y.length>4) )e=false
1729                        if (e) {
1730                                v=new Date(m+"/"+d+"/"+y);
1731                                longdate=y+m+d;
1732                                if (v.getMonth()!=m-1)e=false;
1733                        }
1734                }
1735                else {
1736                       e=false;
1737                }
1738        }
1739       
1740        return e
1741}
1742
1743
1744function isDate(s) {
1745        var a0=s.split("-");
1746        if ((a0.length!=2)){
1747                e=false;
1748        }else{
1749        // Verification de la date
1750                var a1=a0[0].split("/");
1751                var a2=a0[1].split(":");
1752                var e=true;
1753                if( (a1.length!=3) && (a2.length!=4) && (a1[0].length!=4 || a1[1].length!=2 || a1[2].length!=2 || a2[0].length!=2 || a2[1].length!=2 || a2[2
1754].length!=2 || a2[3].length!=3 )){
1755                        e=false;
1756                }else{
1757                        var y=a1[0],m=a1[1],d=a1[2];
1758                        if (isPositiveInteger(a1[0]) && isPositiveInteger(a1[1]) && isPositiveInteger(a1[2])){
1759                                if ( (y<1000)||(y.length>4) )e=false
1760                                if (e) {
1761                                        v=new Date(m+"/"+d+"/"+y);
1762                                        if (v.getMonth()!=m-1)e=false;
1763                                }
1764                        }else{
1765                                e=false;
1766                        }
1767                // Verification de l'heure
1768                        if( e ){
1769                                if (isPositiveInteger(a2[0]) && isPositiveInteger(a2[1]) && isPositiveInteger(a2[2])){
1770                                        var hh=a2[0],mm=a2[1],ss=a2[2],ms=a2[3];
1771                                        if( ms.length<3 )e=false;
1772                                        if (e) {
1773                                                v=new Date(m+"/"+d+"/"+y+" "+hh+":"+mm+":"+ss);
1774                                                longdate=y+m+d+hh+mm+ss+ms;
1775                                                if (v.getMonth()!=m-1)e=false;
1776                                        }
1777                                }else{
1778                                        e=false;
1779                                }
1780                        }
1781                }
1782        }
1783        return e
1784}
1785
1786
1787function isDigit(theDigit)
1788{
1789        var digitArray = new Array('0','1','2','3','4','5','6','7','8','9'),j;
1790
1791        for (j = 0; j < digitArray.length; j++)
1792        {
1793                if (theDigit == digitArray[j])return true
1794        }
1795        return false
1796
1797}
1798
1799function isPositiveInteger(theString){
1800        var theData = new String(theString)
1801
1802        if (!isDigit(theData.charAt(0)))
1803                if (!(theData.charAt(0)== '+'))return false
1804
1805        for (var i = 1; i < theData.length; i++)
1806                if (!isDigit(theData.charAt(i)))return false
1807        return true
1808}
1809
1810function checkDate(minDT,maxDT) {
1811        var minD="";
1812        mindate=document.thisForm.mindate.value;
1813
1814
1815        isDate(minDT);
1816        long_minDT=longdate;
1817
1818        isDate(maxDT);
1819        long_maxDT=longdate;
1820       
1821        if (document.thisForm.file_type_abs!='densite') {       
1822        if( !isDate(mindate) ){
1823                alert("Warning : The format of the Date min is not correct, it should be YYYY/MM/DD-HH:MM:SS:MSC");
1824                document.thisForm.mindate.value=minDT;
1825                return false;
1826        }
1827        longdatemin=longdate;
1828        maxdate=document.thisForm.maxdate.value;
1829        if( !isDate(maxdate) ){
1830                alert("Warning : The format of the Date max is not correct, it should be YYYY/MM/DD-HH:MM:SS:MSC");
1831                document.thisForm.maxdate.value=maxDT;
1832                return false;
1833        }
1834        longdatemax=longdate;
1835        if (parseFloat(longdatemin)<parseFloat(long_minDT)) {
1836                alert("Warning: Date min can not be less than the Date min of the experiment files ("+minDT+")");
1837                document.thisForm.mindate.value=minDT;
1838                return false;
1839        }
1840
1841        if (parseFloat(longdatemax)>parseFloat(long_maxDT)) {
1842                alert("Warning: Date max can not be greater than the Date max of the experiment files ("+maxDT+")");
1843                document.thisForm.maxdate.value=maxDT;
1844                return false;
1845        }
1846
1847        if( parseFloat(longdatemin)>parseFloat(longdatemax) ){
1848                alert("Warning : Date min can not be greater than the Date max");
1849                document.thisForm.maxdate.value=maxDT;
1850                document.thisForm.mindate.value=minDT;
1851                return false;
1852        }
1853       
1854        }
1855
1856        //document.thisForm.mindate.focus();
1857        updateOverview();
1858       
1859        updateTitle();
1860        return true;
1861}
1862
1863function checkDate2(minDT,maxDT) {
1864        var minD="";
1865        seldate=document.thisForm.sel_date_time.value;
1866
1867        minDT=minDT.substr(0,10);
1868        maxDT=maxDT.substr(0,10);
1869       
1870        isDate2(minDT);
1871        long_minDT=longdate;
1872
1873        isDate2(maxDT);
1874        long_maxDT=longdate;
1875
1876        if( !isDate2(seldate) ){
1877                alert("Warning : The format of the Date is not correct, it should be YYYY/MM/DD");
1878                document.thisForm.sel_date_time.value=minDT;
1879                return false;
1880        }
1881
1882        longdatetime=longdate;
1883        if (parseFloat(longdatetime)<parseFloat(long_minDT) || parseFloat(longdatetime)>parseFloat(long_maxDT)) {
1884                alert("Warning: Date is out of range. Range : ["+minDT+","+maxDT+"]");
1885                document.thisForm.sel_date_time.value=minDT;
1886                return false;
1887        }
1888
1889        //document.thisForm.mindate.focus();
1890        updateOverview();
1891
1892        updateTitle();
1893        return true;
1894}
1895
1896
1897function Newfen (URL,NAME,W,H)
1898{
1899  var wconf = 'scrollbars=yes,toolbar=no,location=no,directories=no,status=yes,menubar=no,resizable=yes,width=' + W + ',height=' + H;
1900  var w = window.open (URL, NAME, wconf);
1901
1902}
1903
1904function lancerTrace(type_abs,is_batch) {
1905var ok='0';
1906
1907if (document.thisForm.modei.value=='email') {
1908        if (document.thisForm.email.value!='') ok='1';
1909        else ok='0';
1910}
1911else if (document.thisForm.modei.value=='loginu') {
1912
1913        if (document.thisForm.login.value!='' && document.thisForm.passu.value!='') ok='1';
1914        else if (document.thisForm.email.value!='') ok='1';
1915        else if (document.thisForm.onlydata.value=="1") ok='1';
1916        else ok='0';
1917        ok='1';
1918}
1919
1920if (document.thisForm.modei.value=='none' || document.thisForm.modei.value=='err') {
1921        ok='1';
1922}
1923
1924
1925if (ok=='1') {
1926if (document.thisForm.sel_par_abs.value=='' || document.thisForm.sel_unit_abs.value=='' || document.thisForm.sel_sspar_abs.value=='' || document.thisForm.sel_par_ord.value=='' || document.thisForm.sel_unit_ord.value=='') {
1927        alert("The parameters information are not complete");
1928        return false;
1929}
1930else if (checkObservationHeight(type_abs)) {
1931        return false;
1932}
1933else if (confirm('Confirm your selection ?')) {
1934        document.thisForm.afficheTrace.value="1";
1935        blocForm();
1936}
1937else {
1938        return false;
1939}
1940}
1941else return false;
1942return true;
1943
1944}
1945
1946function openListGraph(mode,appel,graph) {
1947var page='';
1948if (document.thisForm.sel_tpl_name.value!='') {
1949page="list_graphiques.jsp?sel_tpl_name="+document.thisForm.sel_tpl_name.value+"&modef="+mode+"&appel="+appel+"&graph_sel="+graph;
1950//window.blur();
1951Newfen(page,'Graphicslist','800','600');
1952//alert(Graphicslist.closed);
1953return true;
1954}
1955
1956return false;
1957
1958}
1959
1960function attach() {
1961        var element = document.getElementById('ligne1');
1962        element.setAttribute("class","gros");
1963}
1964
1965function updateUser(rt,n,fn,ib,ip,l,m,sei) {
1966var chaineURL='';
1967var obj=parent.user_info.document.thisForm;
1968//chaineURL='user_info.jsp?rightText='+rt+'&name='+n+'&first_name='+fn+'&email='+e+'&is_batch='+ib+'&is_private='+ip+'&lance='+l;
1969//obj.rightTexte.value=rt;
1970obj.name.value=n;
1971obj.first_name.value=fn;
1972//obj.email.value=e;
1973obj.is_batch.value=ib;
1974obj.is_private.value=ip;
1975obj.lance.value=l;
1976obj.modei.value=m;
1977obj.sel_exp_id.value=sei;
1978
1979obj.submit();
1980               
1981}
1982 
1983//window.onload = attach;
1984</script>
1985</head>
1986
1987<body onLoad="updateUser('<%=rightTexte%>','<%=name%>','<%=first_name%>','<%=is_batch%>','<%=is_private%>','<%=lance%>','<%=modei%>','<%=sel_exp_id%>');updateOverview();lancerMode('<%=pageMode%>','<%=chainePageMode%>'); if (document.thisForm.file_type_abs.value=='densite') {initForm('5');}">
1988<%!
1989boolean isUnitIdentique(String param1, String param2, String isord,send_request req) {
1990
1991String list="";
1992String[] cols1={"cls_acronym"};
1993ArrayList _list1=req.get_list("select cls_acronym from ether.dcp_parameter where par_acronym='"+param1+"' and (isord=2 or isord=1)",cols1);
1994if( _list1==null || _list1.size()<1 ) return false;
1995else {
1996        String[] cols2={"cls_acronym"};
1997        ArrayList _list2=req.get_list("select cls_acronym from ether.dcp_parameter where par_acronym='"+param2+"' and (isord=2 or isord=1)",cols2);
1998        if( _list2==null || _list2.size()<1 ) return false;
1999        else {
2000                if (_list1.get(0).equals(_list2.get(0))) return true;
2001                else return false;
2002        }
2003}
2004}
2005
2006String getTransform(String trf_id,send_request req){
2007        String list="";
2008
2009  String columns[]={"par_orig", "par_acr_orig", "unit_orig", "unit_acr_orig","par_final", "par_acr_final", "unit_final", "unit_acr_final","par_aux0", "par_acr_aux0", "unit_aux0", "unit_acr_aux0","par_aux1", "par_acr_aux1", "unit_aux1", "unit_acr_aux1"};
2010            ArrayList _list=req.get_list(
2011                    "select "+
2012                  "par_orig, "+
2013                    "param0.par_acronym as par_acr_orig, "+
2014                    "unit_orig,  "+
2015                    "unit0.unit_acronym as unit_acr_orig, "+
2016                    "par_final,  "+
2017                    "param3.par_acronym as par_acr_final, "+
2018                    "unit_final, "+
2019                    "unit3.unit_acronym as unit_acr_final, "+
2020                    "par_aux0,  "+
2021                    "param1.par_acronym as par_acr_aux0, "+
2022                    "unit_aux0,  "+
2023                    "unit1.unit_acronym as unit_acr_aux0,  "+
2024                    "par_aux1,  "+
2025                    "param2.par_acronym as par_acr_aux1, "+
2026                    "unit_aux1,  "+
2027                    "unit2.unit_acronym as unit_acr_aux1 "+
2028                    "from  "+
2029                    "ether.dcp_transformation, "+
2030                    "ether.dcp_parameter param0, "+
2031                    "ether.dcp_parameter param1,  "+
2032                    "ether.dcp_parameter param2,  "+
2033                    "ether.dcp_unit unit0,  "+
2034                    "ether.dcp_unit unit1, "+
2035                    "ether.dcp_parameter param3, "+
2036                    "ether.dcp_unit unit2,  "+
2037                    "ether.dcp_unit unit3 "+
2038                    "where  "+
2039                    "param0.par_id = dcp_transformation.par_orig "+
2040                    "and param3.par_id=dcp_transformation.par_final "+
2041                    "and param1.par_id=dcp_transformation.par_aux0 "+
2042                    "and unit0.unit_id=dcp_transformation.unit_orig "+
2043                    "and unit3.unit_id=dcp_transformation.unit_final "+
2044                    "and unit1.unit_id=dcp_transformation.unit_aux0 "+
2045                    "and unit2.unit_id=dcp_transformation.unit_aux1 "+
2046                    "and param2.par_id=dcp_transformation.par_aux1 "+
2047                    "and trf_id= "+trf_id,
2048                    columns);
2049            if( _list==null || _list.size()<1 ){
2050                    return "-1";
2051          }else{
2052                  for(int i=0;i<_list.size();i++)
2053                           list+=_list.get(i).toString()+"%";
2054            }
2055            return list;
2056    }
2057
2058String getCombin(String combin_id,send_request req){
2059        String list="";
2060
2061        String[] cols1={"trf_id"};
2062        ArrayList _list=req.get_list(
2063                "select trf_id from ether.dcp_transf_comb where id="+combin_id+" order by trf_order",
2064                cols1);
2065        if( _list==null || _list.size()<1 ){
2066                return "999";
2067        }else{
2068                for(int i=0;i<_list.size();i++)
2069                        list+=_list.get(i).toString()+"%";
2070        }
2071        return list;
2072}
2073
2074/******************************************************/
2075String convert(String date){
2076String[] ddt=(new stringSplit()).split(date,"-");
2077String[] dates=(new stringSplit()).split(ddt[0],"/");
2078String[] times=(new stringSplit()).split(ddt[1],":");
2079return dates[0]+dates[1]+dates[2]+times[0]+times[1]+times[2];
2080}
2081
2082
2083/*******************************************************/
2084
2085// Traitement des combinaisons de transformations unitaires
2086String treat_cbn(String cbn_id, String sel_tpl_id, int count, String origin_unit, String selected_unit, send_request req){
2087        String varX="", more_varid="", Xtransfo="", AUX0transfo="", AUX1transfo="";
2088        int num_aux0=999, num_aux1=999;
2089// Liste des transformations unitaires \340 appliquer
2090        String list=getCombin(cbn_id,req);
2091        System.err.println(" LIST CBN : "+list);
2092        String[] cblist=(new stringSplit()).split(list,"%");
2093        String mess="",result="";       
2094        int len=cblist.length;
2095        if( cblist[cblist.length-1].equals("") )len=len-1;
2096        mess="";
2097        for(int i=0;i<len;i++){
2098                String trf_id=cblist[i];
2099                boolean testUnit=false;
2100                if(i==cblist.length-1 )testUnit=true;
2101                //mess+="<br>trf_id="+cblist[i]+"->sel_tpl_id="+sel_tpl_id+"->count="+count+"->origin_unit="+origin_unit+"->selected_unit="+selected_unit+"->testUnit="+testUnit;
2102                       
2103                result=treat_trf(trf_id, sel_tpl_id, count, origin_unit, selected_unit, true, testUnit,req);
2104                //mess+="<br>";
2105                //mess+=result;
2106                String[] spl=(new stringSplit()).split(result,"%");
2107
2108                // Seule la variable origine de la 1ere transformation est retenue
2109                if(i==0 ) {
2110                        varX+=spl[0];
2111                       
2112                }
2113                // Ajout d'une commande de transformation en bout de ligne
2114               
2115                if( i>0 ){
2116                               
2117                        Xtransfo=Xtransfo.substring(0,Xtransfo.length()-2)+",";
2118                        //spl[1]=spl[1].substring(9);
2119                }
2120                Xtransfo+=spl[1];
2121                //mess+="@@"+spl[1];
2122                AUX0transfo=spl[2];
2123                AUX1transfo=spl[3];
2124                count=Integer.parseInt(spl[4]);
2125                more_varid+=spl[5];
2126        }
2127
2128       
2129        return varX+"%"+Xtransfo+"%"+AUX0transfo+"%"+AUX1transfo+"%"+count+"%"+more_varid;
2130
2131}
2132
2133
2134// Recherche des fichiers associ\351s au tuple tpl_id
2135String[] scanAssociates(String type, String tpl_id, String file, String rep_data,send_request req){
2136
2137        String[] retour=null;
2138        String sfile=new File(file).getName();
2139//
2140        String columns[]={"type", "command"};
2141        ArrayList _list=req.get_list(
2142                "select * from ether.dcp_associate "+
2143                "where type='"+type+"' and tpl_id="+tpl_id,
2144                columns);
2145        if( _list==null || _list.size()<1 ){
2146                return retour;
2147        }else{
2148                int nrow=_list.size()/columns.length;
2149                retour=new String[nrow];
2150                int k=0;
2151                for(int j=0;j<nrow;j++){
2152                        String stype=_list.get(k).toString();
2153                        String command=_list.get(k+1).toString();
2154                        String new_command=(new stringReplace(command,"%",sfile)).newstring;
2155                        new_command=(new stringReplace(new_command,"$","'")).newstring;
2156                        String cols[]={"eth_tar_file"};
2157                        String cols1[]={"eth_tar_file", "eth_parameter", "eth_subparameter", "src"};
2158                        ArrayList _list0=null;
2159                        if( type.equals("info" ) )
2160                                _list0=req.get_list(new_command,cols);
2161                        else
2162                                _list0=req.get_list(new_command,cols1);
2163                        if( _list0==null || _list0.size()<1 ){
2164                                retour=null;
2165                                return retour;
2166                        }else{
2167                                if( type.equals("info") )retour[j]=rep_data+_list0.get(0).toString();
2168                                else retour[j]=rep_data+_list0.get(0).toString()+"%"+_list0.get(1).toString()+"%"+_list0.get(2).toString()+"%"+_list0.get(3).toString();
2169
2170                        }
2171                        k+=columns.length;
2172                }
2173        }
2174        return retour;
2175}
2176
2177boolean isDef(String valeur) {
2178        if (valeur==null || valeur.equals("") || valeur.equals("null")) return false;
2179        else return true;
2180}
2181
2182int occurence(String string, String search){
2183        int z=0, zcount=0;
2184        while( true ){
2185                z=string.indexOf(search,z);
2186                if( z>=0 ){
2187                        zcount++;
2188                        z+=search.length();
2189                }else{
2190                        break;
2191                }
2192        }
2193        return zcount;
2194}
2195
2196
2197      String treat_trf(String trf_id, String sel_tpl_id, int count, String origin_unit,
2198                String selected_unit, boolean testUnit0, boolean testUnit1 ,send_request req){
2199                String more_varid="", Xtransfo="", AUX0transfo="", AUX1transfo="";
2200                int num_aux0=999, num_aux1=999;
2201                String list=getTransform(trf_id,req);
2202                String[] tlist=(new stringSplit()).split(list,"%"); //(0:par_id,1:par_acr,2:unit_id,3:unit_acr)
2203               
2204                String natx=getField(sel_tpl_id,"src_acronym",tlist[1],req);
2205                String sspar0=getField(sel_tpl_id,"subvariable",tlist[1],req);
2206               
2207                //return "tlist1="+tlist[1]+"--> natx="+natx;
2208               
2209//                String varX=",{variable:'"+tlist[1]+"', nature:'"+natx+
2210//                        "', subvariable:'.', unite:'"+tlist[3]+"'}";
2211String varX=tlist[1]+","+natx+","+sspar0+","+tlist[3];
2212
2213//              V\351rification de l'unit\351 de la variable origine : est-ce la m\352me que celle requise par la transformation
2214                 String before_trf="";
2215                 if( testUnit0 && !origin_unit.equals(tlist[3]) ){
2216                         String ids=get_conv("acr", origin_unit, tlist[3],req);
2217                         String cnv_id=(new stringSplit()).split(ids,"%")[0];
2218                         before_trf="conv"+cnv_id+",999,999#";
2219                 }
2220//              V\351rification de l'unit\351 de la variable finale / s\351lectionn\351e
2221                 String more_trf="";
2222                 if( testUnit1 && !selected_unit.equals(tlist[7]) ){
2223                         String ids=get_conv("acr", tlist[7], selected_unit,req);
2224                         String cnv_id=(new stringSplit()).split(ids,"%")[0];
2225                         more_trf="#conv"+cnv_id+",999,999";
2226                 }
2227
2228        // Il y a une variable auxiliaire (0)
2229                AUX0transfo="";
2230                if( tlist.length>3 && !tlist[8].equals("999") ){
2231                        String nat=getField(sel_tpl_id,"src_acronym",tlist[9],req);
2232                        String unit_id=getField(sel_tpl_id,"unit_id",tlist[9],req);
2233                        String sspar1=getField(sel_tpl_id,"subvariable",tlist[9],req);
2234                        more_varid+="&"+tlist[9]+","+nat+","+sspar1+","+tlist[11];
2235                        count++;
2236                        num_aux0=count;
2237                // Changement d'unit\351 pour la variable auxiliaire 0
2238                        if( !unit_id.equals("-1") && !unit_id.equals(tlist[10]) ){
2239                                String ids0=get_conv("id", unit_id, tlist[10],req);
2240                                String cnv_id0=(new stringSplit()).split(ids0,"%")[0];
2241                                if( !Xtransfo.equals("") )Xtransfo+=",";
2242                                AUX0transfo="conv"+cnv_id0+",999,999";
2243                        }else{
2244                                AUX0transfo="t999,999,999";
2245                        }
2246                }
2247        // Il y a une autre variable auxiliaire (1)
2248                AUX1transfo="";
2249                if( tlist.length>7 && !tlist[12].equals("999") ){
2250                        String nat=getField(sel_tpl_id,"src_acronym",tlist[13],req);
2251                        String unit_id=getField(sel_tpl_id,"unit_id",tlist[13],req);
2252                        String sspar2=getField(sel_tpl_id,"subvariable",tlist[13],req);
2253                        more_varid+="&"+tlist[13]+","+nat+","+sspar2+","+tlist[15];
2254
2255                        count++;
2256                        num_aux1=count;
2257                // Changement d'unit\351 pour la variable auxiliaire 1
2258                        if( !unit_id.equals("-1") && !unit_id.equals(tlist[14]) ){
2259                                String ids1=get_conv("id", unit_id, tlist[14],req);
2260                                String cnv_id1=(new stringSplit()).split(ids1,"%")[0];
2261
2262                                AUX1transfo="conv"+cnv_id1+",999,999";
2263                        }else{
2264                                AUX1transfo="t999,999,999";
2265                        }
2266                }
2267
2268                Xtransfo=before_trf+"t"+trf_id+","+num_aux0+","+num_aux1+more_trf;
2269//
2270                return varX+"%"+Xtransfo+"%"+AUX0transfo+"%"+AUX1transfo+"%"+count+"%"+more_varid;
2271        }
2272
2273String getField(String tpl_id, String field, String parameter,send_request req){
2274        String list="";
2275        String columns[]={field};
2276        ArrayList _list=req.get_list(
2277                "select "+field+" from ether.dcp_descripteur where (tpl_id="+tpl_id+
2278                " or tpl_id=(select tpl_id from ether.dcp_file_class where associate="+tpl_id+
2279                ")) and par_acronym='"+parameter+"'",columns);
2280        if( _list==null || _list.size()<1 ){
2281                //_list="select "+field+" from ether.dcp_descripteur where (tpl_id="+tpl_id;
2282                //_list+=" or tpl_id=(select tpl_id from ether.dcp_file_class where associate="+tpl_id;
2283                //_list+=")) and par_acronym='"+parameter+"'";
2284                return "-1";
2285        }else{
2286                list=_list.get(0).toString();
2287        }
2288        return list;
2289}
2290
2291
2292
2293
2294String get_conv(String type, String unit_orig, String unit_final,send_request req){
2295String cnv_id="", trf_id="";
2296        String unit_id_orig="", unit_id_final="";
2297        ArrayList _list;
2298        if( type.equals("acr") ){
2299                String columns[]={"unit_id"};
2300                _list=req.get_list(
2301                        "SELECT * FROM ether.dcp_unit where unit_acronym='"+unit_orig+"'",columns);
2302                if( _list==null || _list.size()!=1 ){
2303                        return "-1%-1";
2304                }
2305                unit_id_orig=_list.get(0).toString();
2306                _list=req.get_list(
2307                        "SELECT * FROM ether.dcp_unit where unit_acronym='"+unit_final+"'",columns);
2308                if( _list==null || _list.size()!=1 ){
2309                        return "-1%-1";
2310                }
2311                unit_id_final=_list.get(0).toString();
2312        }else if( type.equals("id") ){
2313                unit_id_orig=unit_orig;
2314                unit_id_final=unit_final;
2315        }
2316        String cols[]={"cnv_id", "trf_id"};
2317        _list=req.get_list(
2318                "SELECT * FROM ether.dcp_conversion where unit_orig="+unit_id_orig+
2319                " and unit_final="+unit_id_final,cols);
2320        if( _list==null || _list.size()!=cols.length ){
2321                return "-1%-1";
2322        }else{
2323                cnv_id=_list.get(0).toString();
2324                trf_id=_list.get(1).toString();
2325        }
2326        return cnv_id+"%"+trf_id;
2327}
2328
2329
2330/**********************************/
2331
2332String file_reader(String sel_tpl_id, send_request req) {
2333
2334String rd_function="";
2335String columns[]={"rd_function"};
2336
2337ArrayList _list=req.get_list("SELECT * from ether.dcp_reader, ether.dcp_file_class where dcp_file_class.rd_acronym=dcp_reader.rd_acronym and tpl_id="+sel_tpl_id,columns);
2338if(_list==null || _list.size()<1 ) return "-1";
2339else rd_function=_list.get(0).toString();
2340
2341return rd_function;
2342}
2343
2344String getValueParam(String nameParam, String defaultValueParam, ServletRequest request) {
2345
2346String var=request.getParameter(nameParam);
2347if (var==null || var.equals("") || var.equals("null")) {
2348        var=defaultValueParam;
2349}
2350
2351return var;
2352}
2353
2354%>
2355<form name="thisForm">
2356<table border="0" cellpadding="2" cellspacing="2" width="800">
2357<tr>
2358<td colspan=4>
2359<table>
2360<input type="hidden" name="exp_nrecouv" value="<%=exp_nrecouv%>">
2361<input type="hidden" name="sel_temp_name" value="<%=sel_temp_name%>">
2362<input type="hidden" name="class_data_set" value="<%=class_data_set%>">
2363<input type="hidden" name="class_component" value="<%=class_component%>">
2364<input type="hidden" name="class_axis" value="<%=class_axis%>">
2365<input type="hidden" name="class_location" value="<%=class_location%>">
2366<input type="hidden" name="class_location2" value="<%=class_location2%>">
2367<input type="hidden" name="class_vertical_scale" value="<%=class_vertical_scale%>">
2368<input type="hidden" name="class_ho" value="<%=class_ho%>">
2369<input type="hidden" name="class_time" value="<%=class_time%>">
2370<input type="hidden" name="dis_data_set" value="<%=dis_data_set%>">
2371<input type="hidden" name="dis_component" value="<%=dis_component%>">
2372<input type="hidden" name="dis_vertical_scale" value="<%=dis_vertical_scale%>">
2373<input type="hidden" name="dis_ho" value="<%=dis_ho%>">
2374<input type="hidden" name="dis_time" value="<%=dis_time%>">
2375<input type="hidden" name="map_information_level" value="<%=map_information_level%>">
2376<input type="hidden" name="map_filling" value="<%=map_filling%>">
2377<input type="hidden" name="map_axes_type" value="<%=map_axes_type%>">
2378<input type="hidden" name="grid_linestyle" value="<%=grid_linestyle%>">
2379<input type="hidden" name="latitude_posting" value="<%=latitude_posting%>">
2380<input type="hidden" name="longitude_posting" value="<%=longitude_posting%>">
2381<input type="hidden" name="colour_bar_nb_value" value="<%=colour_bar_nb_value%>">
2382<input type="hidden" name="colour_bar_grid" value="<%=colour_bar_grid%>">
2383<input type="hidden" name="modei" value="<%=modei%>">
2384<input type="hidden" name="pageMode" value="<%=pageMode%>">
2385<input type="hidden" name="chainePageMode" value="<%=chainePageMode%>">
2386<input type="hidden" name="contour_default_label_flag" value="<%=contour_default_label_flag%>">
2387<input type="hidden" name="idl_colour_table_id" value="<%=idl_colour_table_id%>">
2388<input type="hidden" name="cemail" value="<%=cemail%>">
2389<input type="hidden" name="download_auth" value="<%=download_auth%>">
2390<input type="hidden" name="email" value="<%=email%>">
2391<input type="hidden" name="login" value="<%=login%>">
2392<input type="hidden" name="passu" value="<%=passu%>">
2393<input type="hidden" name="name" value="<%=name%>">
2394<input type="hidden" name="first_name" value="<%=first_name%>">
2395<input type="hidden" name="onlydata" value="<%=onlydata%>">
2396<input type="hidden" name="continuer" value="<%=continuer%>">
2397<input type="hidden" name="id_session" value="<%=id_session%>">
2398<input type="hidden" name="contour_display_mode" value="<%=contour_display_mode%>">
2399<input type="hidden" name="contour_default_colour_flag" value="<%=contour_default_colour_flag%>">
2400<input type="hidden" name="contour_default_colour" value="<%=contour_default_colour%>">
2401<input type="hidden" name="contour_default_linestyle" value="<%=contour_default_linestyle%>">
2402<input type="hidden" name="contour_default_line_thickness" value="<%=contour_default_line_thickness%>">
2403<input type="hidden" name="lib_meta_type" value="<%=lib_meta_type%>">
2404<input type="hidden" name="lib_param" value="<%=lib_param%>">
2405<input type="hidden" name="form_par_ord" value="<%=form_par_ord%>">
2406<input type="hidden" name="lib_tpl_id" value="<%=lib_tpl_id%>">
2407<input type="hidden" name="meta_type" value="<%=meta_type%>">
2408<input type="hidden" name="flag_extrapolate_auth" value="<%=flag_extrapolate_auth%>">
2409<input type="hidden" name="uniqueid" value="<%=uniqueid%>">
2410<input type="hidden" name="mode" value="<%=mode%>">
2411<input type="hidden" name="lance" value="<%=lance%>">
2412<input type="hidden" name="exp_alt_min" value="<%=exp_alt_min%>">
2413<input type="hidden" name="exp_alt_max" value="<%=exp_alt_max%>">
2414<input type="hidden" name="ssel_tpl_name" value="<%=sel_tpl_name%>">
2415<input type="hidden" name="graph_sel" value="<%=graph_sel%>">
2416<input type="hidden" name="afficheTrace" value="">
2417<input type="hidden" name="interpolatormethod1d" value="<%=_1d_interpolator_method%>">
2418<input type="hidden" name="spacing1d" value="<%=_1d_spacing%>">
2419<input type="hidden" name="nmin1d" value="50">
2420<input type="hidden" name="nmax1d" value="500">
2421<input type="hidden" name="reg_grid_method" value="<%=reg_grid_method%>">
2422<input type="hidden" name="irreg_grid_method" value="<%=irreg_grid_method%>">
2423<input type="hidden" name="xspacing2d" value="<%=_2d_xspacing%>">
2424<input type="hidden" name="nxmin2d" value="50">
2425<input type="hidden" name="nxmax2d" value="500">
2426<input type="hidden" name="yspacing2d" value="<%=_2d_yspacing%>">
2427<input type="hidden" name="nymin2d" value="50">
2428<input type="hidden" name="nymax2d" value="500">
2429<input type="hidden" name="flag_validity_mask" value="1">
2430<input type="hidden" name="form_par_abs" value="<%=form_par_abs%>">
2431<input type="hidden" name="userLevels" value="<%=userLevels%>">
2432<input type="hidden" name="dot_plot_dot_style" value="<%=dot_plot_dot_style%>">
2433<input type="hidden" name="dot_plot_colour_flag" value="<%=dot_plot_colour_flag%>">
2434<input type="hidden" name="dot_plot_dotcolour" value="<%=dot_plot_dotcolour%>">
2435<input type="hidden" name="dot_plot_dotsize" value="<%=dot_plot_dotsize%>">
2436<input type="hidden" name="DSMinDate_file" value="<%=DSMinDate_file%>">
2437<input type="hidden" name="DSMaxDate_file" value="<%=DSMaxDate_file%>">
2438<input type="hidden" name="lonmin_file" value="<%=lonmin_file%>">
2439<input type="hidden" name="lonmax_file" value="<%=lonmax_file%>">
2440<input type="hidden" name="latmin_file" value="<%=latmin_file%>">
2441<input type="hidden" name="latmax_file" value="<%=latmax_file%>">
2442<input type="hidden" name="file_type_abs" value="<%=file_type_abs%>">
2443<input type="hidden" name="imSelected" value="<%=imSelected%>">
2444
2445</table>
2446</td>
2447</tr>
2448<tr>
2449<td>
2450<table border="0" cellpadding="2" cellspacing="2" width="800">
2451<tr><td class='titreN'><b>DATA SETTINGS</b></td></tr>
2452</table>
2453</td>
2454</tr>
2455<tr>
2456<td>
2457<table border="0" cellpadding="2" cellspacing="2" width="800">
2458<tr><td colspan=4 class='rubrique'><b>DATA SELECTION</b></td></tr>
2459<tr>
2460        <td class="ssrubrique" nowrap>Experiment</td>
2461        <td width="5%">&nbsp;</td>
2462        <td class="<%=class_data_set%>" colspan=2>Data set</td>
2463</tr>
2464<tr>
2465        <td valign=top nowrap>
2466        <select size=5 name="sel_tpl_name" onChange="initForm('2');document.thisForm.file_type_abs.value='';return blocForm();">
2467                <%=exp_options0%>
2468        </select>
2469        </td>
2470        <td width="10%">&nbsp;</td>
2471        <td valign="top" nowrap rowspan=2>
2472        <select size=7 name="sel_tpl_id" size=6 onChange="if (document.thisForm.lance.value!='') document.thisForm.lance.value='0';initForm('4');return blocForm();" <%=dis_data_set%>>
2473                <%=exp_options%>
2474        </select>
2475        </td>
2476        <td width=100% valign=top>
2477        <table cellpadding="2" cellspacing="2">
2478                <tr>
2479                        <td align="right" class="<%=class_data_set%>">Mission</td>
2480                        <td class=inactif><b><%=lib_mission%></b></td>
2481                </tr>
2482                <tr>
2483                        <td align="right" class="<%=class_data_set%>">Version</td>
2484                        <td class=inactif><b><%=lib_version%></b></td>
2485                </tr>
2486                <tr>
2487                        <td align="right" class="<%=class_data_set%>">Level</td>
2488                        <td class=inactif><b><%=lib_level%></b></td>
2489                </tr>
2490                <tr>
2491                        <td align="right" class="<%=class_data_set%>">Sublevel</td>
2492                        <td class=inactif><b><%=lib_sublevel%></b></td>
2493                </tr>
2494                <tr>
2495                        <td align="right" class="<%=class_data_set%>">File format</td>
2496                        <td class=inactif><b><%=lib_fileformat%></b></td>
2497                </tr>
2498        </table>
2499        </td>
2500
2501</tr>
2502</table>
2503</td>
2504</tr>
2505
2506<tr>
2507<td>
2508<table border="0" cellpadding="2" cellspacing="2" width="800">
2509<tr><td colspan=5 class="<%=class_axis%>"><b>PARAMETERS</b></td></tr>
2510<tr>
2511        <td class="<%=class_component%>" colspan=2 nowrap>Component</td>
2512        <td width="10%">&nbsp;</td>
2513        <%
2514        if (!file_type_abs.equals("densite")) {%>
2515                <%if (graph_sel.equals("2")) {%>
2516                <td class="<%=class_vertical_scale%>" colspan=2>Component in Y axis</td>
2517                <%}
2518                else {%>
2519                <td class="<%=class_vertical_scale%>">Vertical scale</td>
2520                <%}%>
2521        <%}
2522        else {%>
2523                <td class=normal><b>Density column data : no vertical scale to select</b></td>
2524        <%}%>
2525</tr>
2526<tr>
2527<td colspan=2 nowrap valign="top">
2528        <select <%=dis_component%> size=5 name="sel_par_abs" onChange="if (document.thisForm.lance.value!='') document.thisForm.lance.value='0';document.thisForm.sel_unit_abs.value='';document.thisForm.colour_bar_title.value='';initForm('5');return blocForm();">
2529                <%=par_options_abs%>
2530        </select>
2531</td>
2532        <td>&nbsp;</td>
2533        <%if (!file_type_abs.equals("densite")) {%>
2534        <%if (graph_sel.equals("2")) {%>
2535        <td width="100%" colspan=2>
2536        <%}
2537        else {%>
2538        <td width="100%">
2539        <%}%>
2540        <select name="sel_par_ord" size=5 onChange="if (document.thisForm.lance.value!='') document.thisForm.lance.value='0';document.thisForm.ftitle.value='';initForm('6');blocForm();updateTitle();" <%=dis_vertical_scale%>>
2541                <%=par_options_ord%>
2542        </select><br><span class="normal"><i>Data calculated come from ECMWF data or from a model</i></span>
2543        </td>
2544        <%}
2545        else {%>       
2546        <td width="100%">&nbsp;
2547        <input type=hidden value="<%=sel_par_ord%>" name="sel_par_ord">
2548        </td>
2549        <%}%>   
2550</tr>
2551<tr>
2552<%if (!file_type_abs.equals("densite")) {%>
2553        <td class="<%=class_component%>" nowrap>Units</td>
2554        <td class="<%=class_component%>" nowrap>Sub-parameter</td>
2555        <td>&nbsp;</td>
2556        <%if (graph_sel.equals("2")) {%>
2557        <td class="<%=class_vertical_scale%>" valign="top" width="75%">Units</td>
2558        <td class="<%=class_vertical_scale%>" valign="top" width="25%">Sub-parameter</td>
2559        <%}
2560        else {
2561        %>
2562        <td class="<%=class_vertical_scale%>" valign="top" width=100% colspan=2>Units</td>
2563        <%}%>
2564<%}
2565 else {%>
2566        <td class="<%=class_component%>" nowrap>Units</td>
2567        <td class="<%=class_component%>" nowrap>Sub-parameter</td>
2568        <td>&nbsp;</td>
2569        <td width="100%">&nbsp;</td>
2570
2571<%}%>
2572</tr>
2573<tr>
2574        <td nowrap>
2575                <select <%=dis_component%> name="sel_unit_abs" onChange="updateLegend()">
2576                <%=unit_options_abs%>
2577                </select>
2578                <br><span class="normal"><i>The first unit in the list<br>corresponds to the file experiment unit</i></span>
2579        </td>
2580        <td nowrap valign="top" onChange="initForm('5');return blocForm();"><select <%=dis_component%> name="sel_sspar_abs"><%=sspar_options%></select></td>
2581        <td>&nbsp;</td>
2582<%if (!file_type_abs.equals("densite")) {%>
2583        <%if (graph_sel.equals("2")) {%>
2584                <td width="75%" valign="top">
2585                <select name="sel_unit_ord" <%=dis_vertical_scale%> onChange="document.thisForm.unit_observation_height.value=document.thisForm.sel_unit_ord.value;updateTitle();updateOverview();">
2586                <%=unit_options_ord%>
2587                </select>       
2588                </td>
2589                <td width="25%" valign="top">
2590                <select name="sel_sspar_ord" <%=dis_vertical_scale%> onChange="updateTitle();updateOverview();">
2591                <%=ssparord_options%>
2592                </select>
2593                </td>
2594        <%}
2595        else {%>
2596        <td width="100%" valign="top">
2597        <select name="sel_unit_ord" <%=dis_vertical_scale%> onChange="document.thisForm.unit_observation_height.value=document.thisForm.sel_unit_ord.value;updateTitle();updateOverview();">
2598        <%=unit_options_ord%>
2599        </select>
2600        </td>
2601<%}%>
2602<%}else {%>
2603        <td width="100%">&nbsp;
2604        <input type=hidden name="sel_unit_ord" value="<%=sel_unit_ord%>"></td>
2605<%}%>
2606</tr>
2607
2608</table>
2609</td>
2610</tr>
2611
2612<tr>
2613<td>
2614<table border="0" cellpadding="2" cellspacing="2" width="800">
2615<tr>
2616        <%if (!file_type_abs.equals("densite")) {%>
2617        <td class="<%=class_location%>"><b>LOCATION AND TIME RANGE</b></td>
2618        <%} else {%>
2619        <td class="<%=class_location2%>"><b>LOCATION AND TIME RANGE</b></td>
2620        <%}%>
2621</tr>
2622
2623</table>
2624</td>
2625</tr>
2626<tr>
2627<td>
2628<table border="0" cellpadding="2" cellspacing="2" width="800">
2629<%if (!file_type_abs.equals("densite")) {%>
2630<tr>
2631        <td nowrap class="<%=class_ho%>" align="right" nowrap>Latitude</td>
2632        <td nowrap><input onChange=checkLatitude('<%=latmin_file%>','<%=latmax_file%>') type="text" name="latmin" size="10" value="<%=latmin%>" <%=dis_ho%>></td>
2633        <td class="normal" nowrap>to</td>
2634        <td nowrap><input onChange=checkLatitude('<%=latmin_file%>','<%=latmax_file%>') type="text" name="latmax" size="10" value="<%=latmax%>" <%=dis_ho%>>
2635
2636</td>
2637        <td class="normal" width="10%">&nbsp;</td>
2638        <td nowrap class="<%=class_ho%>">Date</td>
2639        <td nowrap><input type="text" disabled name="temp_mindate" size="25" value="<%=DSMinDate%>"><input type="hidden" name="mindate" size="25" value="<%=DSMinDate%>">
2640
2641</td>
2642        <td nowrap class="normal">to</td>
2643        <td width=100%><input type="text" disabled name="temp_maxdate" size="25" value="<%=DSMaxDate%>"><input type="hidden" name="maxdate" size="25" value="<%=DSMaxDate%>">
2644&nbsp;<a href="Javascript:Newfen('select_date.jsp?op=add&sel_date_max='+document.thisForm.maxdate.value+'&sel_date_min='+document.thisForm.mindate.value+'&date_max_file=<%=DSMaxDate_file%>&date_min_file=<%=DSMinDate_file%>&periode=<%=exp_nrecouv%>','Date_range','580','280')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2645        <input type="hidden" value="" name="sel_date_time">     
2646</tr>
2647<tr>
2648        <td nowrap class="<%=class_ho%>" align="right">Longitude</td>
2649        <td><input onChange=checkLongitude('<%=lonmin_file%>','<%=lonmax_file%>') type="text" name="lonmin" size="10" value="<%=lonmin%>" <%=dis_ho%>></td>
2650        <td class="normal" class="normal">to</td>
2651        <td><input onChange=checkLongitude('<%=lonmin_file%>','<%=lonmax_file%>') type="text" name="lonmax" size="10" value="<%=lonmax%>" <%=dis_ho%>>
2652        </td>
2653        <td colspan=2>&nbsp;</td>
2654        <td class="normal" colspan=3 valign="top">
2655        <%if (DSMinDate!="" && DSMinDate!=null) {%>
2656<span class="normal">Files time range :&nbsp;[&nbsp;<%=DSMinDate_file%>&nbsp;-&nbsp;<%=DSMaxDate_file%>&nbsp;]<br>
2657<%if (!exp_nrecouv.equals("-1")) {%>
2658Period of no data overlapping : <%=exp_nrecouv%> days<%}
2659else {%>
2660Period of no data overlapping : None
2661<%}%>
2662</span>
2663<%}
2664else {%>
2665&nbsp;
2666<%}%>
2667</td>
2668
2669</tr>
2670<%}
2671else {%>
2672<tr>
2673        <td nowrap class="<%=class_time%>" align="right" nowrap>Latitude</td>
2674        <td nowrap><input onChange=checkLatitude('<%=latmin_file%>','<%=latmax_file%>') type="text" name="latmin" size="10" value="<%=latmin%>" <%=dis_time%>>
2675</td>
2676        <td class="normal" nowrap>to</td>
2677        <td nowrap><input onChange=checkLatitude('<%=latmin_file%>','<%=latmax_file%>') type="text" name="latmax" size="10" value="<%=latmax%>" <%=dis_time%>></td>
2678        <td class="normal" width="10%">&nbsp;</td>
2679<td nowrap class="<%=class_time%>">Date</td>
2680        <td colspan=3 width="100%">
2681        <input type="text" onChange="checkDate2('<%=DSMinDate_file%>','<%=DSMaxDate_file%>')" name="sel_date_time" size="12" value="<%=sel_date_time%>" <%=dis_time%>>
2682        <input type="hidden" name="mindate" size="25" value="<%=DSMinDate%>">
2683        <input type="hidden" name="maxdate" size="25" value="<%=DSMaxDate%>">
2684        <%if (DSMinDate!="" && DSMinDate!=null) {%>
2685&nbsp;<span class="normal">Range :&nbsp;[&nbsp;<%=DSMinDate_file.substring(0,10)%>&nbsp;-&nbsp;<%=DSMaxDate_file.substring(0,10)%>&nbsp;]</span>
2686<%}%>
2687
2688</td>
2689</tr>
2690<tr>
2691        <td nowrap class="<%=class_time%>" align="right">Longitude</td>
2692        <td><input onChange=checkLongitude('<%=lonmin_file%>','<%=lonmax_file%>') type="text" name="lonmin" size="10" value="<%=lonmin%>" <%=dis_time%>>
2693        <td class="normal">to</td>
2694        <td><input onChange=checkLongitude('<%=lonmin_file%>','<%=lonmax_file%>') type="text" name="lonmax" size="10" value="<%=lonmax%>" <%=dis_time%>>
2695        <td colspan=2>&nbsp;</td>
2696</tr>
2697
2698<%}%>
2699</table>
2700</td>
2701</tr>
2702<%if (!file_type_abs.equals("densite")) {%>
2703<tr>
2704<td>
2705<table border="0" cellpadding="2" cellspacing="2" width="800">
2706<tr><td class='<%=class_location%>'><b>HEIGHT OBSERVATION</b>&nbsp;<%=heightTexte%></td></tr>
2707</table>
2708</td>
2709</tr>
2710
2711<table border="0" cellpadding="2" cellspacing="2" width="800">
2712<tr>
2713        <td nowrap class="<%=class_ho%>">Value</td>
2714        <td nowrap><input type="text" name="observation_height" size="10" value="<%=observation_height%>" onChange="updateTitle();updateOverview();" <%=dis_ho%>></td>
2715        <td class="normal" width="10%">&nbsp;</td>
2716        <td nowrap class="<%=class_ho%>">Vertical scale selected</td>
2717        <td nowrap><input type="text" name="par_observation_height" value="<%=par_observation_height%>" size="45" disabled></td>
2718        <td class="normal" width="10%">&nbsp;</td>
2719        <td nowrap class="<%=class_ho%>">Units selected</td>
2720        <td nowrap><input type="text" name="unit_observation_height" value="<%=sel_unit_ord%>" size="10" disabled></td>
2721</tr>
2722</table>
2723<%}
2724else {%>
2725<input type="hidden" name="par_observation_height" value="">
2726<input type="hidden" name="observation_height" value="">
2727<input type="hidden" name="unit_observation_height" value="">
2728<%}%>
2729
2730<tr><td>&nbsp;</td></tr>
2731<tr>
2732<td>
2733<table border="0" cellpadding="2" cellspacing="2" width="800">
2734<tr><td class='titreN'><b>GRAPHIC SETTINGS</b></td></tr>
2735<tr><td class="normal" align="left"><i>Interpolation settings</i>&nbsp;<a href="Javascript:Newfen('pop_up1.jsp','Interpolation_set_up','790','490')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2736</tr>
2737</table>
2738</td>
2739</tr>
2740<tr>
2741<td>
2742<table border="0" cellpadding="2" cellspacing="2" width="800">
2743<tr><td class='rubrique'><b>GEOGRAPHIC PROJECTION</b></td></tr>
2744</table>
2745</td>
2746</tr>
2747<table border="0" cellpadding="2" cellspacing="2" width="800">
2748  <tr>
2749    <td nowrap><input type="radio" onClick="document.thisForm.hemisphere.disabled=true;" name="map_projection" value="0" <%if (map_projection.equals("0")) out.write("checked");%>></td>
2750        <td class="normal" nowrap>Standard (latitude/longitude grid)</td>
2751        <td width="40">&nbsp;</td>
2752    <td align="right"><input type="radio" onClick="document.thisForm.hemisphere.disabled=false;" name="map_projection" value="1" <%if (map_projection.equals
2753("1")) out.write("checked");%>></td>
2754        <td class="normal" nowrap align="left">Stereopolar (</td>
2755        <td nowrap>
2756        <select name="hemisphere" <%if (map_projection.equals("0")) {out.write("disabled");} else {out.write("");}%>>
2757        <option value="1" <%if (hemisphere.equals("1")) out.write("selected");%>>North</option>
2758        <option value="2" <%if (hemisphere.equals("2")) out.write("selected");%>>South</option>
2759        </select></td>
2760        <td class="normal" nowrap> Pole)</td>
2761        <td width="100%">&nbsp;</td>
2762        </tr>
2763        <%if ((!sel_tpl_name.equals("") && !sel_tpl_name.equals("null")) && (graph_sel.equals("") || graph_sel.equals("null"))) {%>
2764        <tr>
2765        <td colspan=8 class="normal" nowrap><i>Select a graph</i>&nbsp;&nbsp;<a href="#" onClick="openListGraph('2','1','<%=graph_sel%>')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2766
2767        </tr>
2768        <%}%>
2769</table>
2770</td>
2771</tr>
2772
2773
2774<%if (graph_sel.equals("0")) {%>
2775<tr>
2776<td>
2777<table border="0" cellpadding="2" cellspacing="2" width="800">
2778<tr><td class='rubrique' colspan=3><b>VERTICAL ANALYSIS</b></td></tr>
2779<tr>
2780<td class="normal" valign="top" width=50%><i>Fine Range Settings</i>&nbsp;&nbsp;<a href="Javascript:Newfen('pop_up00.jsp','pop_up00','775','450')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2781
2782<td class="normal" align=right valign="top" width=50%><i>Change type of graphic</i>&nbsp;&nbsp;<a href="#" onClick="openListGraph('2','','<%=graph_sel%>')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2783<td class="normal" align=right nowrap><img src="<%=imSelected%>" name="imSelected" width="40" height="40" border="1" align="absmiddle"></td>
2784
2785</tr>
2786</table>
2787</td>
2788</tr>
2789
2790<%}%>
2791
2792
2793<%if (graph_sel.equals("1")) {%>
2794<tr>
2795<td>
2796<table border="0" cellpadding="2" cellspacing="2" width="800">
2797<tr><td class='rubrique' colspan=3><b>TIME ANALYSIS</b></td></tr>
2798<tr>
2799<td class="normal" valign="top" width=50%><i>Fine Range Settings</i>&nbsp;&nbsp;<a href="Javascript:Newfen('pop_up01.jsp','pop_up01','775','450')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2800
2801<td class="normal" align=right valign="top" width=50%><i>Change type of graphic</i>&nbsp;&nbsp;<a href="#" onClick="openListGraph('2','','<%=graph_sel%>')">
2802<img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2803<td class="normal" align=right nowrap><img src="<%=imSelected%>" name="imSelected" width="40" height="40" border="1" align="absmiddle"></td>
2804
2805</tr>
2806</table>
2807</td>
2808</tr>
2809
2810<%}%>
2811
2812
2813<%if (graph_sel.equals("2")) {%>
2814<tr>
2815<td>
2816<table border="0" cellpadding="2" cellspacing="2" width="800">
2817<tr><td class='rubrique' colspan=3><b>XY PLOT</b></td></tr>
2818<tr>
2819<td class="normal" valign="top" width=50%><i>Fine Range Settings</i>&nbsp;&nbsp;<a href="Javascript:Newfen('pop_up02.jsp','pop_up02','775','450')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2820
2821<td class="normal" align=right valign="top" width=50%><i>Change type of graphic</i>&nbsp;&nbsp;<a href="#" onClick="openListGraph('2','','<%=graph_sel%>')">
2822<img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2823<td class="normal" align=right nowrap><img src="<%=imSelected%>" name="imSelected" width="40" height="40" border="1" align="absmiddle"></td>
2824
2825</tr>
2826</table>
2827</td>
2828</tr>
2829
2830<%}%>
2831
2832
2833<%if (graph_sel.equals("3")) {%>
2834<tr>
2835<td>
2836<table border="0" cellpadding="2" cellspacing="2" width="800">
2837<tr><td class='rubrique' colspan=3><b>DOT DISTRIBUTION PLOT SET-UP</b></td></tr>
2838<tr>
2839<td class="normal" valign="top" width=50%><i>Fine Range Settings</i>&nbsp;&nbsp;<a href="Javascript:Newfen('pop_up7.jsp','pop_up7','775','450')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2840
2841
2842<td class="normal" align=right valign="top" width=50%><i>Change type of graphic</i>&nbsp;&nbsp;<a href="#" onClick="openListGraph('2','','<%=graph_sel%>')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2843<td class="normal" align=right nowrap><img src="<%=imSelected%>" name="imSelected" width="40" height="40" border="1" align="absmiddle"></td>
2844
2845</tr>
2846</table>
2847</td>
2848</tr>
2849
2850<%}%>
2851
2852<%if (graph_sel.equals("13")) {%>
2853<tr>
2854<td>
2855<table border="0" cellpadding="2" cellspacing="2" width="800">
2856<tr><td colspan=10 class='rubrique'><b>CONTOUR PLOT SET-UP</b></td></tr>
2857<tr>
2858        <td nowrap align="right"><input type="radio" name="levels" value="0" <%if (levels.equals("0")) out.write("checked");%>></td>
2859        <td nowrap class="normal">Default levels</td>
2860        <td width="10%">&nbsp;</td>
2861        <td align="right" nowrap><input type="radio" name="levels" value="1" <%if (levels.equals("1")) out.write("checked");%>></td>
2862        <td class="normal" nowrap>User Defined levels&nbsp;&nbsp;<a href="Javascript:if (document.thisForm.sel_par_abs.value=='') {alert('For these advanced settings a component must be selected');} else {document.thisForm.levels[1].checked=true;Newfen('pop_up2.jsp','pop_up2','775','450');}"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2863        <td width="10%">&nbsp;</td>
2864        <td class="ssrubrique" nowrap height=5 align="right">Number of Default levels</td>
2865        <td align="left" width="100%"><input disabled type="text" name="level_value" value="5" size="5" onChange="checkValue(document.thisForm.level_value.value,'Level value','5','1');"></td>
2866        <td class="normal" align=right valign="top" nowrap><i>Change type of graph</i>&nbsp;&nbsp;<a href="#" onClick="openListGraph('2','','<%=graph_sel%>');"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2867<td class="normal" align=right rowspan=2 nowrap><img src="<%=imSelected%>" name="imSelected" width="40" height="40" border="1" align="absmiddle"></td>
2868
2869</tr>
2870<tr>
2871    <td class="normal" colspan="9" align="left"><i>Advanced settings</i>&nbsp;<a href="Javascript:if (document.thisForm.sel_par_abs.value=='') {alert('For these advanced settings a component must be selected');} else{Newfen('pop_up3.jsp','Contour_Set_up','775','450')}"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></td>
2872</tr>
2873</table>
2874</td>
2875</tr>
2876<%}%>
2877
2878<tr>
2879<td>
2880<table border="0" cellpadding="2" cellspacing="2" width="800">
2881<tr><td colspan=3 class='rubrique'><b>LEGENDS SET-UP</b></td></tr>
2882<tr>
2883        <td class="ssrubrique" nowrap align="right">Title</td>
2884        <td nowrap><input type="text" name="ftitle" size="80" maxsize="300" value="<%=ftitle%>" onChange="updateOverview();"></td>
2885        <td class="normal" width="100%"><i>Advanced Settings</i>&nbsp;&nbsp;<a href="Javascript:Newfen('pop_up6.jsp','pop_up6','800','450')"><img src="Icons/infos.gif" width="17" height="17" border="0" align="absmiddle"></a></td>
2886
2887</tr>
2888<tr>
2889        <td class="ssrubrique" nowrap align="left">Colour Bar Legend</td>
2890        <td colspan=2 width="100%"><input type="text" name="colour_bar_title" size="80" maxsize="150" value="<%=colour_bar_title%>"></td>
2891</tr>
2892</table>
2893</td>
2894</tr>
2895</table>
2896</form>
2897</body>
2898</html>
2899
Note: See TracBrowser for help on using the repository browser.