source: ether_eccad/trunk/ECCAD_INTERFACE/original/SelectEccad.js @ 68

Last change on this file since 68 was 68, checked in by cbipsl, 14 years ago

commit v1 eccad

  • Property svn:executable set to *
File size: 10.4 KB
RevLine 
[68]1/******************************************************************************
2   Function LoadProduct
3   Called when the selection of the parameter change
4   This function loads the list of the products in the select "Product"
5
6   It calls a function php who loads the list
7******************************************************************************/
8   function LoadProduct()
9   {
10
11      //CHange the display
12      document.getElementById("ProductLine").style.visibility='visible';
13//      document.getElementById('FirstDateLine').style.visibility='hidden';
14//      document.getElementById('SecondDateLine').style.visibility='hidden';
15//      document.getElementById('Month1').style.visibility='hidden';
16//      document.getElementById('Month2').style.visibility='hidden';
17//      document.getElementById('Day1').style.visibility='hidden';
18//      document.getElementById('Day2').style.visibility='hidden';
19//      document.getElementById('DFFLine').style.visibility='hidden';
20//      document.getElementById('DFCLine').style.visibility='hidden';
21//      document.getElementById('Valid').style.visibility='hidden';
22//      document.getElementById('Dates').style.visibility='hidden';
23//      document.getElementById('ZoneStudy').style.visibility='hidden';
24//      document.getElementById('Output').style.visibility='hidden';
25
26
27      //Clear the select "Parameter"
28      document.getElementById("Product").options.length = 0;
29
30      ValParameter=document.getElementById("Parameter").value;
31      ValParameter=ValParameter.split("-");
32      ValParameter=ValParameter[0];
33      //call of the php function
34      texte=file('http://zeus.medias.cnes.fr/eccad/CODEPHP/LoadProducts.php?id_param='+escape(ValParameter));
35      /*Form of the result of the function:
36         idprod1,NameProd1>idprod2,NameProd2
37      */
38      //create the table with the list of Products
39      TabProducts=texte.split(">");
40      for(i=0;i<TabProducts.length-1;i++)
41      {
42         ProductIdText=TabProducts[i].split(",");
43         var element = document.createElement("option");
44         //insert id
45         element.value = ProductIdText[0]+"-"+ProductIdText[1];
46         //insert text
47         element.text = ProductIdText[1];
48         document.getElementById("Product").add(element, null);
49      }
50   }
51
52
53
54/******************************************************************************
55   Function LoadDate
56   This function displays 1 or 2 dates.
57   According to Period display month and day
58   Possible evolution: change month and day according to selected year
59******************************************************************************/
60
61   function LoadDate()
62   {
63      //Chose the type of study
64      NbDate=StudyType();
65     
66      //First Date Last Date
67      //Period of the data
68      ValProduct=document.getElementById("Product").value;
69      ValProduct=ValProduct.split("-");
70      ValProduct=ValProduct[0]
71      texte=file('http://zeus.medias.cnes.fr/eccad/CODEPHP/LoadDates.php?id_produit='+ValProduct);
72      /*
73      Form of the result:
74      Period of the data>First Date>Last Date
75      */
76      Period_begin_end=texte.split(">");
77      Period=Period_begin_end[0];
78      Period=Period.substring(0,Period.length-4)
79      Period=parseFloat(Period);
80      Date1=Period_begin_end[1].split("-"); // Date=[Year, Month, Day]
81      Date2=Period_begin_end[2].split("-");
82
83      document.getElementById("ZoneStudy").style.visibility='visible';
84      document.getElementById('Valid').style.visibility='visible';
85      document.getElementById("Output").style.visibility='visible';
86      document.getElementById('DFFLine').style.visibility='visible';
87      document.getElementById('DFCLine').style.visibility='visible';
88      document.getElementById("Dates").style.visibility='visible';
89
90
91      //Display First Date
92//      document.getElementById("FirstDateLine").style.visibility='visible';
93      document.getElementById("Year1").options.length = 0;
94      document.getElementById("Month1").options.length = 0;
95      document.getElementById("Day1").options.length = 0;
96      for(i=Date1[0]; i<=Date2[0]; i++)
97      {
98         var element = document.createElement("option");
99         element.text = i+'';
100         element.value = i+'';
101         document.getElementById("Year1").add(element, null);
102      }
103      //Display Month (or not)
104      if(Period<=30)
105      {
106         for(i=1; i<=12; i++)
107         {
108            var element = document.createElement("option");
109            element.text = i+'';
110            element.value = i+'';
111            document.getElementById("Month1").add(element, null);
112         }
113         document.getElementById("Month1").style.visibility='visible';
114      }
115      else {
116         document.getElementById("Month1").style.visibility='hidden';
117      }
118
119      //Display Day (or not)
120      if(Period<30)
121      {
122         for(i=1; i<=31; i++)
123         {
124            var element = document.createElement("option");
125            element.text = i+'';
126            element.value = i+'';
127            document.getElementById("Day1").add(element, null);
128         }
129         document.getElementById("Day1").style.visibility='visible';
130      }
131      else {
132         document.getElementById("Day1").style.visibility='hidden';
133      }
134
135
136      //Display second date
137      if(NbDate==2)
138      {
139//         document.getElementById('FirstDate').innerHTML='First Date';
140         document.getElementById("SecondDateLine").style.visibility='visible';
141         document.getElementById("Year2").options.length = 0;
142         document.getElementById("Month2").options.length = 0;
143         document.getElementById("Day2").options.length = 0;
144         for(i=Date1[0]; i<=Date2[0]; i++)
145         {
146            var element = document.createElement("option");
147            element.text = i+'';
148            element.value = i+'';
149            document.getElementById("Year2").add(element, null);
150         }
151         //Display Month (or not)
152         if(Period<=30)
153         {
154            for(i=1; i<=12; i++)
155            {
156               var element = document.createElement("option");
157               element.text = i+'';
158               element.value = i+'';
159               document.getElementById("Month2").add(element, null);
160            }
161            document.getElementById("Month2").style.visibility='visible';
162         }
163         else {
164            document.getElementById("Month2").style.visibility='hidden';
165         }
166
167         //Display Day (or not)
168         if(Period<30)
169         {
170            for(i=1; i<=31; i++)
171            {
172               var element = document.createElement("option");
173               element.text = i+'';
174               element.value = i+'';
175               document.getElementById("Day2").add(element, null);
176            }
177            document.getElementById("Day2").style.visibility='visible';
178         }
179         else {
180            document.getElementById("Day2").style.visibility='hidden';
181         }
182      }
183      else {
184//         document.getElementById('FirstDate').innerHTML='Date';
185         document.getElementById("SecondDateLine").style.visibility='hidden';
186         document.getElementById("Day2").style.visibility='hidden';
187         document.getElementById("Month2").style.visibility='hidden';
188      }
189   }
190
191
192
193
194
195/******************************************************************************
196Function VerifyDate
197This functions checks if the fist date is not after the last
198******************************************************************************/
199   function VerifyDate()
200   {
201      var Year1=document.getElementById("Year1").value;
202      var Month1=document.getElementById("Month1").value;
203      var Day1=document.getElementById("Day1").value;
204      var Year2=document.getElementById("Year2").value;
205      var Month2=document.getElementById("Month2").value;
206      var Day2=document.getElementById("Day2").value;
207      Date1 = new Date(Year1, Month1, Day1);
208      Date2 = new Date(Year2, Month2, Day2);
209      if(Date2.getTime() - Date1.getTime() < 0){
210         document.getElementById('ErrorDate').innerHTML='<span style="color:#cc0000">First Date is later than last</span>';
211      }
212      else{
213         document.getElementById('ErrorDate').innerHTML='';
214      }
215     
216   }
217
218
219/******************************************************************************
220Function VerifyArea
221This functions verify the format of the coordinate
222******************************************************************************/
223   function VerifyArea()
224   {
225      var UpLeftLat=parseFloat(document.getElementById("UpLeftLat").value);
226      var UpLeftLon=parseFloat(document.getElementById("UpLeftLon").value);
227      var LowRightLat=parseFloat(document.getElementById("LowRightLat").value);
228      var LowRightLon=parseFloat(document.getElementById("LowRightLon").value);
229      if(UpLeftLat+UpLeftLon+LowRightLat+LowRightLon == Number.NaN){
230         document.getElementById('ErrorArea').innerHTML='<span style="color:#cc0000">Invalid coordinates</span>';
231      }
232      else
233      {
234         if(UpLeftLat<LowRightLat|| UpLeftLon>LowRightLon){
235            document.getElementById('ErrorArea').innerHTML='<span style="color:#cc0000">Invalid coordinates</span>';
236         }
237         else{
238            document.getElementById('ErrorArea').innerHTML='';
239         }
240      }
241   }
242
243
244
245
246/******************************************************************************
247Function StudyType
248Return the number of date to display.
249This information should be in the database or in configuration file
250******************************************************************************/
251   function StudyType()
252   {
253      var list= document.getElementById('Parameter').options;
254      for(var i=0; i<list.length; i++)
255      {
256         if(list[i].selected) NameParameter=list[i].text;
257      }
258     
259      NameParameter=NameParameter.toLowerCase();
260      switch (NameParameter)
261      {
262         case 'burnt area':
263            return 2;
264         break;
265         case "population":
266            return 2;
267         break;
268         case 'vegetation species':
269            return 1;
270         break;
271         default:
272            return 1;
273         break;
274      }
275   }
276
277
278//This functions read the function php
279   function file(fichier)
280   {
281      if(window.XMLHttpRequest) // FIREFOX
282         xhr_object = new XMLHttpRequest();
283      else if(window.ActiveXObject) // IE
284            xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
285         else
286            return(false);
287      xhr_object.open("GET", fichier, false);
288      xhr_object.send(null);
289      if(xhr_object.readyState == 4) return(xhr_object.responseText);
290      else return(false);
291   }
Note: See TracBrowser for help on using the repository browser.