source: ether_visual/trunk/save_form/formulaire2706.jsp @ 678

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

ajout V3

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