· 5 years ago · Feb 17, 2020, 03:08 PM
1
2var im_arr_nsensor_overlay = [];
3var im_arr_misat_overlay = [];
4var im_arr_misat_fieldView_img_overlay = [];
5var im_arr_rtk_overlay = [];
6var im_arr_uav_overlay = [];
7var im_arr_migrass_overlay = [];
8var im_arr_rgb_overlay = [];
9var im_arr_yield_overlay = [];
10var im_arr_cigreen_overlay = [];
11var im_arr_cigreen_fieldView_img_overlay = [];
12var im_arr_cvi_overlay = [];
13var im_arr_cvi_fieldView_img_overlay = [];
14var im_polygon_overlay = [];
15var im_arr_conductivity_overlay = [];
16var im_polygon_overlay_temp_customer_overlay = [];
17var im_arr_misat_variety_view_img_overlay = [];
18var im_arr_cigreen_variety_view_img_overlay = [];
19var im_nsensor_url = "https://api.mi.farm/static/images/nsensor/";
20var im_misat_url = "https://api.mi.farm/static/images/fvat/";
21var im_uav_url = "https://api.mi.farm/static/images/uav/";
22var im_migrass_url = "https://api.mi.farm/static/images/ndmi/";
23var im_conductivity_url = "https://api.mi.farm/static/images/conductivity/";
24var im_rgb_url = "https://api.mi.farm/static/images/rgb/";
25var im_yield_url = "https://api.mi.farm/static/images/yield/";
26var im_cdax_img_url = "https://api.mi.farm/static/images/cdax/";
27var im_cigreen_url = "https://api.mi.farm/static/images/cigreen/";
28var im_cvi_url = "https://api.mi.farm/static/images/cvi/";
29var im_bImgTypeDatesAjax_loading = false;
30var im_bAjax_loading = false;
31var im_bMapDataLoaded = false;
32var im_arr_n_sensor_NAS_dates = [];
33var im_arr_n_sensor_BI_dates = [];
34var im_arr_n_sensor_N_dates = [];
35
36var im_arr_ndmi_dates = [];
37var im_arr_ndmi_dates_NoCloudCover = [];
38var im_arr_ndmi_dates_HasCloud = [];
39var im_arr_ndmi_dates_PartialCloudCover = [];
40var im_arr_fvat_dates = [];
41var im_arr_fvat_dates_NoCloudCover = [];
42var im_arr_fvat_dates_PartialCloudCover = [];
43var im_arr_fvat_dates_HasCloud = [];
44var im_arr_rgb_dates = [];
45var im_arr_rgb_dates_NoCloudCover = [];
46var im_arr_rgb_dates_PartialCloudCover = [];
47var im_arr_rgb_dates_HasCloud = [];
48
49var im_arr_cigreen_dates = [];
50var im_arr_cigreen_dates_NoCloudCover = [];
51var im_arr_cigreen_dates_PartialCloudCover = [];
52var im_arr_cigreen_dates_HasCloud = [];
53
54var im_arr_cvi_dates = [];
55var im_arr_cvi_dates_NoCloudCover = [];
56var im_arr_cvi_dates_PartialCloudCover = [];
57var im_arr_cvi_dates_HasCloud = [];
58
59var lyr_selectedLock = "";
60//afbi
61var im_arr_afbi_cdax_img_overlay = [];
62
63var tmp_img_lyr_misat_current_day = "";
64var tmp_img_lyr_misat_current_month = "";
65var tmp_img_lyr_misat_current_yr = "";
66
67var tmp_img_lyr_cigreen_current_day = "";
68var tmp_img_lyr_cigreen_current_month = "";
69var tmp_img_lyr_cigreen_current_yr = "";
70
71var tmp_img_lyr_cvi_current_day = "";
72var tmp_img_lyr_cvi_current_month = "";
73var tmp_img_lyr_cvi_current_yr = "";
74
75var tmp_img_lyr_variety_current_day = "";
76var tmp_img_lyr_variety_current_month = "";
77var tmp_img_lyr_variety_current_yr = "";
78
79var misat_sub_season_end_date_txt = "";
80
81$(".fvat_subscription_link").click(function () {
82 $("#favtSubscription").modal({ backdrop: 'static', keyboard: false });
83 $("#favtSubscription .modal-dialog").attr("style", "width:90%;");
84 $("#fvatInfo").hide();
85
86 //insert date expiry text
87 if (misat_sub_season_end_date_txt != "") {
88 $("#fvat_subscription_date_exp").empty().text("This subscription will end on " + misat_sub_season_end_date_txt + " which is the end of your current season.");
89 }
90
91 $(".fvat_terms_cond").prop('checked', false);
92
93 if ($("#fvatSubscriptionServiceFarmsList option").length == 1) {
94 //hide farm list;
95 $("#fvatSubscriptionServiceFarmsList").hide();
96 $("#fvatSubscriptionServiceFarmsList").prev("label").hide();
97 }
98 else {
99 $("#fvatSubscriptionServiceFarmsList").show();
100 $("#fvatSubscriptionServiceFarmsList").prev("label").show();
101 }
102});
103
104$("#fvatSubscriptionServiceSubmit").click(function () {
105 $("#fvatInfo").hide();
106 if (!$(".fvat_terms_cond").is(":checked")) {
107 $("#fvatErrInfo").empty().text("Please tick the terms and conditions checkbox.").show();
108 }
109 else {
110 $("#fvatErrInfo").empty().hide();
111 //submit subscription
112
113 if ($("#fVATServices").find(":selected").val() != "0") {
114 $.ajax({
115 type: "POST",
116 url: urlPrepend + "/layerdata/favtsubscription/",
117 data: { service: $("#fVATServices").find(":selected").text(), serviceId: $("#fVATServices").find(":selected").val(), farmId: $("#fvatSubscriptionServiceFarmsList").find(":selected").val(), seasonId: $("#customerSeason").find(":selected").val() }
118 }).done(function (data) {
119 if (data == "3") {
120 displayErrMsg("Your subscription was not successful. Please try again.");
121 $("#favtSubscription").modal("hide");
122 }
123 else if(data == "1") {
124 displaySuccessMsg("Your subscription was successful.");
125 $("#favtSubscription").modal("hide");
126 }
127 else {
128 //subscripton already exists
129 $("#fvatInfo").show();
130 }
131
132 });
133 }
134 else {
135 $("#fvatErrInfo").empty().text("Please select a service.").show();
136 }
137 }
138
139 //deselect from left hand panel.
140 $(".fvat_subscription_link").removeClass("form_item_selected");
141});
142
143//set t&c link
144$(".favt_terms_cond_lnk").click(function () {
145 window.open("https://portal.precisiondecisions.co.uk/termsandconditions.aspx");
146
147 $(".fvat_terms_cond").prop('checked', true);
148})
149
150$(document).on("click", "#fvatSubscription_close_modal", function () {
151 $("#favtSubscription").modal('hide');
152});
153
154
155function img_displayImageOverLaySubType(date, layerMode, layerSubMode, arr) {
156
157
158 var newDateFormat = date.replace(/-/g, '/');
159 var layerSubModeName = "";
160
161 if (layerMode == 1) {
162 layerSubModeName = "NAS";
163 if (layerSubMode == 6) {
164 layerSubModeName = "BI";
165 }
166 if (layerSubMode == 5) {
167 layerSubModeName = "N";
168 }
169 }
170
171 if (layerMode == 6) {
172 layerSubModeName = "EM Difference";
173 if (layerSubMode == 8) {
174 layerSubModeName = "EM Shallow";
175 }
176 if (layerSubMode == 7) {
177 layerSubModeName = "EM Deep";
178 }
179 }
180
181
182 //empty legend container
183 $(".imagery_layer_legend").empty();
184 img_clearOverlay();
185
186 if (!loadLocalMapLayerImgData(layerMode, newDateFormat + " - " + layerSubModeName + "|" + layerSubMode)) {
187
188 im_getOverlayByDate(newDateFormat + " - " + layerSubModeName, layerMode, layerSubMode);
189 }
190 else {
191
192 processImagerySubTypeObjectArrays(arr, newDateFormat, layerMode, layerSubModeName + "|" + layerSubMode);
193
194 }
195}
196
197
198function img_displayImageOverLay(date, layerMode, arr) {
199
200 var newDateFormat = date.replace(/-/g, '/')
201 //empty legend container
202 $(".imagery_layer_legend").empty();
203 img_clearOverlay();
204
205 if (!loadLocalMapLayerImgData(layerMode, newDateFormat)) {
206
207 im_getOverlayByDate(newDateFormat, layerMode, 0);
208 }
209 else {
210
211 im_loadSubTypeStatus(layerMode, date);
212 processImageryObjectArrays(arr, newDateFormat, layerMode);
213 }
214}
215
216function refeshBISensorCal() {
217 //refresh calendar
218 $(".n_sensor_cal").datepicker("destroy");
219 $(".n_sensor_cal").datepicker({
220 beforeShowDay: function (date) {
221 return (im_arr_n_sensor_BI_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_BI"] : [false, ""];
222 },
223 dateFormat: "dd-mm-yy",
224 defaultDate: new Date(im_arr_n_sensor_BI_dates[0]),
225 minDate: new Date(im_arr_n_sensor_BI_dates[im_arr_n_sensor_BI_dates.length - 1]),
226 onSelect: function (data) {
227 img_displayImageOverLaySubType(data, 1, 6, im_arr_nsensor_overlay);
228 displaySelectedCalDate(data, 1);
229 },
230 maxDate: '0'
231 });
232
233 if ($('.n_sensor_cal > .layer-calendar-skip-months').length === 0) {
234 $(".n_sensor_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
235 }
236}
237
238function refeshNSensorCal() {
239 //refresh calendar
240 $(".n_sensor_cal").datepicker("destroy");
241 $(".n_sensor_cal").datepicker({
242 beforeShowDay: function (date) {
243 return (im_arr_n_sensor_N_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_N"] : [false, ""];
244 },
245 dateFormat: "dd-mm-yy",
246 defaultDate: new Date(im_arr_n_sensor_N_dates[0]),
247 minDate: new Date(im_arr_n_sensor_N_dates[im_arr_n_sensor_N_dates.length - 1]),
248 onSelect: function (data) {
249 img_displayImageOverLaySubType(data, 1, 4, im_arr_nsensor_overlay);
250 displaySelectedCalDate(data, 1);
251 },
252 maxDate:'0'
253 });
254
255 if ($('.n_sensor_cal > .layer-calendar-skip-months').length === 0) {
256 $(".n_sensor_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
257 }
258}
259
260function refeshNASSensorCal() {
261 //refresh calendar
262 $(".n_sensor_cal").datepicker("destroy");
263 $(".n_sensor_cal").datepicker({
264 beforeShowDay: function (date) {
265 return (im_arr_n_sensor_NAS_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_NAS"] : [false, ""];
266 },
267 dateFormat: "dd-mm-yy",
268 defaultDate: new Date(im_arr_n_sensor_NAS_dates[0]),
269 minDate: new Date(im_arr_n_sensor_NAS_dates[im_arr_n_sensor_NAS_dates.length - 1]),
270 onSelect: function (data) {
271 img_displayImageOverLaySubType(data, 1, 4, im_arr_nsensor_overlay);
272 displaySelectedCalDate(data, 1);
273 },
274 maxDate: '0'
275 });
276
277 if ($('.n_sensor_cal > .layer-calendar-skip-months').length === 0) {
278 $(".n_sensor_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
279 }
280}
281
282function refreshRTKCal() {
283 //refresh calendar
284 $(".conductivity_cal").datepicker("destroy");
285 $(".conductivity_cal").datepicker({
286 beforeShowDay: function (date) {
287 return (im_arr_conductivity_Diff_dates.indexOf(date.toISOString()) > -1) ? [true, "conductivity_calendar_date_Diff"] : [false, ""];
288 },
289 dateFormat: "dd-mm-yy",
290 defaultDate: new Date(im_arr_conductivity_Diff_dates[0]),
291 onSelect: function (data) {
292 img_displayImageOverLaySubType(data, 6, 9, im_arr_conductivity_overlay);
293 displaySelectedCalDate(data, 6);
294 },
295 maxDate: '0'
296 });
297}
298
299function refreshMigrassCal() {
300 //refresh calendar
301 $(".migrass_cal").datepicker("destroy");
302 $(".migrass_cal").datepicker({
303 beforeShowDay: function (date) {
304 return (im_arr_ndmi_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_ndmi_dates_NoCloudCover, im_arr_ndmi_dates_HasCloud, im_arr_ndmi_dates_PartialCloudCover)] : [false, ""];
305 },
306 dateFormat: "dd-mm-yy",
307 defaultDate: new Date(im_arr_ndmi_dates[0]),
308 minDate: new Date(im_arr_ndmi_dates[im_arr_ndmi_dates.length - 1]),
309 onSelect: function (data) {
310 img_displayImageOverLay(data, 7, im_arr_migrass_overlay);
311 displaySelectedCalDate(data, 7);
312 },
313 maxDate: '0'
314 });
315
316 if ($('.migrass_cal > .layer-calendar-skip-months').length === 0) {
317 $(".migrass_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
318 }
319
320}
321
322function refreshMisatCal() {
323
324
325 //refresh calendar
326 $(".misat_cal").datepicker("destroy");
327 $(".misat_cal").datepicker({
328 beforeShowDay: function (date) {
329 return (im_arr_fvat_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_fvat_dates_NoCloudCover, im_arr_fvat_dates_HasCloud, im_arr_fvat_dates_PartialCloudCover)] : [false, ""];
330 },
331 dateFormat: "dd-mm-yy",
332 defaultDate: new Date(im_arr_fvat_dates[0]),
333 minDate: new Date(im_arr_fvat_dates[im_arr_fvat_dates.length - 1]),
334 onSelect: function (data) {
335 img_displayImageOverLay(data, 2, im_arr_misat_overlay);
336 displaySelectedCalDate(data, 2);
337 },
338 maxDate: '0'
339 });
340
341 if ($('.misat_cal > .layer-calendar-skip-months').length === 0) {
342 $(".misat_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
343 }
344
345}
346
347function refreshCIgreenCal() {
348 //refresh calendar
349 $(".cigreen_cal").datepicker("destroy");
350 $(".cigreen_date_selected").empty();
351 var setDefaultDate = new Date(im_arr_cigreen_dates[0]);
352 if ((tmp_img_lyr_cigreen_current_month != "") && (tmp_img_lyr_cigreen_current_yr != "")) {
353 //user has browsed misat calendar months
354 setDefaultDate = (new Date(tmp_img_lyr_cigreen_current_month + '/01/' + tmp_img_lyr_cigreen_current_yr)).toISOString()
355 }
356
357
358 $(".cigreen_cal").datepicker({
359 beforeShowDay: function (date) {
360 return (im_arr_cigreen_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_cigreen_dates_NoCloudCover, im_arr_cigreen_dates_HasCloud, im_arr_cigreen_dates_PartialCloudCover)] : [false, ""];
361 },
362 dateFormat: "dd-mm-yy",
363 defaultDate: new Date(setDefaultDate),
364 minDate: new Date(im_arr_cigreen_dates[im_arr_cigreen_dates.length - 1]),
365 onSelect: function (data) {
366 img_displayImageOverLay(data, 17, im_arr_cigreen_overlay);
367 displaySelectedCalDate(data, 17);
368 tmp_img_lyr_cigreen_current_day = data.split('-')[0];
369 tmp_img_lyr_cigreen_current_month = data.split('-')[1];
370 tmp_img_lyr_cigreen_current_yr = data.split('-')[2];
371 },
372 maxDate: '0',
373 onChangeMonthYear: function (year, month) {
374 tmp_img_lyr_cigreen_current_month = month;
375 tmp_img_lyr_cigreen_current_yr = year;
376 }
377 });
378
379 if ($('.cigreen_cal > .layer-calendar-skip-months').length === 0) {
380 $(".cigreen_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
381 }
382
383}
384
385function refreshRGBCal() {
386 //refresh calendar
387 $(".rgb_cal").datepicker("destroy");
388 $(".rgb_cal").datepicker({
389 beforeShowDay: function (date) {
390 return (im_arr_rgb_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_rgb_dates_NoCloudCover, im_arr_rgb_dates_HasCloud, im_arr_rgb_dates_PartialCloudCover)] : [false, ""];
391 },
392 dateFormat: "dd-mm-yy",
393 defaultDate: new Date(im_arr_rgb_dates[0]),
394 minDate: new Date(im_arr_rgb_dates[im_arr_rgb_dates.length - 1]),
395 onSelect: function (data) {
396 img_displayImageOverLay(data, 8, im_arr_rgb_overlay);
397 displaySelectedCalDate(data, 8);
398 },
399 maxDate: '0'
400 });
401
402 if ($('.rgb_cal > .layer-calendar-skip-months').length === 0) {
403 $(".rgb_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
404 }
405
406}
407
408function refreshYieldCal() {
409
410 //refresh calendar
411 $(".rgb_cal").datepicker("destroy");
412 $(".rgb_cal").datepicker({
413 beforeShowDay: function (date) {
414 return (tempArrYielddate.indexOf(date.toISOString()) > -1) ? [true, "conductivity_calendar_date_Diff"] : [false, ""];
415 },
416 dateFormat: "dd-mm-yy",
417 defaultDate: new Date(tempArrYielddate[0]),
418 minDate: new Date(tempArrYielddate[tempArrYielddate.length - 1]),
419 onSelect: function (data) {
420 img_displayImageOverLay(data, 9, im_arr_yield_overlay);
421 displaySelectedCalDate(data, 9);
422 },
423 maxDate: '0'
424 });
425
426 if ($('.rgb_cal > .layer-calendar-skip-months').length === 0) {
427 $(".rgb_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
428 }
429
430}
431
432
433function refreshRTKCal() {
434 //refresh calendar
435 $(".rtk_cal").datepicker("destroy");
436 $(".rtk_cal").datepicker({
437 beforeShowDay: function (date) {
438 return (tempArrRtkdate.indexOf(date.toISOString()) > -1) ? [true, "conductivity_calendar_date_Diff"] : [false, ""];
439 },
440 dateFormat: "dd-mm-yy",
441 defaultDate: new Date(tempArrRtkdate[0]),
442 minDate: new Date(tempArrRtkdate[tempArrRtkdate.length - 1]),
443 onSelect: function (data) {
444 img_displayImageOverLay(data, 3, im_arr_rtk_overlay);
445 displaySelectedCalDate(data, 3);
446 },
447 maxDate: '0'
448 });
449
450 if ($('.rtk_cal > .layer-calendar-skip-months').length === 0) {
451 $(".rtk_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
452 }
453
454}
455
456
457function refreshUAVCal() {
458 //refresh calendar
459 $(".uav_cal").datepicker("destroy");
460 $(".uav_cal").datepicker({
461 beforeShowDay: function (date) {
462 return (tempArrUavdate.indexOf(date.toISOString()) > -1) ? [true, ""] : [false, ""];
463 },
464 dateFormat: "dd-mm-yy",
465 defaultDate: new Date(tempArrUavdate[0]),
466 minDate: new Date(tempArrUavdate[tempArrUavdate.length - 1]),
467 onSelect: function (data) {
468 img_displayImageOverLay(data, 4, im_arr_uav_overlay);
469 displaySelectedCalDate(data, 4);
470 },
471 maxDate: '0'
472 });
473
474 if ($('.uav_cal > .layer-calendar-skip-months').length === 0) {
475 $(".uav_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
476 }
477}
478
479$(document).on("click", ".conductivity_cal_options", function () {
480 //close legend panel.
481 displayLeftDetailsPanel(false);
482 var sub = 0;
483 var subTxT = "";
484 if ($(this).val() == "DIFF") {
485 sub = 9;
486 subTxT = "EM Difference";
487 }
488
489 if ($(this).val() == "Shall") {
490 sub = 8;
491 subTxT = "EM Shallow";
492 }
493
494 if ($(this).val() == "Deep") {
495 sub = 7;
496 subTxT = "EM Deep";
497
498 }
499 $(".conductivity_subtype").empty().text(subTxT);
500
501
502 im_getOverlayByDate("-" + subTxT, 6, sub);
503
504});
505
506
507
508$(document).on("click", ".nsensor_cal_options", function () {
509 //clear map of any previous n-sensor layer
510 img_clearOverlay();
511 //refresh calendar
512 $(".n_sensor_cal").datepicker("destroy");
513 debugger;
514 if ($(this).val() == "BI") {
515 //load BI dates
516 //display calendar
517 $(".n_sensor_cal").datepicker({
518 beforeShowDay: function (date) {
519 return (im_arr_n_sensor_BI_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_BI"] : [false, ""];
520 },
521 dateFormat: "dd-mm-yy",
522 defaultDate: new Date(im_arr_n_sensor_BI_dates[0]),
523 minDate: new Date(im_arr_n_sensor_BI_dates[im_arr_n_sensor_BI_dates.length - 1]),
524 onSelect: function (data) {
525 $(this).find(".n_sensor_calendar_date_BI").each(function () {
526 //var t = $(this).children(0).text();
527 $(this).children(0).addClass("mportant;");
528 })
529
530 img_displayImageOverLaySubType(data, 1, 6, im_arr_nsensor_overlay);
531
532 },
533 maxDate: '0'
534 });
535 }
536
537 if ($(this).val() == "NAS") {
538 //load NAS dates
539 //display calendar
540 $(".n_sensor_cal").datepicker({
541 beforeShowDay: function (date) {
542 return (im_arr_n_sensor_NAS_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_NAS"] : [false, ""];
543 },
544 dateFormat: "dd-mm-yy",
545 defaultDate: new Date(im_arr_n_sensor_NAS_dates[0]),
546 minDate: new Date(im_arr_n_sensor_NAS_dates[im_arr_n_sensor_NAS_dates.length - 1]),
547 onSelect: function (data) {
548 $(this).find(".n_sensor_calendar_date_NAS").each(function () {
549 // var t = $(this).children(0).text();
550 $(this).children(0).addClass("mportant;");
551 })
552
553 img_displayImageOverLaySubType(data, 1, 4, im_arr_nsensor_overlay);
554 },
555 maxDate: '0'
556 });
557 }
558
559
560 if ($(this).val() == "N") {
561 //load N dates
562 //display calendar
563 $(".n_sensor_cal").datepicker({
564 beforeShowDay: function (date) {
565 return (im_arr_n_sensor_N_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_N"] : [false, ""];
566 },
567 dateFormat: "dd-mm-yy",
568 defaultDate: new Date(im_arr_n_sensor_N_dates[0]),
569 minDate: new Date(im_arr_n_sensor_N_dates[im_arr_n_sensor_N_dates.length - 1]),
570 onSelect: function (data) {
571 $(this).find(".n_sensor_calendar_date_N").each(function () {
572 // var t = $(this).children(0).text();
573 $(this).children(0).addClass("mportant;");
574 })
575
576 img_displayImageOverLaySubType(data, 1, 5, im_arr_nsensor_overlay);
577 },
578 maxDate: '0'
579 });
580 }
581
582 if ($('.n_sensor_cal > .layer-calendar-skip-months').length === 0) {
583 $(".n_sensor_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
584 }
585
586})
587
588
589
590im_bImgLayerLoadedTimer = false;
591
592function im_loaderImgLayerData() {
593 if (im_bMapDataLoaded) {
594 removeLoader();
595 clearInterval(im_bImgLayerLoadedTimer);
596 im_bImgLayerLoadedTimer = false;
597 im_bMapDataLoaded = false;
598 }
599 else {
600 im_bImgLayerLoadedTimer = setTimeout(function () { im_loaderImgLayerData() }, 2000);
601 }
602}
603
604function im_loadSubTypeStatus(typeId, date, subTypeId) {
605
606 var subTypeName;
607
608 if (typeId == 1 || typeId == 5) {
609
610 subTypeName = date.split('-')[1].trim();
611 }
612
613 if (typeId == 6) {
614 if (subTypeId == 9) {
615 subTypeName = "EM Difference";
616 }
617 if (subTypeId == 8) {
618 subTypeName = "EM Shallow";
619 }
620 if (subTypeId == 7) {
621 subTypeName = "EM Deep";
622 }
623 }
624
625 loadStatus("Loading " + im_getImgLyrTypeName(typeId, subTypeName) + " Data");
626}
627
628function im_getOverlayByDate(date, typeId, subTypeId) {
629
630
631 if (!im_bAjax_loading) {
632
633 im_bAjax_loading = true;
634 im_loadSubTypeStatus(typeId, date, subTypeId);
635
636 if (typeId == 1 || typeId == 5 || typeId == 6) {
637
638 var thisSubType = date.split('-')[1].trim() + "|" + subTypeId;
639 if (typeId != 6) {
640 date = date.split('-')[0].trim();
641 }
642 else {
643 date = "";
644 }
645 }
646
647 im_loaderImgLayerData();
648
649 $.ajax({
650 type: "POST",
651 url: urlPrepend + "/layerdata/imagery/overlay/",
652 data: { tradingId: getTradingId(), farmId: getFarmId(), layerId: typeId, d: date, s: subTypeId, seasonId: $("#customerSeason").find(":selected").val()},
653 }).done(function (data) {
654
655 //hide crop season overlay
656 crp_clearCropPolygons()
657 crp_clear_farm_wide_crops();
658
659
660 var t = JSON.parse(data);
661 var strDDL = "";
662
663 if (t.hasOwnProperty("nsensor")) {
664 //get nsensor data
665 if (t.nsensor.length > 0) {
666
667 for (var i = 0; i < t.nsensor.length; i++) {
668 im_arr_nsensor_overlay.push(createOverlayObj(t.nsensor[i], 1));
669 }
670
671 processImagerySubTypeObjectArrays(im_arr_nsensor_overlay, date, 1, thisSubType)
672 }
673 }
674
675 if (t.hasOwnProperty("misat")) {
676 //get misat data - misat
677 if (t.misat.length > 0) {
678 for (var i = 0; i < t.misat.length; i++) {
679 im_arr_misat_overlay.push(createOverlayObj(t.misat[i], 2));
680 }
681 //load overlay onto map
682 processImageryObjectArrays(im_arr_misat_overlay, date, 2);
683 }
684 }
685
686 if (t.hasOwnProperty("rtk")) {
687 //get rtk data
688 if (t.rtk.length > 0) {
689
690 for (var i = 0; i < t.rtk.length; i++) {
691 im_arr_rtk_overlay.push(createOverlayObj(t.rtk[i], 3));
692 }
693 //load overlay onto map
694 processImageryObjectArrays(im_arr_rtk_overlay, date, 3);
695 }
696 }
697
698 if (t.hasOwnProperty("uav")) {
699 //get uav data
700 if (t.uav.length > 0) {
701
702 for (var i = 0; i < t.uav.length; i++) {
703 im_arr_uav_overlay.push(createOverlayObj(t.uav[i], 4));
704 }
705 //load overlay onto map
706 processImageryObjectArrays(im_arr_uav_overlay, date, 4);
707 }
708 }
709
710 if (t.hasOwnProperty("conductivity")) {
711 //get conductivity data
712 if (t.conductivity.length > 0) {
713
714 for (var i = 0; i < t.conductivity.length; i++) {
715 im_arr_conductivity_overlay.push(createOverlayObj(t.conductivity[i], 6));
716 }
717
718 processImagerySubTypeObjectArrays(im_arr_conductivity_overlay, date, 6, thisSubType)
719 }
720 }
721
722
723 if (t.hasOwnProperty("migrass")) {
724 //get Migrass data
725 if (t.migrass.length > 0) {
726 for (var i = 0; i < t.migrass.length; i++) {
727 im_arr_migrass_overlay.push(createOverlayObj(t.migrass[i], 7));
728 }
729 //load overlay onto map
730 processImageryObjectArrays(im_arr_migrass_overlay, date, 7);
731 }
732 }
733
734
735 if (t.hasOwnProperty("rgb")) {
736 //get rgb data
737 if (t.rgb.length > 0) {
738
739 for (var i = 0; i < t.rgb.length; i++) {
740 im_arr_rgb_overlay.push(createOverlayObj(t.rgb[i], 8));
741 }
742 //load overlay onto map
743 processImageryObjectArrays(im_arr_rgb_overlay, date, 8);
744 }
745 }
746
747
748 if (t.hasOwnProperty("yield")) {
749 //get yield data
750 if (t.yield.length > 0) {
751
752 for (var i = 0; i < t.yield.length; i++) {
753 im_arr_yield_overlay.push(createOverlayObj(t.yield[i], 9));
754 }
755 //load overlay onto map
756 processImageryObjectArrays(im_arr_yield_overlay, date, 9);
757 }
758 }
759
760 if (t.hasOwnProperty("cdaximg")) {
761 //get afbi cdax image data
762 if (t.cdaximg.length > 0) {
763
764 for (var i = 0; i < t.cdaximg.length; i++) {
765 im_arr_afbi_cdax_img_overlay.push(createOverlayObj(t.cdaximg[i], 12));
766 }
767 //load overlay onto map
768 processImageryObjectArrays(im_arr_afbi_cdax_img_overlay, date, 12);
769 }
770 }
771
772 if (t.hasOwnProperty("misatFieldView")) {
773 //get misat-fieldView image data
774 if (t.misatFieldView.length > 0) {
775
776 for (var i = 0; i < t.misatFieldView.length; i++) {
777 im_arr_misat_fieldView_img_overlay.push(createOverlayObj(t.misatFieldView[i], 14));
778 }
779 //load overlay onto map
780 processImageryObjectArrays(im_arr_misat_fieldView_img_overlay, date, 14);
781 }
782 }
783
784 if (t.hasOwnProperty("cigreen")) {
785 //get cigreen data
786 if (t.cigreen.length > 0) {
787 for (var i = 0; i < t.cigreen.length; i++) {
788 im_arr_cigreen_overlay.push(createOverlayObj(t.cigreen[i], 17));
789 }
790 //load overlay onto map
791 processImageryObjectArrays(im_arr_cigreen_overlay, date, 17);
792 }
793 }
794
795
796 if (t.hasOwnProperty("cigreenFieldView")) {
797 //get cigreen field view data
798 if (t.cigreenFieldView.length > 0) {
799 for (var i = 0; i < t.cigreenFieldView.length; i++) {
800 im_arr_cigreen_fieldView_img_overlay.push(createOverlayObj(t.cigreenFieldView[i], 19));
801 }
802 //load overlay onto map
803 processImageryObjectArrays(im_arr_cigreen_fieldView_img_overlay, date, 19);
804 }
805 }
806
807 if (t.hasOwnProperty("cvi")) {
808 //get cvi data
809 if (t.cvi.length > 0) {
810 for (var i = 0; i < t.cvi.length; i++) {
811 im_arr_cvi_overlay.push(createOverlayObj(t.cvi[i], 16));
812 }
813 //load overlay onto map
814 processImageryObjectArrays(im_arr_cvi_overlay, date, 16);
815 }
816 }
817
818
819 if (t.hasOwnProperty("cviFieldView")) {
820 //get cvi field view data
821 if (t.cviFieldView.length > 0) {
822 for (var i = 0; i < t.cviFieldView.length; i++) {
823 im_arr_cvi_fieldView_img_overlay.push(createOverlayObj(t.cviFieldView[i], 18));
824 }
825 //load overlay onto map
826 processImageryObjectArrays(im_arr_cvi_fieldView_img_overlay, date, 18);
827 }
828 }
829
830
831 if (t.hasOwnProperty("misatVarietyView")) {
832 //get misat variety view data
833 if (t.misatVarietyView.length > 0) {
834 for (var i = 0; i < t.misatVarietyView.length; i++) {
835 im_arr_misat_variety_view_img_overlay.push(createOverlayObj(t.misatVarietyView[i], 20));
836 }
837 //load overlay onto map
838 processImageryObjectArrays(im_arr_misat_variety_view_img_overlay, date, 20);
839 }
840 }
841
842
843 im_bAjax_loading = false;
844 im_bMapDataLoaded = true;
845 });
846 }
847 else {
848 removeLoader();
849
850 if (typeId == 2) {
851 $(".imagery_layer_misat").children().find(".layer-data-types").toggle();
852 }
853
854
855 }
856
857
858}
859
860function processImagerySubTypeObjectArrays(objArr, txtDate, type, subType) {
861
862 var latlngbounds = new google.maps.LatLngBounds();
863
864 if (type != 6) {
865 for (var i = 0; i < objArr.length; i++) {
866
867 if ((objArr[i].dateperformed.split(' ')[0] == txtDate) && (objArr[i].subtype.replace(/\|/g, '') == subType.replace(/\|/g, ''))) {
868
869 for (var j = 0; j < polygonsArray.length; j++) {
870 if (objArr[i].id == polygonsArray[j].id) {
871 var overlayBoundary = new google.maps.MVCArray();
872 for (var k = 0; k < polygonsArray[j].getPath().getLength() ; k++) {
873 overlayBoundary.push(new google.maps.LatLng(polygonsArray[j].getPath().getAt(k).lat(), polygonsArray[j].getPath().getAt(k).lng()));
874 //for map bounds
875 var coords = polygonsArray[j].getPath().getAt(k);
876 latlngbounds.extend(coords);
877 }
878
879 drawOverlay(overlayBoundary, objArr[i].id, objArr[i].image, type + "|" + subType, objArr[i].legend, objArr[i].dateperformed, objArr[i].fieldName, objArr[i].crop, true);
880 polygonsArray[j].setMap(null);
881 }
882 }
883 }
884 }
885 }
886 else {
887 //conductivity
888 for (var i = 0; i < objArr.length; i++) {
889
890 //use matched id to get field coordinates for bounding box overlay
891 tempFieldId = objArr[i].id;
892 //loop through field polygons to get points for overlay bounds polygon
893 for (var j = 0; j < polygonsArray.length; j++) {
894 if (tempFieldId == polygonsArray[j].id) {
895 var overlayBoundary = new google.maps.MVCArray();
896 for (var k = 0; k < polygonsArray[j].getPath().getLength() ; k++) {
897 overlayBoundary.push(new google.maps.LatLng(polygonsArray[j].getPath().getAt(k).lat(), polygonsArray[j].getPath().getAt(k).lng()));
898 //for map bounds
899 var coords = polygonsArray[j].getPath().getAt(k);
900 // latlngbounds.extend(coords);
901 }
902
903 drawOverlay(overlayBoundary, objArr[i].id, objArr[i].image, type + "|" + subType, objArr[i].legend, objArr[i].dateperformed, objArr[i].fieldName, objArr[i].crop, true);
904
905 polygonsArray[j].setMap(null);
906 }
907 }
908
909 //if (i == objArr.length - 1) {
910 // // map.fitBounds(latlngbounds);
911 // displayOverlay(type);
912 // setTimeout(function () { removeLoader() }, 2000);
913
914 //}
915 }
916
917
918 }
919
920
921
922 im_bMapDataLoaded = true;
923
924 im_bImgLayerLoadedTimer = setTimeout(function () { im_loaderImgLayerData() }, 2000);
925
926
927}
928
929function processImageryObjectArrays(objArr, txtDate, type) {
930
931 for (var i = 0; i < im_polygon_overlay.length; i++) {
932 im_polygon_overlay[i].overlay.setMap(null);
933 }
934 for (var i = 0; i < im_polygon_overlay_temp_customer_overlay.length; i++) {
935 im_polygon_overlay_temp_customer_overlay[i].setMap(null);
936 }
937
938 im_polygon_overlay = []
939 im_polygon_overlay_temp_customer_overlay = [];
940
941
942 for (var i = 0; i < objArr.length; i++) {
943
944 if (objArr[i].dateperformed.split(' ')[0] == txtDate) {
945 //use matched id to get field coordinates for bounding box overlay
946 tempFieldId = objArr[i].id;
947 //loop through field polygons to get points for overlay bounds polygon
948 for (var j = 0; j < polygonsArray.length; j++) {
949 if (tempFieldId == polygonsArray[j].id) {
950 var overlayBoundary = new google.maps.MVCArray();
951 for (var k = 0; k < polygonsArray[j].getPath().getLength() ; k++) {
952 overlayBoundary.push(new google.maps.LatLng(polygonsArray[j].getPath().getAt(k).lat(), polygonsArray[j].getPath().getAt(k).lng()));
953 //for map bounds
954 var coords = polygonsArray[j].getPath().getAt(k);
955 // latlngbounds.extend(coords);
956 }
957 drawOverlay(overlayBoundary, tempFieldId, objArr[i].image, type, objArr[i].legend, objArr[i].dateperformed, objArr[i].fieldName, objArr[i].crop, false);
958 polygonsArray[j].setMap(null);
959 }
960 }
961 }
962
963 if (i == objArr.length - 1) {
964 // map.fitBounds(latlngbounds);
965 displayOverlay(type);
966 setTimeout(function () {removeLoader() }, 2000);
967
968 }
969 }
970
971}
972
973function im_clrOverlays() {
974 for (var i = 0; i < im_polygon_overlay_temp_customer_overlay.length; i++) {
975 im_polygon_overlay_temp_customer_overlay[i].setMap(null);
976 }
977 im_polygon_overlay_temp_customer_overlay = [];
978
979 for (var j = 0; j < im_polygon_overlay.length; j++) {
980 im_polygon_overlay[j].overlay.setMap(null);
981
982 }
983 im_polygon_overlay = [];
984
985
986}
987
988function loadLocalMapLayerImgData(id, selectedDate) {
989
990 var bHasLocalData = false;
991 switch (id) {
992 case 1:
993 if (im_arr_nsensor_overlay.length > 0) {
994
995 //loop through array and see if the selected data exists
996 for (var i = 0; i < im_arr_nsensor_overlay.length; i++) {
997 if (im_arr_nsensor_overlay[i].dateperformed.split(' ')[0] == selectedDate.split(' ')[0].trim() && im_arr_nsensor_overlay[i].subtype.split('|')[1] == selectedDate.split('-')[1].split('|')[1]) {
998 bHasLocalData = true;
999 i = im_arr_nsensor_overlay.length + 1;
1000 }
1001 }
1002 }
1003 break;
1004 case 2:
1005 if (im_arr_misat_overlay.length > 0) {
1006
1007
1008 //loop through array and see if the selected data exists
1009 for (var i = 0; i < im_arr_misat_overlay.length; i++) {
1010 if (im_arr_misat_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1011 bHasLocalData = true;
1012 i = im_arr_misat_overlay.length;
1013 }
1014 }
1015 }
1016 break;
1017 case 4:
1018 if (im_arr_uav_overlay.length > 0) {
1019
1020
1021 //loop through array and see if the selected data exists
1022 for (var i = 0; i < im_arr_uav_overlay.length; i++) {
1023 if (im_arr_uav_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1024 bHasLocalData = true;
1025 i = im_arr_uav_overlay.length;
1026 }
1027 }
1028 }
1029 break;
1030 case 6:
1031 if (im_arr_conductivity_overlay.length > 0) {
1032
1033
1034 //loop through array and see if the selected data exists
1035 for (var i = 0; i < im_arr_conductivity_overlay.length; i++) {
1036 if (im_arr_conductivity_overlay[i].dateperformed.split(' ')[0] == selectedDate.split(' ')[0].trim() && im_arr_conductivity_overlay[i].subtype.split('|')[1] == selectedDate.split('-')[1].split('|')[1]) {
1037 bHasLocalData = true;
1038 i = im_arr_conductivity_overlay.length + 1;
1039 }
1040 }
1041 }
1042 break;
1043 case 7:
1044 if (im_arr_migrass_overlay.length > 0) {
1045 //loop through array and see if the selected data exists
1046 for (var i = 0; i < im_arr_migrass_overlay.length; i++) {
1047 if (im_arr_migrass_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1048 bHasLocalData = true;
1049 i = im_arr_migrass_overlay.length;
1050 }
1051 }
1052
1053 }
1054 break;
1055 case 8:
1056 if (im_arr_rgb_overlay.length > 0) {
1057 //loop through array and see if the selected data exists
1058 for (var i = 0; i < im_arr_rgb_overlay.length; i++) {
1059 if (im_arr_rgb_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1060 bHasLocalData = true;
1061 i = im_arr_rgb_overlay.length;
1062 }
1063 }
1064
1065 }
1066 break;
1067 case 9:
1068 if (im_arr_yield_overlay.length > 0) {
1069 //loop through array and see if the selected data exists
1070 for (var i = 0; i < im_arr_yield_overlay.length; i++) {
1071 if (im_arr_yield_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1072 bHasLocalData = true;
1073 i = im_arr_yield_overlay.length;
1074 }
1075 }
1076 }
1077 break;
1078 case 14:
1079 if (im_arr_misat_fieldView_img_overlay.length > 0) {
1080
1081
1082 //loop through array and see if the selected data exists
1083 for (var i = 0; i < im_arr_misat_fieldView_img_overlay.length; i++) {
1084 if (im_arr_misat_fieldView_img_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1085 bHasLocalData = true;
1086 i = im_arr_misat_fieldView_img_overlay.length;
1087 }
1088 }
1089 }
1090 break;
1091 case 16:
1092 if (im_arr_cvi_overlay.length > 0) {
1093
1094 //loop through array and see if the selected data exists
1095 for (var i = 0; i < im_arr_cvi_overlay.length; i++) {
1096 if (im_arr_cvi_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1097 bHasLocalData = true;
1098 i = im_arr_cvi_overlay.length;
1099 }
1100 }
1101 }
1102 break;
1103
1104 case 17:
1105 if (im_arr_cigreen_overlay.length > 0) {
1106
1107
1108 //loop through array and see if the selected data exists
1109 for (var i = 0; i < im_arr_cigreen_overlay.length; i++) {
1110 if (im_arr_cigreen_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1111 bHasLocalData = true;
1112 i = im_arr_cigreen_overlay.length;
1113 }
1114 }
1115 }
1116 break;
1117
1118 case 20:
1119 if (im_arr_misat_variety_view_img_overlay.length > 0) {
1120
1121
1122 //loop through array and see if the selected data exists
1123 for (var i = 0; i < im_arr_misat_variety_view_img_overlay.length; i++) {
1124 if (im_arr_misat_variety_view_img_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1125 bHasLocalData = true;
1126 i = im_arr_misat_variety_view_img_overlay.length;
1127 }
1128 }
1129 }
1130 break;
1131
1132
1133
1134
1135 //afbi
1136 case 014:
1137 if (im_arr_afbi_cdax_img_overlay.length > 0) {
1138 //loop through array and see if the selected data exists
1139 for (var i = 0; i < im_arr_afbi_cdax_img_overlay.length; i++) {
1140 if (im_arr_afbi_cdax_img_overlay[i].dateperformed.split(' ')[0] == selectedDate) {
1141 bHasLocalData = true;
1142 i = im_arr_afbi_cdax_img_overlay.length;
1143 }
1144 }
1145 }
1146 break;
1147 }
1148 return bHasLocalData
1149}
1150
1151var im_img_lyr_wrapper_element = "";
1152
1153function displaySelectedCalDate(date, type) {
1154 switch (type) {
1155 case 1:
1156 $(".n-sensor_date_selected").text("Date selected " + date);
1157 break;
1158 case 2:
1159 case 14:
1160 $(".misat_date_selected").text("Date selected " + date);
1161 break;
1162 case 3:
1163 $(".rtk_date_selected").text("Date selected " + date);
1164 break;
1165 case 4:
1166 $(".uav_date_selected").text("Date selected " + date);
1167 break;
1168 case 6:
1169 $(".conductivity_date_selected").text("Date selected " + date);
1170 break;
1171 case 7:
1172 $(".migrass_date_selected").text("Date selected " + date);
1173 break;
1174 case 8:
1175 $(".rgb_date_selected").text("Date selected " + date);
1176 break;
1177 case 9:
1178 $(".yield_date_selected").text("Date selected " + date);
1179 break;
1180 case 16:
1181 case 18:
1182 $(".cvi_date_selected").text("Date selected " + date);
1183 break;
1184 case 17:
1185 case 19:
1186 $(".cigreen_date_selected").text("Date selected " + date);
1187 break;
1188 case 20:
1189 $(".misat_variety_date_selected").text("Date selected " + date);
1190 break;
1191 case 21:
1192 $(".cigreen_variety_date_selected").text("Date selected " + date);
1193 break;
1194 case 014:
1195 $(".afbi_cdax_img_cal_date_selected").text("Date selected " + date);
1196 break;
1197 }
1198}
1199
1200
1201$(document).on("click", "#misatFieldView", function () {
1202
1203 //reload calendar
1204 $(".misat_cal").datepicker("destroy");
1205
1206 //display loader
1207 $(".misat_data_loader").show();
1208
1209 $(".imagery_layer_misat").find(".layer_item_loader").show();
1210 //get field view data
1211 loadMapLayerImgTypeDateDDL(14);
1212
1213 //user viewing map data?
1214 if ($(".misat_date_selected").text().length > 0) {
1215 //close legend panel.
1216 displayLeftDetailsPanel(false);
1217 //remove any farm wide data
1218 img_clearOverlay();
1219
1220 if (tmp_img_lyr_misat_current_day != "") {
1221 //we have a day so load field view data fo that date.
1222 if (tmp_img_lyr_misat_current_day.length == 1) {
1223 tmp_img_lyr_misat_current_day = "0" + tmp_img_lyr_misat_current_day;
1224 }
1225 if (String(tmp_img_lyr_misat_current_month).length == 1) {
1226 tmp_img_lyr_misat_current_month = "0" + tmp_img_lyr_misat_current_month;
1227 }
1228 var temp_data = tmp_img_lyr_misat_current_day + "-" + tmp_img_lyr_misat_current_month + "-" + tmp_img_lyr_misat_current_yr;
1229
1230 setTimeout(function () {
1231 img_displayImageOverLay(temp_data, 14, im_arr_misat_fieldView_img_overlay);
1232
1233 }, 500);
1234
1235 setTimeout(function () {
1236 displaySelectedCalDate(temp_data, 14);
1237 }, 1500);
1238
1239
1240 }
1241
1242 }
1243
1244 //empty container with legend
1245 $(".misat_cal_options_wrapper").empty();
1246});
1247
1248
1249$(document).on("click", "#misatFarmView", function () {
1250
1251 //display loader
1252 $(".misat_data_loader").show();
1253
1254 $(".imagery_layer_misat").find(".layer_item_loader").show();
1255 //get field view data
1256 loadMapLayerImgTypeDateDDL(2);
1257
1258
1259 //reload calendar
1260 $(".misat_cal").datepicker("destroy");
1261
1262
1263 //user viewing map data?
1264 if ($(".misat_date_selected").text().length > 0) {
1265
1266 //close legend panel.
1267 displayLeftDetailsPanel(false);
1268 //remove any farm wide data
1269 img_clearOverlay();
1270
1271 if (tmp_img_lyr_misat_current_day != "") {
1272 //we have a day so load field view data fo that date.
1273 if (tmp_img_lyr_misat_current_day.length == 1) {
1274 tmp_img_lyr_misat_current_day = "0" + tmp_img_lyr_misat_current_day;
1275 }
1276 if (String(tmp_img_lyr_misat_current_month).length == 1) {
1277 tmp_img_lyr_misat_current_month = "0" + tmp_img_lyr_misat_current_month;
1278 }
1279 var temp_data = tmp_img_lyr_misat_current_day + "-" + tmp_img_lyr_misat_current_month + "-" + tmp_img_lyr_misat_current_yr;
1280
1281 setTimeout(function () {
1282 img_displayImageOverLay(temp_data, 2, im_arr_misat_overlay);
1283
1284 }, 500);
1285
1286 setTimeout(function () {
1287 displaySelectedCalDate(temp_data, 2);
1288 }, 1500);
1289 }
1290 }
1291
1292
1293 //add loader img to panel then remove.
1294 $(".misat_cal_options_wrapper").empty();
1295
1296});
1297
1298$(document).on("click", "#cigreenFarmView", function () {
1299
1300 gen_setGlobalSubMode(17);
1301 //reload calendar
1302 $(".cigreen_cal").datepicker("destroy");
1303
1304 //display loader
1305 $(".cigreen_data_loader").show();
1306
1307 $(".imagery_layer_cigreen").find(".layer_item_loader").show();
1308 //get farm view data
1309 loadMapLayerImgTypeDateDDL(17);
1310
1311 //user viewing map data?
1312 if ($(".cigreen_date_selected").text().length > 0) {
1313 //close legend panel.
1314 displayLeftDetailsPanel(false);
1315 //remove any farm wide data
1316 img_clearOverlay();
1317
1318 if (tmp_img_lyr_cigreen_current_day != "") {
1319 //we have a day so load field view data fo that date.
1320 if (tmp_img_lyr_cigreen_current_day.length == 1) {
1321 tmp_img_lyr_cigreen_current_day = "0" + tmp_img_lyr_cigreen_current_day;
1322 }
1323 if (String(tmp_img_lyr_cigreen_current_month).length == 1) {
1324 tmp_img_lyr_cigreen_current_month = "0" + tmp_img_lyr_cigreen_current_month;
1325 }
1326 var temp_data = tmp_img_lyr_cigreen_current_day + "-" + tmp_img_lyr_cigreen_current_month + "-" + tmp_img_lyr_cigreen_current_yr;
1327
1328 setTimeout(function () {
1329 img_displayImageOverLay(temp_data, 17, im_arr_cigreen_overlay);
1330
1331 }, 500);
1332
1333 setTimeout(function () {
1334 displaySelectedCalDate(temp_data, 17);
1335 }, 1500);
1336
1337
1338 }
1339
1340 }
1341
1342 //empty container with legend
1343 $(".cigreen_cal_options_wrapper").empty();
1344});
1345
1346
1347$(document).on("click", "#cigreenFieldView", function () {
1348
1349 gen_setGlobalSubMode(19);
1350 //reload calendar
1351 $(".cigreen_cal").datepicker("destroy");
1352
1353 //display loader
1354 $(".cigreen_data_loader").show();
1355
1356 $(".imagery_layer_cigreen").find(".layer_item_loader").show();
1357 //get field view data
1358 loadMapLayerImgTypeDateDDL(19);
1359
1360 //user viewing map data?
1361 if ($(".cigreen_date_selected").text().length > 0) {
1362 //close legend panel.
1363 displayLeftDetailsPanel(false);
1364 //remove any farm wide data
1365 img_clearOverlay();
1366
1367 if (tmp_img_lyr_cigreen_current_day != "") {
1368 //we have a day so load field view data fo that date.
1369 if (tmp_img_lyr_cigreen_current_day.length == 1) {
1370 tmp_img_lyr_cigreen_current_day = "0" + tmp_img_lyr_cigreen_current_day;
1371 }
1372 if (String(tmp_img_lyr_cigreen_current_month).length == 1) {
1373 tmp_img_lyr_cigreen_current_month = "0" + tmp_img_lyr_cigreen_current_month;
1374 }
1375 var temp_data = tmp_img_lyr_cigreen_current_day + "-" + tmp_img_lyr_cigreen_current_month + "-" + tmp_img_lyr_cigreen_current_yr;
1376
1377 setTimeout(function () {
1378 img_displayImageOverLay(temp_data, 19, im_arr_cigreen_fieldView_img_overlay);
1379
1380 }, 500);
1381
1382 setTimeout(function () {
1383 displaySelectedCalDate(temp_data, 19);
1384 }, 1500);
1385
1386
1387 }
1388
1389 }
1390
1391 //empty container with legend
1392 $(".cigreen_cal_options_wrapper").empty();
1393});
1394
1395
1396$(document).on("click", "#cviFieldView", function () {
1397
1398 //reload calendar
1399 $(".cvi_cal").datepicker("destroy");
1400
1401 //display loader
1402 $(".cvi_data_loader").show();
1403
1404 $(".imagery_layer_cvi").find(".layer_item_loader").show();
1405 //get field view data
1406 loadMapLayerImgTypeDateDDL(18);
1407
1408 //user viewing map data?
1409 if ($(".cvi_date_selected").text().length > 0) {
1410 //close legend panel.
1411 displayLeftDetailsPanel(false);
1412 //remove any farm wide data
1413 img_clearOverlay();
1414
1415 if (tmp_img_lyr_cvi_current_day != "") {
1416 //we have a day so load field view data fo that date.
1417 if (tmp_img_lyr_cvi_current_day.length == 1) {
1418 tmp_img_lyr_cvi_current_day = "0" + tmp_img_lyr_cvi_current_day;
1419 }
1420 if (String(tmp_img_lyr_cvi_current_month).length == 1) {
1421 tmp_img_lyr_cvi_current_month = "0" + tmp_img_lyr_cvi_current_month;
1422 }
1423 var temp_data = tmp_img_lyr_cvi_current_day + "-" + tmp_img_lyr_cvi_current_month + "-" + tmp_img_lyr_cvi_current_yr;
1424
1425 setTimeout(function () {
1426 img_displayImageOverLay(temp_data, 18, im_arr_cvi_fieldView_img_overlay);
1427
1428 }, 500);
1429
1430 setTimeout(function () {
1431 displaySelectedCalDate(temp_data, 18);
1432 }, 1500);
1433
1434
1435 }
1436
1437 }
1438
1439 //empty container with legend
1440 $(".cvi_cal_options_wrapper").empty();
1441});
1442
1443
1444$(document).on("click", "#cviFarmView", function () {
1445
1446 //reload calendar
1447 $(".cvi_cal").datepicker("destroy");
1448
1449 //display loader
1450 $(".cvi_data_loader").show();
1451
1452 $(".imagery_layer_cvi").find(".layer_item_loader").show();
1453 //get field view data
1454 loadMapLayerImgTypeDateDDL(16);
1455
1456 //user viewing map data?
1457 if ($(".cvi_date_selected").text().length > 0) {
1458 //close legend panel.
1459 displayLeftDetailsPanel(false);
1460 //remove any farm wide data
1461 img_clearOverlay();
1462
1463 if (tmp_img_lyr_cvi_current_day != "") {
1464 //we have a day so load field view data fo that date.
1465 if (tmp_img_lyr_cvi_current_day.length == 1) {
1466 tmp_img_lyr_cvi_current_day = "0" + tmp_img_lyr_cvi_current_day;
1467 }
1468 if (String(tmp_img_lyr_cvi_current_month).length == 1) {
1469 tmp_img_lyr_cvi_current_month = "0" + tmp_img_lyr_cvi_current_month;
1470 }
1471 var temp_data = tmp_img_lyr_cvi_current_day + "-" + tmp_img_lyr_cvi_current_month + "-" + tmp_img_lyr_cvi_current_yr;
1472
1473 setTimeout(function () {
1474 img_displayImageOverLay(temp_data, 16, im_arr_cvi_fieldView_img_overlay);
1475
1476 }, 500);
1477
1478 setTimeout(function () {
1479 displaySelectedCalDate(temp_data, 16);
1480 }, 1500);
1481 }
1482 }
1483
1484 //empty container with legend
1485 $(".cvi_cal_options_wrapper").empty();
1486});
1487
1488
1489function img_displayImageVarietyOverlay(date, type, variety, varietyName, arr) {
1490
1491 var newDateFormat = date.replace(/-/g, '/');
1492
1493 loadStatus("Loading " + im_getImgLyrTypeName(type, varietyName) + " Data");
1494 $.ajax({
1495 type: "POST",
1496 url: urlPrepend + "/layerdata/imagery/crop-variety-overlay/",
1497 data: { farmId: getFarmId(), imgType: type, varietyId: variety, d: date, seasonId:$("#customerSeason").find(":selected").val() },
1498 }).done(function (data) {
1499
1500 var t = JSON.parse(data);
1501 if (t.length > 0) {
1502
1503 im_bMapDataLoaded = true;
1504 for (var i = 0; i < t.length; i++) {
1505
1506 tempFieldId = t[i].fieldid;
1507 //loop through field polygons to get points for overlay bounds polygon
1508 for (var j = 0; j < polygonsArray.length; j++) {
1509 if (tempFieldId == polygonsArray[j].id) {
1510 var overlayBoundary = new google.maps.MVCArray();
1511 for (var k = 0; k < polygonsArray[j].getPath().getLength() ; k++) {
1512 overlayBoundary.push(new google.maps.LatLng(polygonsArray[j].getPath().getAt(k).lat(), polygonsArray[j].getPath().getAt(k).lng()));
1513 //for map bounds
1514 var coords = polygonsArray[j].getPath().getAt(k);
1515 // latlngbounds.extend(coords);
1516 }
1517 drawOverlay(overlayBoundary, tempFieldId, t[i].image, type, t[i].legend, null, t[i].fieldName, t[i].crop, false);
1518 polygonsArray[j].setMap(null);
1519 }
1520 }
1521
1522 if (i == t.length - 1) {
1523 // map.fitBounds(latlngbounds);
1524 displayOverlay(type);
1525 setTimeout(function () { removeLoader() }, 2000);
1526 }
1527 }
1528 }
1529 else {
1530 setTimeout(function () { removeLoader() }, 2000);
1531 displayErrMsg(txtLy26);
1532 }
1533 });
1534 ////////failed load messsage
1535}
1536
1537
1538$(document).on("click", ".lyr_img_variety_type", function () {
1539 $("#leftDetailsPanel").hide();
1540 im_clrOverlays();
1541 //display any hidden fields
1542 for (var i = 0; i < polygonsArray.length; i++) {
1543 if (polygonsArray[i].getMap() == null) {
1544 polygonsArray[i].setMap(map);
1545 }
1546 }
1547
1548 //is calendar on display - if so destory.
1549 if ($(".lyr_variety_cal").length > 0) {
1550 $(".lyr_variety_cal").datepicker("destroy").remove();
1551 $(".variety_cal_options_wrapper").remove();
1552 }
1553
1554
1555 //set all elements back.
1556 $(this).parent().find(".lyr_variety_view_cal_wrapper").show();
1557 $(this).parent().find(".lyr_variety_view_cal_wrapper").find(".variety_data_loader").show();
1558
1559
1560 var passedImgType = $(this).val();
1561 var passedVarietyId = $(this).attr("name");
1562 var passedVarietyName = $(this).parent().attr("alt");
1563 var calendarEle = $(this).parent
1564 //ajax call to get date to populate calendar
1565
1566 $.ajax({
1567 type: "POST",
1568 url: urlPrepend + "/layerdata/imagery/type/variety/",
1569 data: { tradingId: getTradingId(), farmId: getFarmId(), layerId: passedImgType, varietyId: passedVarietyId },
1570 }).done(function (data) {
1571 var t = JSON.parse(data);
1572
1573
1574 if (passedImgType == 20) {
1575 //MiSAT Variety View
1576 if (t.misatVarietyView.length > 0) {
1577
1578 //if date of different type has been previously selected, then go to date
1579 if (tmp_img_lyr_variety_current_day != "") {
1580 //we have a day so load field view data fo that date.
1581 if (tmp_img_lyr_variety_current_day.length == 1) {
1582 tmp_img_lyr_variety_current_day = "0" + tmp_img_lyr_variety_current_day;
1583 }
1584 if (String(tmp_img_lyr_variety_current_month).length == 1) {
1585 tmp_img_lyr_variety_current_month = "0" + tmp_img_lyr_variety_current_month;
1586 }
1587 var temp_data = tmp_img_lyr_variety_current_day + "-" + tmp_img_lyr_variety_current_month + "-" + tmp_img_lyr_variety_current_yr;
1588
1589 setTimeout(function () {
1590 img_displayImageVarietyOverlay(temp_data, 20, passedVarietyId, passedVarietyName, im_arr_misat_variety_view_img_overlay);
1591 }, 500);
1592
1593 setTimeout(function () {
1594 displaySelectedCalDate(temp_data, 20);
1595 }, 1500);
1596 }
1597
1598
1599
1600 im_arr_misat_variety_view_img_overlay = [];
1601
1602 var tempArrCount = [];
1603 im_arr_misat_variety_dates = [];
1604 im_arr_misat_variety_dates_NoCloudCover = [];
1605 im_arr_misat_variety_dates_HasCloud = [];
1606 im_arr_misat_variety_dates_PartialCloudCover = [];
1607
1608
1609 for (var i = 0; i < t.misatVarietyView.length; i++) {
1610 tempArrCount.push(t.misatVarietyView[i].dateperformed.split(' ')[0]);
1611
1612 if (t.misatVarietyView[i].cloudcover > 0) {
1613 if (t.misatVarietyView[i].cloudcover < 99) {
1614 im_arr_misat_variety_dates_PartialCloudCover.push(t.misatVarietyView[i].dateperformed.split(' ')[0] + "|" + t.misatVarietyView[i].cloudcover);
1615 }
1616 else {
1617 im_arr_misat_variety_dates_HasCloud.push(t.misatVarietyView[i].dateperformed.split(' ')[0] + "|" + t.misatVarietyView[i].cloudcover);
1618 }
1619 }
1620 else {
1621 im_arr_misat_variety_dates_NoCloudCover.push(t.misatVarietyView[i].dateperformed.split(' ')[0] + "|" + t.misatVarietyView[i].cloudcover);
1622 }
1623 }
1624
1625 var uniqueItems = [];
1626 //strip out dups
1627 $.each(tempArrCount, function (i, el) {
1628 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
1629 });
1630
1631
1632 for (var j = 0; j < uniqueItems.length; j++) {
1633
1634 var d = uniqueItems[j].split('/')[0];
1635 var m = uniqueItems[j].split('/')[1];
1636 var y = uniqueItems[j].split('/')[2];
1637
1638 im_arr_misat_variety_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
1639 }
1640
1641
1642 var setDefaultDate = new Date(im_arr_misat_variety_dates[0]);
1643 if ((tmp_img_lyr_variety_current_month != "") && (tmp_img_lyr_variety_current_yr != "")) {
1644 //user has browsed misat calendar months
1645 setDefaultDate = (new Date(tmp_img_lyr_variety_current_month + '/01/' + tmp_img_lyr_variety_current_yr)).toISOString()
1646 }
1647
1648
1649 //get element
1650
1651 $(".lyr_variety_view_cal_wrapper").each(function () {
1652
1653 if ($(this).attr("rel") == passedVarietyId) {
1654
1655 if ($(this).children().length == 1) {
1656 $(this).empty().html("<div class=\"variety_data_loader\"></div><div class=\"variety_cal_options_wrapper\"></div><div class=\"left_panel_calendar lyr_variety_cal\"></div>");
1657 }
1658 else {
1659 $(".lyr_variety_cal").datepicker("destroy");
1660 $(".lyr_variety_view_cal_wrapper").empty().html("<div class=\"variety_data_loader\"></div>");
1661 }
1662 $(this).show();
1663 }
1664 else {
1665 //making sure all other wrapper are empty.
1666 $(this).empty().hide();
1667 }
1668 });
1669
1670 //display calendar
1671 $(".lyr_variety_cal").datepicker({
1672 beforeShowDay: function (date) {
1673 return (im_arr_misat_variety_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_misat_variety_dates_NoCloudCover, im_arr_misat_variety_dates_HasCloud, im_arr_misat_variety_dates_PartialCloudCover)] : [false, ""];
1674 },
1675 dateFormat: "dd-mm-yy",
1676 defaultDate: new Date(setDefaultDate),
1677 minDate: new Date(im_arr_misat_variety_dates[im_arr_misat_variety_dates.length - 1]),
1678 onSelect: function (data) {
1679
1680 img_displayImageVarietyOverlay(data, 20, passedVarietyId, passedVarietyName, im_arr_misat_variety_view_img_overlay);
1681 displaySelectedCalDate(data, 20);
1682 tmp_img_lyr_variety_current_day = data.split('-')[0];
1683 tmp_img_lyr_variety_current_month = data.split('-')[1];
1684 tmp_img_lyr_variety_current_yr = data.split('-')[2];
1685
1686 },
1687 maxDate: '0'
1688 });
1689 $(".variety_cal_options_wrapper").append("<span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"misat_variety_date_selected\"></p>");
1690
1691 }
1692 else {
1693 displayErrMsg(txtLy26);
1694 $(".lyr_variety_cal").datepicker("destroy");
1695 $(".lyr_variety_view_cal_wrapper").empty().html("<div class=\"variety_data_loader\"></div>");
1696 }
1697
1698
1699 }
1700
1701 if (passedImgType == 21) {
1702 //CIgreen Variety View
1703 if (t.cigreenVarietyView.length > 0) {
1704
1705
1706 //if date of different type has been previously selected, then go to date
1707 if (tmp_img_lyr_variety_current_day != "") {
1708 //we have a day so load field view data fo that date.
1709 if (tmp_img_lyr_variety_current_day.length == 1) {
1710 tmp_img_lyr_variety_current_day = "0" + tmp_img_lyr_variety_current_day;
1711 }
1712 if (String(tmp_img_lyr_variety_current_month).length == 1) {
1713 tmp_img_lyr_variety_current_month = "0" + tmp_img_lyr_variety_current_month;
1714 }
1715 var temp_data = tmp_img_lyr_variety_current_day + "-" + tmp_img_lyr_variety_current_month + "-" + tmp_img_lyr_variety_current_yr;
1716
1717 setTimeout(function () {
1718 img_displayImageVarietyOverlay(temp_data, 21, passedVarietyId, passedVarietyName, im_arr_cigreen_variety_view_img_overlay);
1719 }, 500);
1720
1721 setTimeout(function () {
1722 displaySelectedCalDate(temp_data, 21);
1723 }, 1500);
1724 }
1725
1726
1727 im_arr_cigreen_variety_view_img_overlay = [];
1728
1729 var tempArrCount = [];
1730 im_arr_cigreen_variety_dates = [];
1731 im_arr_cigreen_variety_dates_NoCloudCover = [];
1732 im_arr_cigreen_variety_dates_HasCloud = [];
1733 im_arr_cigreen_variety_dates_PartialCloudCover = [];
1734
1735
1736 for (var i = 0; i < t.cigreenVarietyView.length; i++) {
1737 tempArrCount.push(t.cigreenVarietyView[i].dateperformed.split(' ')[0]);
1738
1739 if (t.cigreenVarietyView[i].cloudcover > 0) {
1740 if (t.cigreenVarietyView[i].cloudcover < 99) {
1741 im_arr_cigreen_variety_dates_PartialCloudCover.push(t.cigreenVarietyView[i].dateperformed.split(' ')[0] + "|" + t.cigreenVarietyView[i].cloudcover);
1742 }
1743 else {
1744 im_arr_cigreen_variety_dates_HasCloud.push(t.cigreenVarietyView[i].dateperformed.split(' ')[0] + "|" + t.cigreenVarietyView[i].cloudcover);
1745 }
1746 }
1747 else {
1748 im_arr_cigreen_variety_dates_NoCloudCover.push(t.cigreenVarietyView[i].dateperformed.split(' ')[0] + "|" + t.cigreenVarietyView[i].cloudcover);
1749 }
1750 }
1751
1752 var uniqueItems = [];
1753 //strip out dups
1754 $.each(tempArrCount, function (i, el) {
1755 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
1756 });
1757
1758
1759 for (var j = 0; j < uniqueItems.length; j++) {
1760
1761 var d = uniqueItems[j].split('/')[0];
1762 var m = uniqueItems[j].split('/')[1];
1763 var y = uniqueItems[j].split('/')[2];
1764
1765 im_arr_cigreen_variety_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
1766 }
1767
1768 im_arr_cigreen_variety_dates.sort(function (a, b) {
1769 return new Date(b.date) - new Date(a.date);
1770 });
1771
1772
1773 var setDefaultDate = new Date(im_arr_cigreen_variety_dates[im_arr_cigreen_variety_dates.length - 1]);
1774 if ((tmp_img_lyr_variety_current_month != "") && (tmp_img_lyr_variety_current_yr != "")) {
1775 //user has browsed misat calendar months
1776 setDefaultDate = (new Date(tmp_img_lyr_variety_current_month + '/01/' + tmp_img_lyr_variety_current_yr)).toISOString()
1777 }
1778
1779
1780 $(".lyr_variety_view_cal_wrapper").each(function () {
1781
1782 if ($(this).attr("rel") == passedVarietyId) {
1783
1784 if ($(this).children().length == 1) {
1785 $(this).empty().html("<div class=\"variety_data_loader\"></div><div class=\"variety_cal_options_wrapper\"></div><div class=\"left_panel_calendar lyr_variety_cal\"></div>");
1786 }
1787 else {
1788 $(".lyr_variety_cal").datepicker("destroy");
1789 $(".lyr_variety_view_cal_wrapper").empty().html("<div class=\"variety_data_loader\"></div>");
1790 }
1791 $(this).show();
1792 }
1793 else {
1794 //making sure all other wrapper are empty.
1795 $(this).empty().hide();
1796 }
1797 });
1798
1799 //display calendar
1800 $(".lyr_variety_cal").datepicker({
1801 beforeShowDay: function (date) {
1802 return (im_arr_cigreen_variety_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_cigreen_variety_dates_NoCloudCover, im_arr_cigreen_variety_dates_HasCloud, im_arr_cigreen_variety_dates_PartialCloudCover)] : [false, ""];
1803 },
1804 dateFormat: "dd-mm-yy",
1805 defaultDate: new Date(setDefaultDate),
1806 minDate: new Date(im_arr_cigreen_variety_dates[0]),
1807 onSelect: function (data) {
1808
1809 img_displayImageVarietyOverlay(data, 21, passedVarietyId, passedVarietyName, im_arr_cigreen_variety_view_img_overlay)
1810 displaySelectedCalDate(data, 21);
1811 tmp_img_lyr_variety_current_day = data.split('-')[0];
1812 tmp_img_lyr_variety_current_month = data.split('-')[1];
1813 tmp_img_lyr_variety_current_yr = data.split('-')[2];
1814 },
1815 maxDate: '0'
1816 });
1817 $(".variety_cal_options_wrapper").append("<span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cigreen_variety_date_selected\"></p>");
1818
1819
1820 }
1821 else {
1822 displayErrMsg(txtLy26);
1823 $(".lyr_variety_cal").datepicker("destroy");
1824 $(".lyr_variety_view_cal_wrapper").empty().html("<div class=\"variety_data_loader\"></div>");
1825 }
1826 im_arr_cigreen_variety_View_img_overlay = [];
1827 }
1828
1829
1830
1831
1832 });
1833
1834
1835 //add loader
1836 var passedImgType = $(this).val()
1837
1838});
1839
1840$(document).on("click", ".crp_lyr_field_crp_variety_colour_bar", function () {
1841 im_clrOverlays();
1842 //display any hidden fields
1843 for (var i = 0; i < polygonsArray.length; i++) {
1844 if (polygonsArray[i].getMap() == null) {
1845 polygonsArray[i].setMap(map);
1846 }
1847 }
1848 $("#leftDetailsPanel").hide();
1849 var selectedEle = $(this).attr("rel");
1850
1851 $(".lyr_variety_view_wrapper").each(function () {
1852 if ($(this).attr("rel") == selectedEle) {
1853 if ($(this).is(":visible")) {
1854 $(this).hide();
1855 }
1856 else {
1857 $(this).show();
1858 }
1859 $(this).children().prop("checked", false);
1860 }
1861 else {
1862 $(this).hide();
1863 }
1864 });
1865
1866 //clear any previous variety views
1867 $(".lyr_variety_view_cal_wrapper").each(function () {
1868 $(this).empty().html("<div class=\"variety_data_loader\"></div>");
1869 });
1870});
1871
1872function loadVarietyList() {
1873
1874 //reset temp date values
1875 tmp_img_lyr_variety_current_day = "";
1876 tmp_img_lyr_variety_current_month = "";
1877 tmp_img_lyr_variety_current_yr = "";
1878
1879
1880 $.ajax({
1881 type: "POST",
1882 url: urlPrepend + "/layerdata/imagery/crop-variety/",
1883 data: { tradingId: getTradingId(), farmId: getFarmId() },
1884 }).done(function (data) {
1885 var t = JSON.parse(data);
1886 str = "<div class=\"crp_lyr_varieties_title_wrapper\">";
1887 if (t.length > 0) {
1888 for (var i = 0; i < t.length; i++) {
1889 if (t[i].crpVarName != "") {
1890 str += "<span rel=\"" + t[i].id + "\" class=\"crp_lyr_field_crp_variety_colour_bar\" style=\"cursor:pointer;margin-top: 2px;height:13px;width:44px;background-color:" + t[i].crpVarColor + "\" title=\"Click here for viewing options.\"></span><span class=\"crp_field_crp_variety_colour\">" + t[i].crpVarName + "<i class=\"crp_dislaying_variety glyphicon glyphicon-eye-open\" style=\"display:none\"></i></span><div rel=\"" + t[i].id + "\" style=\"border:1px solid " + t[i].crpVarColor + ";\"";
1891 str += "class=\"lyr_variety_view_wrapper\" alt=\"" + t[i].crpVarName + "\"><input class=\"lyr_img_variety_type\" name=\"" + t[i].id + "\" type=\"radio\" value=\"20\" id=\"MiSat" + t[i].id + "\" /><label for=\"MiSat" + t[i].id + "\">MiSat</label><br/><input class=\"lyr_img_variety_type\" name=\"" + t[i].id + "\" type=\"radio\" value=\"21\" id=\"CIgreen" + t[i].id + "\" /><label for=\"CIgreen" + t[i].id + "\">CIgreen</label><div class=\"lyr_variety_view_cal_wrapper\" rel=\"" + t[i].id + "\"><div class=\"variety_data_loader\"></div></div></div>";
1892 }
1893 }
1894
1895 str += "<span style=\"clear:left\"></span></div>"
1896
1897 if ($("#leftPanelVarietyList").length == 0) {
1898 $(".layerInfo").each(function () {
1899
1900 if ($(this).attr("rel") == 20) {
1901 $(this).html("<div id=\"leftPanelVarietyList\"></div>");
1902 }
1903 });
1904 }
1905
1906 $("#leftPanelVarietyList").empty().html(str).show();
1907 $("#leftPanelVarietyList").parent().show();
1908 }
1909 else {
1910 displayErrMsg(txtLy25);
1911 $(".imagery_layer_variety_view").removeClass("layer_item_selected");
1912
1913 $(".lyr_img_variety_type").each(function () {
1914 $(this).prop("checked", false);
1915 });
1916
1917 }
1918
1919 $(".layer_item_loader").hide();
1920
1921 });
1922}
1923
1924$(document).on("click", ".ui-datepicker-header > .ui-datepicker-prev", function (event, fireEv) {
1925 if ($('.ui-datepicker-prev:visible').parent().parent().parent().hasClass('left_panel_calendar') === false) { // if the event we triggered is not part of the left_panel layers;
1926 return;
1927 }
1928
1929 var currentDatePicker = $('.ui-datepicker-prev:visible').parent().parent().parent();
1930 var dpClasses = currentDatePicker.attr("class").split(/\s+/);
1931 if (dpClasses[1].includes('cal') === false) { // if the event we triggered passed the first check but shouldnt be allowed to check for empty months.
1932 return;
1933 }
1934
1935 if (fireEv === undefined) {
1936 fireEv = { fire: true, anyActiveDays: false }
1937 }
1938 if (fireEv.fire === true) {
1939 if ($('.ui-datepicker-prev:visible').hasClass('ui-state-disabled')) {
1940 fireEv.anyActiveDays = true;
1941 fireEv.fire = false;
1942 } else {
1943 let firstClassDatePickerName = dpClasses[1];
1944 $('.' + firstClassDatePickerName + ' > .ui-datepicker-inline > table > tbody > tr > td').each(function (index, value) { // if active days are found, this should stop the recursion;
1945 if($(value).hasClass("ui-datepicker-unselectable") === false && $(value).hasClass("ui-state-disabled") === false){
1946 fireEv.fire = false;
1947 fireEv.anyActiveDays = true;
1948 return false;
1949 }
1950 });
1951
1952 if (fireEv.anyActiveDays == false) { // if no active days for this month are found, enter function again;
1953 $('.ui-datepicker-prev:visible').trigger('click', { fire: true, anyActiveDays: false })
1954 }
1955 }
1956 }
1957});
1958
1959
1960
1961/// <summary>Clicking /next/ button on the calendar, this function allows it to skip the empty months</summary>
1962$(document).on("click", ".ui-datepicker-header > .ui-datepicker-next", function (event, fireEv) {
1963 if ($('.ui-datepicker-next:visible').parent().parent().parent().hasClass('left_panel_calendar') === false) { // if the event we triggered is not part of the left_panel layers;
1964 return;
1965 }
1966
1967 var currentDatePicker = $('.ui-datepicker-next:visible').parent().parent().parent();
1968 var dpClasses = currentDatePicker.attr("class").split(/\s+/);
1969 if(dpClasses[1].includes('cal') === false){ // if the event we triggered passed the first check but shouldnt be allowed to check for empty months.
1970 return;
1971 }
1972
1973 if (fireEv === undefined) {
1974 fireEv = { fire: true, anyActiveDays: false }
1975 }
1976 if (fireEv.fire === true) {
1977 if ($('.ui-datepicker-next:visible').hasClass('ui-state-disabled')) {
1978 fireEv.anyActiveDays = true;
1979 fireEv.fire = false;
1980 debugger;
1981 $('.ui-datepicker-prev:visible').trigger('click', { fire: true, anyActiveDays: false })
1982
1983 } else {
1984 let firstClassDatePickerName = dpClasses[1];
1985 $('.' + firstClassDatePickerName + ' > .ui-datepicker-inline > table > tbody > tr > td').each(function (index, value) { // if active days are found, this should stop the recursion;
1986 //if ($(value).hasClass("img_layer_calendar_date_no_cloud_cover") || $(value).hasClass("img_layer_calendar_date_partial_cloud_cover")
1987 // || $(value).hasClass("img_layer_calendar_date_cloud_cover") || $(value).hasClass("n_sensor_calendar_date_N")
1988 // || $(value).hasClass("n_sensor_calendar_date_BI") || $(value).hasClass("n_sensor_calendar_date_NAS")
1989 // || $(value).hasClass("conductivity_calendar_date_Diff")) {
1990 if ($(value).hasClass("ui-datepicker-unselectable") === false && $(value).hasClass("ui-state-disabled") === false) {
1991 fireEv.fire = false;
1992 fireEv.anyActiveDays = true;
1993 return false;
1994 }
1995 });
1996
1997 if (fireEv.anyActiveDays == false) { // if no active days for this month are found, enter function again;
1998 $('.ui-datepicker-next:visible').trigger('click', { fire: true, anyActiveDays: false })
1999 }
2000 }
2001 }
2002});
2003
2004function loadMapLayerImgTypeDateDDL(id) {
2005
2006 img_clearOverlay();
2007
2008 if (!im_bImgTypeDatesAjax_loading) {
2009
2010 im_bImgTypeDatesAjax_loading = true;
2011
2012 $.ajax({
2013 type: "POST",
2014 url: urlPrepend + "/layerdata/imagery/type/",
2015 data: { tradingId: getTradingId(), farmId: getFarmId(), layerId: id },
2016 }).done(function (data) {
2017
2018 $(".layer_item_loader").hide();
2019 var t = JSON.parse(data);
2020
2021 if (id == 1) {
2022 //n-sensor
2023 im_arr_n_sensor_NAS_dates = [];
2024 im_arr_n_sensor_BI_dates = [];
2025 im_arr_n_sensor_N_dates = [];
2026
2027 var tempArrCount = [];
2028 for (var i = 0; i < t.nsensor.length; i++) {
2029 tempArrCount.push(t.nsensor[i].subtype != "" ? t.nsensor[i].dateperformed.split(' ')[0] + " - " + t.nsensor[i].subtype : t.nsensor[i].dateperformed.split(' ')[0]);
2030 }
2031
2032 var uniqueItems = [];
2033 //strip out dups
2034 $.each(tempArrCount, function (i, el) {
2035 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2036 });
2037
2038 for (var j = 0; j < uniqueItems.length; j++) {
2039 var d = uniqueItems[j].split('|')[0].split(' - ')[0].split('/')[0];
2040 var m = uniqueItems[j].split('|')[0].split(' - ')[0].split('/')[1];
2041 var y = uniqueItems[j].split('|')[0].split(' - ')[0].split('/')[2];
2042
2043 if((uniqueItems[j].split('|')[0].split(' - ')[1] == "NAS")){
2044 im_arr_n_sensor_NAS_dates.push((new Date(m + '/' + d + '/' + y)).toISOString())
2045 } else if((uniqueItems[j].split('|')[0].split(' - ')[1] == "BI")) {
2046 im_arr_n_sensor_BI_dates.push((new Date(m + '/' + d + '/' + y)).toISOString())
2047 } else {
2048 im_arr_n_sensor_N_dates.push((new Date(m + '/' + d + '/' + y)).toISOString())
2049 }
2050 //(uniqueItems[j].split('|')[0].split(' - ')[1] == "NAS" ? im_arr_n_sensor_NAS_dates.push((new Date(m + '/' + d + '/' + y)).toISOString()) : (uniqueItems[j].split('|')[0].split(' - ')[1] == "BI" ? im_arr_n_sensor_BI_dates.push((new Date(m + '/' + d + '/' + y)).toISOString()) : im_arr_n_sensor_N_dates.push((new Date(m + '/' + d + '/' + y)).toISOString())))
2051 }
2052
2053 // if there is no date in either of the date arrays, a default one(todays date) will be added in order to set min date of the calendar.
2054 if (im_arr_n_sensor_NAS_dates.length === 0) {
2055 let dateNow = Date.now();
2056 im_arr_n_sensor_NAS_dates.push(new Date(dateNow).toISOString());
2057 }
2058 if (im_arr_n_sensor_BI_dates.length === 0) {
2059 let dateNow = Date.now();
2060 im_arr_n_sensor_BI_dates.push(new Date(dateNow).toISOString());
2061 }
2062 if (im_arr_n_sensor_N_dates.length === 0) {
2063 let dateNow = Date.now();
2064 im_arr_n_sensor_N_dates.push(new Date(dateNow).toISOString());
2065 }
2066
2067 $(".layerInfo").each(function () {
2068 if ($(this).attr("rel") == id) {
2069 $(this).show();
2070 if ($(this).children().length == 0) {
2071 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"nsensor_cal_options_wrapper\"></div><div class=\"left_panel_calendar n_sensor_cal\"></div></div>");
2072 }
2073 $(this).children().show();
2074 }
2075 });
2076
2077 //display calendar
2078 $(".n_sensor_cal").datepicker({
2079 beforeShowDay: function (date) {
2080 return (im_arr_n_sensor_BI_dates.indexOf(date.toISOString()) > -1) ? [true, "n_sensor_calendar_date_BI"] : [false, ""];
2081 },
2082 dateFormat: "dd-mm-yy",
2083 defaultDate: new Date(im_arr_n_sensor_BI_dates[0]),
2084 minDate: new Date(im_arr_n_sensor_BI_dates[im_arr_n_sensor_BI_dates.length - 1]),
2085 onSelect: function (data) {
2086 img_displayImageOverLaySubType(data, 1, 6, im_arr_nsensor_overlay);
2087 displaySelectedCalDate(data, 1);
2088 },
2089 maxDate: '0'
2090 });
2091
2092
2093 //insert calendar options
2094 $(".nsensor_cal_options_wrapper").append("<span class=\"n-sensor_calendar_radio_but_BI\" title=\"View N-Sensor BI Calendar.\"></span><input type=\"radio\" name=\"nsensor_cal_options\" class=\"nsensor_cal_options\" value=\"BI\" id=\"nsensor_cal_options_BI\" checked=\"checked\" /><label for=\"nsensor_cal_options_BI\">BI</label><br/><span class=\"n-sensor_calendar_radio_but_NAS\" title=\"View N-Sensor NAS Calendar.\"></span><input type=\"radio\" name=\"nsensor_cal_options\" id=\"nsensor_cal_options_NAS\" class=\"nsensor_cal_options\" value=\"NAS\"/><label for=\"nsensor_cal_options_NAS\">NAS</label><br/><span class=\"n-sensor_calendar_radio_but_N\" title=\"View N-Sensor N Calendar.\"></span><input type=\"radio\" name=\"nsensor_cal_options\" class=\"nsensor_cal_options\" value=\"N\" id=\"nsensor_cal_options_N\" /><label for=\"nsensor_cal_options_N\">N</label><p class=\"n-sensor_date_selected\"></p>");
2095
2096 if ($('.n_sensor_cal > .layer-calendar-skip-months').length === 0) {
2097 $(".n_sensor_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2098 }
2099 }
2100
2101 if (id == 2) {
2102 //fvat -- misat
2103
2104 if ($(".misat_data_loader").is(":visible")) {
2105 $(".misat_data_loader").hide();
2106 }
2107
2108 im_arr_misat_overlay = [];
2109
2110 var tempArrCount = [];
2111 im_arr_fvat_dates = [];
2112 im_arr_fvat_dates_NoCloudCover = [];
2113 im_arr_fvat_dates_HasCloud = [];
2114 im_arr_fvat_dates_PartialCloudCover = [];
2115
2116 for (var i = 0; i < t.misat.length; i++) {
2117 tempArrCount.push(t.misat[i].dateperformed.split(' ')[0]);
2118
2119 if (t.misat[i].cloudcover > 0) {
2120 if (t.misat[i].cloudcover < 99) {
2121 im_arr_fvat_dates_PartialCloudCover.push(t.misat[i].dateperformed.split(' ')[0] + "|" + t.misat[i].cloudcover);
2122 }
2123 else {
2124 im_arr_fvat_dates_HasCloud.push(t.misat[i].dateperformed.split(' ')[0] + "|" + t.misat[i].cloudcover);
2125 }
2126 }
2127 else {
2128 im_arr_fvat_dates_NoCloudCover.push(t.misat[i].dateperformed.split(' ')[0] + "|" + t.misat[i].cloudcover);
2129 }
2130 }
2131
2132
2133 var uniqueItems = [];
2134 //strip out dups
2135 $.each(tempArrCount, function (i, el) {
2136 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2137 });
2138
2139
2140 for (var j = 0; j < uniqueItems.length; j++) {
2141
2142 var d = uniqueItems[j].split('/')[0];
2143 var m = uniqueItems[j].split('/')[1];
2144 var y = uniqueItems[j].split('/')[2];
2145
2146 im_arr_fvat_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
2147
2148 }
2149 $(".layerInfo").each(function () {
2150
2151 if ($(this).attr("rel") == id) {
2152 $(this).show();
2153 if ($(this).children().length == 0) {
2154 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"misat_data_loader\"></div><div class=\"misat_cal_options_wrapper\"></div><div class=\"left_panel_calendar misat_cal\"></div></div>");
2155 }
2156 $(this).children().show();
2157 }
2158 });
2159
2160 var setDefaultDate = new Date(im_arr_fvat_dates[0]);
2161
2162 if ((tmp_img_lyr_misat_current_month != "") && (tmp_img_lyr_misat_current_yr != "")) {
2163 //user has browsed misat calendar months
2164 setDefaultDate = (new Date(tmp_img_lyr_misat_current_month + '/01/' + tmp_img_lyr_misat_current_yr)).toISOString();
2165 }
2166
2167 //display calendar
2168 $(".misat_cal").datepicker({
2169 beforeShowDay: function (date) {
2170 return (im_arr_fvat_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_fvat_dates_NoCloudCover, im_arr_fvat_dates_HasCloud, im_arr_fvat_dates_PartialCloudCover)] : [false, ""];
2171 },
2172 dateFormat: "dd-mm-yy",
2173 defaultDate: new Date(setDefaultDate),
2174 minDate: new Date(im_arr_fvat_dates[im_arr_fvat_dates.length - 1]),
2175 onSelect: function (data) {
2176 img_displayImageOverLay(data, 2, im_arr_misat_overlay);
2177 displaySelectedCalDate(data, 2);
2178 tmp_img_lyr_misat_current_day = data.split('-')[0];
2179 tmp_img_lyr_misat_current_month = data.split('-')[1];
2180 tmp_img_lyr_misat_current_yr = data.split('-')[2];
2181 },
2182 maxDate: '0',
2183 onChangeMonthYear:function (year, month) {
2184 tmp_img_lyr_misat_current_month = month;
2185 tmp_img_lyr_misat_current_yr = year;
2186 }
2187 });
2188
2189 //insert calendar options
2190 //we need to find out if this las been locked from previous actions.
2191 var checkIsLayerLocked = false;
2192 $(".layerInfo").each(function () {
2193
2194 if ($(this).attr("rel") == id && $(this).hasClass("lyr_locked")) {
2195 checkIsLayerLocked = true
2196 }
2197 });
2198
2199 if (!checkIsLayerLocked) {
2200 $(".misat_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon icon-noun_Unlock_821902 lyr_locked_icon\"></div><div class=\"lyr_lock_txt\">Lock this layer</div></div><div class=\"lyr_misat_view_wrapper\"><input name=\"misatView\" type=\"radio\" id=\"misatFarmView\" checked /><label class=\"lyr_misat_selected\" for=\"misatFarmView\">Farm View</label><br/><input type=\"radio\" name=\"misatView\" id=\"misatFieldView\" /><label for=\"misatFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"misat_date_selected\"></p>");
2201 }
2202 else {
2203 $(".misat_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon lyr_locked_icon icon-noun_Lock_747565 lyr_lock_red\"></div><div class=\"lyr_lock_txt\">Layer is locked!</div></div><div class=\"lyr_misat_view_wrapper\"><input name=\"misatView\" type=\"radio\" id=\"misatFarmView\" checked /><label class=\"lyr_misat_selected\" for=\"misatFarmView\">Farm View</label><br/><input type=\"radio\" name=\"misatView\" id=\"misatFieldView\" /><label for=\"misatFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"misat_date_selected\"></p>");
2204 }
2205
2206 if ($('.misat_cal > .layer-calendar-skip-months').length === 0) {
2207 $(".misat_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2208 }
2209 }
2210
2211 if (id == 3) {
2212 //rtk
2213 im_arr_rtk_overlay = [];
2214
2215 var tempArrCount = [];
2216 var tempArrRtkdate = [];
2217 for (var i = 0; i < t.rtk.length; i++) {
2218 tempArrCount.push(t.rtk[i].dateperformed.split(' ')[0]);
2219 }
2220
2221 var uniqueItems = [];
2222 //strip out dups
2223 $.each(tempArrCount, function (i, el) {
2224 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2225 });
2226
2227 for (var j = 0; j < uniqueItems.length; j++) {
2228
2229 var d = uniqueItems[j].split('/')[0];
2230 var m = uniqueItems[j].split('/')[1];
2231 var y = uniqueItems[j].split('/')[2];
2232
2233 tempArrRtkdate.push((new Date(m + '/' + d + '/' + y)).toISOString());
2234
2235 }
2236 $(".layerInfo").each(function () {
2237 if ($(this).attr("rel") == id) {
2238 $(this).show();
2239 if ($(this).children().length == 0) {
2240 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"rtk_cal_options_wrapper\"></div><div class=\"left_panel_calendar rtk_cal\"></div></div>");
2241 }
2242 $(this).children().show();
2243 }
2244 });
2245
2246
2247 //display calendar
2248 $(".rtk_cal").datepicker({
2249 beforeShowDay: function (date) {
2250 return (tempArrRtkdate.indexOf(date.toISOString()) > -1) ? [true, "conductivity_calendar_date_Diff"] : [false, ""];
2251 },
2252 dateFormat: "dd-mm-yy",
2253 defaultDate: new Date(tempArrRtkdate[0]),
2254 minDate: new Date(tempArrRtkdate[tempArrRtkdate.length - 1]),
2255 onSelect: function (data) {
2256 img_displayImageOverLay(data, 3, im_arr_rtk_overlay);
2257 displaySelectedCalDate(data, 3);
2258 },
2259 maxDate: '0'
2260 });
2261
2262
2263 //insert calendar options
2264 $(".rtk_cal_options_wrapper").append("<p class=\"rtk_date_selected\"></p>");
2265
2266 if ($('.rtk_cal > .layer-calendar-skip-months').length === 0) {
2267 $(".rtk_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2268 }
2269 }
2270
2271 if (id == 4) {
2272 //uav
2273 im_arr_uav_overlay = [];
2274
2275 var tempArrCount = [];
2276 var tempArrUavdate = [];
2277 for (var i = 0; i < t.uav.length; i++) {
2278 tempArrCount.push(t.uav[i].dateperformed.split(' ')[0]);
2279 }
2280
2281 var uniqueItems = [];
2282 //strip out dups
2283 $.each(tempArrCount, function (i, el) {
2284 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2285 });
2286
2287 for (var j = 0; j < uniqueItems.length; j++) {
2288
2289 var d = uniqueItems[j].split('/')[0];
2290 var m = uniqueItems[j].split('/')[1];
2291 var y = uniqueItems[j].split('/')[2];
2292
2293 tempArrUavdate.push((new Date(m + '/' + d + '/' + y)).toISOString());
2294
2295 }
2296 $(".layerInfo").each(function () {
2297 if ($(this).attr("rel") == id) {
2298 $(this).show();
2299 if ($(this).children().length == 0) {
2300 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"uav_cal_options_wrapper\"></div><div class=\"left_panel_calendar uav_cal\"></div></div>");
2301 }
2302 $(this).children().show();
2303 }
2304 });
2305 debugger;
2306
2307 //display calendar
2308 $(".uav_cal").datepicker({
2309 beforeShowDay: function (date) {
2310 return (tempArrUavdate.indexOf(date.toISOString()) > -1) ? [true, ""] : [false, ""];
2311 },
2312 dateFormat: "dd-mm-yy",
2313 defaultDate: new Date(tempArrUavdate[0]),
2314 minDate: new Date(tempArrUavdate[tempArrUavdate.length - 1]),
2315 onSelect: function (data) {
2316 img_displayImageOverLay(data, 4, im_arr_uav_overlay);
2317 displaySelectedCalDate(data, 4);
2318 },
2319 maxDate: '0'
2320 });
2321
2322
2323 //insert calendar options
2324 $(".uav_cal_options_wrapper").append("<p class=\"uav_date_selected\"></p>");
2325
2326 if ($('.uav_cal > .layer-calendar-skip-months').length === 0) {
2327 $(".uav_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2328 }
2329
2330 }
2331
2332 if (id == 6) {
2333 //conductivity
2334 im_arr_conductivity_overlay = [];
2335
2336
2337 im_arr_conductivity_Diff_dates = [];
2338 im_arr_conductivity_Shallow_dates = [];
2339 im_arr_conductivity_Deep_dates = [];
2340
2341
2342 var tempArrCount = [];
2343 for (var i = 0; i < t.conductivity.length; i++) {
2344 tempArrCount.push(t.conductivity[i].dateperformed);
2345 }
2346
2347 var uniqueItems = [];
2348 //strip out dups
2349 $.each(tempArrCount, function (i, el) {
2350 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2351 });
2352
2353
2354 var strConductivityTxt = " Conductivity data from " + uniqueItems[uniqueItems.length - 1] + " to " + uniqueItems[0];
2355
2356 $(".layerInfo").each(function () {
2357
2358 if ($(this).attr("rel") == id) {
2359 $(this).show();
2360 $(this).empty().html("<div id=\"leftPanelDatePickerWrapper\"><input type=\"radio\" name=\"conductivity_cal_options\" class=\"conductivity_cal_options\" value=\"Shall\" id=\"conductivity_cal_options_Shall\"/><label for=\"conductivity_cal_options_Shall\">EM Shallow</label><span class=\"conductivity_calendar_radio_but_Shall\" title=\"View Conductivity EM Shallow Calendar.\"></span><br/><input type=\"radio\" name=\"conductivity_cal_options\" id=\"conductivity_cal_options_Deep\" class=\"conductivity_cal_options\" value=\"Deep\" /><label for=\"conductivity_cal_options_Deep\">EM Deep</label><span class=\"conductivity_calendar_radio_but_Deep\" title=\"View Conductivity EM Deep Calendar.\"></span><br/><input type=\"radio\" name=\"conductivity_cal_options\" id=\"conductivity_cal_options_Diff\" class=\"conductivity_cal_options\" value=\"DIFF\" /><label for=\"conductivity_cal_options_Diff\">EM Difference</label><span class=\"conductivity_calendar_radio_but_Diff\" title=\"View Conductivity EM Difference Calendar.\"></span><p class=\"conductivity_date_selected\"><span class=\"conductivity_subtype\"></span>" + strConductivityTxt + "</p>");
2361 $(this).children().show();
2362 }
2363 });
2364
2365
2366
2367 }
2368
2369 if (id == 7) {
2370
2371 //migrass
2372 im_arr_migrass_overlay = [];
2373
2374 var tempArrCount = [];
2375 im_arr_ndmi_dates = [];
2376 im_arr_ndmi_dates_NoCloudCover = [];
2377 im_arr_ndmi_dates_HasCloud = [];
2378 im_arr_ndmi_dates_PartialCloudCover = [];
2379
2380
2381 for (var i = 0; i < t.migrass.length; i++) {
2382 tempArrCount.push(t.migrass[i].dateperformed.split(' ')[0]);
2383
2384 if (t.migrass[i].cloudcover > 0) {
2385 if (t.migrass[i].cloudcover < 99) {
2386 im_arr_ndmi_dates_PartialCloudCover.push(t.migrass[i].dateperformed.split(' ')[0] + "|" + t.migrass[i].cloudcover);
2387 }
2388 else {
2389 im_arr_ndmi_dates_HasCloud.push(t.migrass[i].dateperformed.split(' ')[0] + "|" + t.migrass[i].cloudcover);
2390 }
2391 }
2392 else {
2393 im_arr_ndmi_dates_NoCloudCover.push(t.migrass[i].dateperformed.split(' ')[0] + "|" + t.migrass[i].cloudcover);
2394 }
2395 }
2396
2397 var uniqueItems = [];
2398 //strip out dups
2399 $.each(tempArrCount, function (i, el) {
2400 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2401 });
2402
2403
2404 for (var j = 0; j < uniqueItems.length; j++) {
2405
2406 var d = uniqueItems[j].split('/')[0];
2407 var m = uniqueItems[j].split('/')[1];
2408 var y = uniqueItems[j].split('/')[2];
2409 im_arr_ndmi_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
2410
2411 }
2412 $(".layerInfo").each(function () {
2413
2414 if ($(this).attr("rel") == id) {
2415 $(this).show();
2416 if ($(this).children().length == 0) {
2417 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"migrass_cal_options_wrapper\"></div><div class=\"left_panel_calendar migrass_cal\"></div></div>");
2418 }
2419 $(this).children().show();
2420 }
2421 });
2422
2423 //display calendar
2424 $(".migrass_cal").datepicker({
2425 beforeShowDay: function (date) {
2426 return (im_arr_ndmi_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_ndmi_dates_NoCloudCover, im_arr_ndmi_dates_HasCloud, im_arr_ndmi_dates_PartialCloudCover)] : [false, ""];
2427 },
2428 dateFormat: "dd-mm-yy",
2429 defaultDate: new Date(im_arr_ndmi_dates[0]),
2430 minDate: new Date(im_arr_ndmi_dates[im_arr_ndmi_dates.length - 1]),
2431 onSelect: function (data) {
2432 img_displayImageOverLay(data, 7, im_arr_migrass_overlay);
2433 displaySelectedCalDate(data, 7);
2434 },
2435 maxDate: '0'
2436 });
2437
2438
2439 //insert calendar options
2440 $(".migrass_cal_options_wrapper").append("<span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"migrass_date_selected\"></p>");
2441
2442 if ($('.migrass_cal > .layer-calendar-skip-months').length === 0) {
2443 $(".migrass_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2444 }
2445 }
2446
2447 if (id == 8) {
2448 //rgb
2449 im_arr_rgb_overlay = [];
2450
2451 var tempArrCount = [];
2452 im_arr_rgb_dates = [];
2453 im_arr_rgb_dates_NoCloudCover = [];
2454 im_arr_rgb_dates_HasCloud = [];
2455 im_arr_rgb_dates_PartialCloudCover = [];
2456
2457 for (var i = 0; i < t.rgb.length; i++) {
2458 tempArrCount.push(t.rgb[i].dateperformed.split(' ')[0]);
2459
2460 if (t.rgb[i].cloudcover > 0) {
2461 if (t.rgb[i].cloudcover < 99) {
2462 im_arr_rgb_dates_PartialCloudCover.push(t.rgb[i].dateperformed.split(' ')[0] + "|" + t.rgb[i].cloudcover);
2463 }
2464 else {
2465 im_arr_rgb_dates_HasCloud.push(t.rgb[i].dateperformed.split(' ')[0] + "|" + t.rgb[i].cloudcover);
2466 }
2467
2468
2469 }
2470 else {
2471 im_arr_rgb_dates_NoCloudCover.push(t.rgb[i].dateperformed.split(' ')[0] + "|" + t.rgb[i].cloudcover);
2472 }
2473 }
2474
2475
2476 var uniqueItems = [];
2477 //strip out dups
2478 $.each(tempArrCount, function (i, el) {
2479 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2480 });
2481
2482
2483 for (var j = 0; j < uniqueItems.length; j++) {
2484
2485 var d = uniqueItems[j].split('/')[0];
2486 var m = uniqueItems[j].split('/')[1];
2487 var y = uniqueItems[j].split('/')[2];
2488
2489 im_arr_rgb_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
2490
2491 }
2492 $(".layerInfo").each(function () {
2493
2494 if ($(this).attr("rel") == id) {
2495 $(this).show();
2496 if ($(this).children().length == 0) {
2497 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"rgb_cal_options_wrapper\"></div><div class=\"left_panel_calendar rgb_cal\"></div></div>");
2498 }
2499 $(this).children().show();
2500 }
2501 });
2502
2503 //display calendar
2504 $(".rgb_cal").datepicker({
2505 beforeShowDay: function (date) {
2506 return (im_arr_rgb_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_rgb_dates_NoCloudCover, im_arr_rgb_dates_HasCloud, im_arr_rgb_dates_PartialCloudCover)] : [false, ""];
2507 },
2508 dateFormat: "dd-mm-yy",
2509 defaultDate: new Date(im_arr_rgb_dates[0]),
2510 minDate: new Date(im_arr_rgb_dates[im_arr_rgb_dates.length - 1]),
2511 onSelect: function (data) {
2512 img_displayImageOverLay(data, 8, im_arr_rgb_overlay);
2513 displaySelectedCalDate(data, 8);
2514 },
2515 maxDate: '0'
2516 });
2517
2518
2519 //insert calendar options
2520 $(".rgb_cal_options_wrapper").append("<span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"rgb_date_selected\"></p>");
2521
2522 if ($('.rgb_cal > .layer-calendar-skip-months').length === 0) {
2523 $(".rgb_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2524 }
2525 }
2526
2527 if (id == 9) {
2528 //yield
2529 im_arr_yield_overlay = [];
2530
2531 debugger;
2532 var tempArrCount = [];
2533 var tempArrYielddate = [];
2534 for (var i = 0; i < t.yield.length; i++) {
2535 tempArrCount.push(t.yield[i].dateperformed.split(' ')[0]);
2536 }
2537
2538 var uniqueItems = [];
2539 //strip out dups
2540 $.each(tempArrCount, function (i, el) {
2541 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2542 });
2543
2544 for (var j = 0; j < uniqueItems.length; j++) {
2545
2546 var d = uniqueItems[j].split('/')[0];
2547 var m = uniqueItems[j].split('/')[1];
2548 var y = uniqueItems[j].split('/')[2];
2549
2550 tempArrYielddate.push((new Date(m + '/' + d + '/' + y)).toISOString());
2551
2552 }
2553 $(".layerInfo").each(function () {
2554 if ($(this).attr("rel") == id) {
2555 $(this).show();
2556 if ($(this).children().length == 0) {
2557 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"yield_cal_options_wrapper\"></div><div class=\"left_panel_calendar yield_cal\"></div></div>");
2558 }
2559 $(this).children().show();
2560 }
2561 });
2562
2563
2564 //display calendar
2565 $(".yield_cal").datepicker({
2566 beforeShowDay: function (date) {
2567 return (tempArrYielddate.indexOf(date.toISOString()) > -1) ? [true, "conductivity_calendar_date_Diff"] : [false, ""];
2568 },
2569 dateFormat: "dd-mm-yy",
2570 defaultDate: new Date(tempArrYielddate[0]),
2571 minDate: new Date(tempArrYielddate[tempArrYielddate.length-1]),
2572 onSelect: function (data) {
2573 img_displayImageOverLay(data, 9, im_arr_yield_overlay);
2574 displaySelectedCalDate(data, 9);
2575 },
2576 maxDate: '0'
2577 });
2578
2579
2580 //insert calendar options
2581 $(".yield_cal_options_wrapper").append("<p class=\"yield_date_selected\"></p>");
2582
2583 if ($('.yield_cal > .layer-calendar-skip-months').length === 0) {
2584 $(".yield_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2585 }
2586
2587 }
2588
2589 if (id == 12) {
2590 //c-dax image
2591 im_arr_afbi_cdax_img_overlay = [];
2592
2593 var tempArrCount = [];
2594 var tempArrCdaxImgdate = [];
2595
2596
2597 for (var i = 0; i < t.cdaximg.length; i++) {
2598 tempArrCount.push(t.cdaximg[i].dateperformed);
2599 }
2600
2601 var uniqueItems = [];
2602 //strip out dups
2603 $.each(tempArrCount, function (i, el) {
2604 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2605 });
2606
2607 for (var j = 0; j < uniqueItems.length; j++) {
2608
2609 var d = uniqueItems[j].split('/')[0];
2610 var m = uniqueItems[j].split('/')[1];
2611 var y = uniqueItems[j].split('/')[2];
2612
2613 tempArrCdaxImgdate.push((new Date(m + '/' + d + '/' + y)).toISOString());
2614
2615 }
2616
2617
2618 var thisLayerId = $(".layer_item_cdax_pasture_img").attr("id");
2619
2620 $(".layerInfo").each(function () {
2621 if ($(this).attr("rel") == thisLayerId) {
2622 $(this).show();
2623 if ($(this).children().length == 0) {
2624 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"afbi_cdax_img_cal_options_wrapper\"></div><div class=\"left_panel_calendar afbi_cdax_img_cal\"></div></div>");
2625 }
2626 $(this).children().show();
2627 }
2628 });
2629
2630
2631 //display calendar
2632 $(".afbi_cdax_img_cal").datepicker({
2633 beforeShowDay: function (date) {
2634 return (tempArrCdaxImgdate.indexOf(date.toISOString()) > -1) ? [true, "afbi_cdax_img_calendar"] : [false, ""];
2635 },
2636 dateFormat: "dd-mm-yy",
2637 defaultDate: new Date(tempArrCdaxImgdate[0]),
2638 minDate: new Date(tempArrCdaxImgdate[tempArrCdaxImgdate.length - 1]),
2639 onSelect: function (data) {
2640 img_displayImageOverLay(data, 014, im_arr_afbi_cdax_img_overlay);
2641 displaySelectedCalDate(data, 014);
2642 },
2643 maxDate: '0'
2644 });
2645
2646 debugger;
2647 //insert calendar options
2648 $(".afbi_cdax_img_cal_options_wrapper").append("<p class=\"afbi_cdax_img_cal_date_selected\"></p>");
2649
2650 if ($('.afbi_cdax_img_cal > .layer-calendar-skip-months').length === 0) {
2651 $(".afbi_cdax_img_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2652 }
2653
2654 }
2655
2656 if (id == 14) {
2657
2658 $(".misat_data_loader").hide();
2659
2660 //fvat -- misat field View
2661 im_arr_misat_fieldView_img_overlay = [];
2662
2663 var tempArrCount = [];
2664 im_arr_fvat_dates = [];
2665 im_arr_fvat_dates_NoCloudCover = [];
2666 im_arr_fvat_dates_HasCloud = [];
2667 im_arr_fvat_dates_PartialCloudCover = [];
2668
2669 for (var i = 0; i < t.misatFieldView.length; i++) {
2670 tempArrCount.push(t.misatFieldView[i].dateperformed.split(' ')[0]);
2671
2672 if (t.misatFieldView[i].cloudcover > 0) {
2673 if (t.misatFieldView[i].cloudcover < 99) {
2674 im_arr_fvat_dates_PartialCloudCover.push(t.misatFieldView[i].dateperformed.split(' ')[0] + "|" + t.misatFieldView[i].cloudcover);
2675 }
2676 else {
2677 im_arr_fvat_dates_HasCloud.push(t.misatFieldView[i].dateperformed.split(' ')[0] + "|" + t.misatFieldView[i].cloudcover);
2678 }
2679 }
2680 else {
2681 im_arr_fvat_dates_NoCloudCover.push(t.misatFieldView[i].dateperformed.split(' ')[0] + "|" + t.misatFieldView[i].cloudcover);
2682 }
2683 }
2684
2685
2686 var uniqueItems = [];
2687 //strip out dups
2688 $.each(tempArrCount, function (i, el) {
2689 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2690 });
2691
2692
2693 for (var j = 0; j < uniqueItems.length; j++) {
2694
2695 var d = uniqueItems[j].split('/')[0];
2696 var m = uniqueItems[j].split('/')[1];
2697 var y = uniqueItems[j].split('/')[2];
2698
2699 im_arr_fvat_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
2700
2701 }
2702 $(".layerInfo").each(function () {
2703
2704 if ($(this).attr("rel") == 2) {
2705 $(this).show();
2706 if ($(this).children().length == 0) {
2707 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"misat_data_loader\"></div><div class=\"misat_cal_options_wrapper\"></div><div class=\"left_panel_calendar misat_cal\"></div></div>");
2708 }
2709 $(this).children().show();
2710 }
2711 });
2712
2713 var setDefaultDate = new Date(im_arr_fvat_dates[0]);
2714 if ((tmp_img_lyr_misat_current_month != "") && (tmp_img_lyr_misat_current_yr != "")) {
2715 //user has browsed misat calendar months
2716 setDefaultDate = (new Date(tmp_img_lyr_misat_current_month + '/01/' + tmp_img_lyr_misat_current_yr)).toISOString()
2717 }
2718
2719
2720 //display calendar
2721 $(".misat_cal").datepicker({
2722 beforeShowDay: function (date) {
2723 return (im_arr_fvat_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_fvat_dates_NoCloudCover, im_arr_fvat_dates_HasCloud, im_arr_fvat_dates_PartialCloudCover)] : [false, ""];
2724 },
2725 dateFormat: "dd-mm-yy",
2726 defaultDate: new Date(setDefaultDate),
2727 minDate: new Date(im_arr_fvat_dates[im_arr_fvat_dates.length - 1]),
2728 onSelect: function (data) {
2729 img_displayImageOverLay(data, 14, im_arr_misat_fieldView_img_overlay);
2730 displaySelectedCalDate(data, 14);
2731 },
2732 maxDate: '0'
2733 });
2734
2735
2736 //we need to find out if this las been locked from previous actions.
2737 var checkIsLayerLocked = false;
2738 $(".layerInfo").each(function () {
2739
2740 if ($(this).attr("rel") == id && $(this).hasClass("lyr_locked")) {
2741 checkIsLayerLocked = true
2742 }
2743 });
2744
2745 if (!checkIsLayerLocked) {
2746 //insert calendar options
2747 $(".misat_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon icon-noun_Unlock_821902 lyr_locked_icon\"></div><div class=\"lyr_lock_txt\">Lock this layer</div></div><div class=\"lyr_misat_view_wrapper\"><input name=\"misatView\" type=\"radio\" id=\"misatFarmView\" /><label for=\"misatFarmView\">Farm View</label><br/><input type=\"radio\" name=\"misatView\" id=\"misatFieldView\" checked /><label class=\"lyr_misat_selected\" for=\"misatFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"misat_date_selected\"></p>");
2748
2749 }
2750 else {
2751 $(".misat_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon lyr_locked_icon icon-noun_Lock_747565 lyr_lock_red\"></div><div class=\"lyr_lock_txt\">Layer is locked!</div></div><div class=\"lyr_misat_view_wrapper\"><input name=\"misatView\" type=\"radio\" id=\"misatFarmView\" checked /><label class=\"lyr_misat_selected\" for=\"misatFarmView\">Farm View</label><br/><input type=\"radio\" name=\"misatView\" id=\"misatFieldView\" /><label for=\"misatFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"misat_date_selected\"></p>");
2752 }
2753
2754 if ($('.misat_cal > .layer-calendar-skip-months').length === 0) {
2755 $(".misat_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2756 }
2757
2758 }
2759
2760 if (id == 16) {
2761 //cvi
2762 if ($(".cvi_data_loader").is(":visible")) {
2763 $(".cvi_data_loader").hide();
2764 }
2765
2766 im_arr_cvi_overlay = [];
2767 var tempArrCount = [];
2768 im_arr_cvi_dates = [];
2769 im_arr_cvi_dates_NoCloudCover = [];
2770 im_arr_cvi_dates_HasCloud = [];
2771 im_arr_cvin_dates_PartialCloudCover = [];
2772
2773 for (var i = 0; i < t.cvi.length; i++) {
2774 tempArrCount.push(t.cvi[i].dateperformed.split(' ')[0]);
2775
2776 if (t.cvi[i].cloudcover > 0) {
2777 if (t.cvi[i].cloudcover < 99) {
2778 im_arr_cvin_dates_PartialCloudCover.push(t.cvi[i].dateperformed.split(' ')[0] + "|" + t.cvi[i].cloudcover);
2779 }
2780 else {
2781 im_arr_cvi_dates_HasCloud.push(t.cvi[i].dateperformed.split(' ')[0] + "|" + t.cvi[i].cloudcover);
2782 }
2783 }
2784 else {
2785 im_arr_cvi_dates_NoCloudCover.push(t.cvi[i].dateperformed.split(' ')[0] + "|" + t.cvi[i].cloudcover);
2786 }
2787 }
2788
2789 var uniqueItems = [];
2790 //strip out dups
2791 $.each(tempArrCount, function (i, el) {
2792 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2793 });
2794
2795
2796 for (var j = 0; j < uniqueItems.length; j++) {
2797
2798 var d = uniqueItems[j].split('/')[0];
2799 var m = uniqueItems[j].split('/')[1];
2800 var y = uniqueItems[j].split('/')[2];
2801
2802 im_arr_cvi_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
2803
2804 }
2805
2806 $(".layerInfo").each(function () {
2807
2808 if ($(this).attr("rel") == id) {
2809 $(this).show();
2810 if ($(this).children().length == 0) {
2811 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div id=\"leftPanelDatePickerWrapper\"><div class=\"cvi_data_loader\"></div><div class=\"cvi_cal_options_wrapper\"></div><div class=\"left_panel_calendar cvi_cal\"></div></div></div>");
2812
2813
2814 }
2815 $(this).children().show();
2816 }
2817 });
2818
2819
2820 var setDefaultDate = new Date(im_arr_cvi_dates[0]);
2821
2822 if ((tmp_img_lyr_cvi_current_month != "") && (tmp_img_lyr_cvi_current_yr != "")) {
2823 //user has browsed cigreen calendar months
2824 setDefaultDate = (new Date(tmp_img_lyr_cvi_current_month + '/01/' + tmp_img_lyr_cvi_current_yr)).toISOString();
2825 }
2826
2827 //display calendar
2828 $(".cvi_cal").datepicker({
2829 beforeShowDay: function (date) {
2830 return (im_arr_cvi_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_cvi_dates_NoCloudCover, im_arr_cvi_dates_HasCloud, im_arr_cvi_dates_PartialCloudCover)] : [false, ""];
2831 },
2832 dateFormat: "dd-mm-yy",
2833 defaultDate: new Date(setDefaultDate),
2834 minDate: new Date(im_arr_cvi_dates[im_arr_cvi_dates.length - 1]),
2835 onSelect: function (data) {
2836 img_displayImageOverLay(data, 16, im_arr_cvi_overlay);
2837 displaySelectedCalDate(data, 16);
2838 tmp_img_lyr_cvi_current_day = data.split('-')[0];
2839 tmp_img_lyr_cvi_current_month = data.split('-')[1];
2840 tmp_img_lyr_cvi_current_yr = data.split('-')[2];
2841 },
2842 maxDate: '0',
2843 onChangeMonthYear: function (year, month) {
2844 tmp_img_lyr_cvi_current_month = month;
2845 tmp_img_lyr_cvi_current_yr = year;
2846 }
2847 });
2848
2849 $(".cvi_cal_options_wrapper").append("<div class=\"lyr_cvi_view_wrapper\"><input name=\"cviView\" type=\"radio\" id=\"cviFarmView\" checked /><label for=\"cviFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cviView\" id=\"cviFieldView\" /><label class=\"lyr_cvi_selected\" for=\"cviFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cvi_date_selected\"></p>");
2850
2851
2852 if ($('.cvi_cal > .layer-calendar-skip-months').length === 0) {
2853 $(".cvi_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2854 }
2855 }
2856
2857 if (id == 17) {
2858 //cigreen
2859 if ($(".cigreen_data_loader").is(":visible")) {
2860 $(".cigreen_data_loader").hide();
2861 }
2862
2863 im_arr_cigreen_overlay = [];
2864 var tempArrCount = [];
2865 im_arr_cigreen_dates = [];
2866 im_arr_cigreen_dates_NoCloudCover = [];
2867 im_arr_cigreen_dates_HasCloud = [];
2868 im_arr_cigreen_dates_PartialCloudCover = [];
2869
2870 for (var i = 0; i < t.cigreen.length; i++) {
2871 tempArrCount.push(t.cigreen[i].dateperformed.split(' ')[0]);
2872
2873 if (t.cigreen[i].cloudcover > 0) {
2874 if (t.cigreen[i].cloudcover < 99) {
2875 im_arr_cigreen_dates_PartialCloudCover.push(t.cigreen[i].dateperformed.split(' ')[0] + "|" + t.cigreen[i].cloudcover);
2876 }
2877 else {
2878 im_arr_cigreen_dates_HasCloud.push(t.cigreen[i].dateperformed.split(' ')[0] + "|" + t.cigreen[i].cloudcover);
2879 }
2880 }
2881 else {
2882 im_arr_cigreen_dates_NoCloudCover.push(t.cigreen[i].dateperformed.split(' ')[0] + "|" + t.cigreen[i].cloudcover);
2883 }
2884 }
2885
2886 var uniqueItems = [];
2887 //strip out dups
2888 $.each(tempArrCount, function (i, el) {
2889 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2890 });
2891
2892
2893 for (var j = 0; j < uniqueItems.length; j++) {
2894
2895 var d = uniqueItems[j].split('/')[0];
2896 var m = uniqueItems[j].split('/')[1];
2897 var y = uniqueItems[j].split('/')[2];
2898
2899 im_arr_cigreen_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
2900
2901 }
2902
2903 $(".layerInfo").each(function () {
2904
2905 if ($(this).attr("rel") == id) {
2906 $(this).show();
2907 if ($(this).children().length == 0) {
2908 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div id=\"leftPanelDatePickerWrapper\"><div class=\"cigreen_data_loader\"></div><div class=\"cigreen_cal_options_wrapper\"></div><div class=\"left_panel_calendar cigreen_cal\"></div></div></div>");
2909
2910
2911 }
2912 $(this).children().show();
2913 }
2914 });
2915
2916 var setDefaultDate = new Date(im_arr_cigreen_dates[0]);
2917
2918 if ((tmp_img_lyr_cigreen_current_month != "") && (tmp_img_lyr_cigreen_current_yr != "")) {
2919 //user has browsed cigreen calendar months
2920 setDefaultDate = (new Date(tmp_img_lyr_cigreen_current_month + '/01/' + tmp_img_lyr_cigreen_current_yr)).toISOString();
2921 }
2922
2923 //display calendar
2924 $(".cigreen_cal").datepicker({
2925 beforeShowDay: function (date) {
2926 return (im_arr_cigreen_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_cigreen_dates_NoCloudCover, im_arr_cigreen_dates_HasCloud, im_arr_cigreen_dates_PartialCloudCover)] : [false, ""];
2927 },
2928 dateFormat: "dd-mm-yy",
2929 defaultDate: new Date(setDefaultDate),
2930 minDate: new Date(im_arr_cigreen_dates[im_arr_cigreen_dates.length - 1]),
2931 onSelect: function (data) {
2932 img_displayImageOverLay(data, 17, im_arr_cigreen_overlay);
2933 displaySelectedCalDate(data, 17);
2934 tmp_img_lyr_cigreen_current_day = data.split('-')[0];
2935 tmp_img_lyr_cigreen_current_month = data.split('-')[1];
2936 tmp_img_lyr_cigreen_current_yr = data.split('-')[2];
2937 },
2938 maxDate: '0',
2939 onChangeMonthYear: function (year, month) {
2940 tmp_img_lyr_cigreen_current_month = month;
2941 tmp_img_lyr_cigreen_current_yr = year;
2942 }
2943 });
2944
2945
2946 //we need to find out if this las been locked from previous actions.
2947 var checkIsLayerLocked = false;
2948 $(".layerInfo").each(function () {
2949 if ($(this).attr("rel") == id && $(this).hasClass("lyr_locked")) {
2950 checkIsLayerLocked = true
2951 }
2952 });
2953
2954 if (!checkIsLayerLocked) {
2955 $(".cigreen_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon icon-noun_Unlock_821902 lyr_locked_icon\"></div><div class=\"lyr_lock_txt\">Lock this layer</div></div><div class=\"lyr_cigreen_view_wrapper\"><input name=\"cigreenView\" type=\"radio\" id=\"cigreenFarmView\" checked /><label for=\"cigreenFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cigreenView\" id=\"cigreenFieldView\" /><label class=\"lyr_cigreen_selected\" for=\"cigreenFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cigreen_date_selected\"></p>");
2956 }
2957 else {
2958 $(".cigreen_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon lyr_locked_icon icon-noun_Lock_747565 lyr_lock_red\"></div><div class=\"lyr_lock_txt\">Layer is locked!</div></div><div class=\"lyr_cigreen_view_wrapper\"><input name=\"cigreenView\" type=\"radio\" id=\"cigreenFarmView\" checked /><label for=\"cigreenFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cigreenView\" id=\"cigreenFieldView\" /><label class=\"lyr_cigreen_selected\" for=\"cigreenFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cigreen_date_selected\"></p>");
2959 }
2960
2961 if ($('.cigreen_cal > .layer-calendar-skip-months').length === 0) {
2962 $(".cigreen_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
2963 }
2964 }
2965
2966 if (id == 18) {
2967 //cvi
2968 if ($(".cvi_data_loader").is(":visible")) {
2969 $(".cvi_data_loader").hide();
2970 }
2971
2972 im_arr_cvi_overlay = [];
2973 var tempArrCount = [];
2974 im_arr_cvi_dates = [];
2975 im_arr_cvi_dates_NoCloudCover = [];
2976 im_arr_cvi_dates_HasCloud = [];
2977 im_arr_cvin_dates_PartialCloudCover = [];
2978
2979 for (var i = 0; i < t.cviFieldView.length; i++) {
2980 tempArrCount.push(t.cviFieldView[i].dateperformed.split(' ')[0]);
2981
2982 if (t.cviFieldView[i].cloudcover > 0) {
2983 if (t.cviFieldView[i].cloudcover < 99) {
2984 im_arr_cvin_dates_PartialCloudCover.push(t.cviFieldView[i].dateperformed.split(' ')[0] + "|" + t.cviFieldView[i].cloudcover);
2985 }
2986 else {
2987 im_arr_cvi_dates_HasCloud.push(t.cviFieldView[i].dateperformed.split(' ')[0] + "|" + t.cviFieldView[i].cloudcover);
2988 }
2989 }
2990 else {
2991 im_arr_cvi_dates_NoCloudCover.push(t.cviFieldView[i].dateperformed.split(' ')[0] + "|" + t.cviFieldView[i].cloudcover);
2992 }
2993 }
2994
2995 var uniqueItems = [];
2996 //strip out dups
2997 $.each(tempArrCount, function (i, el) {
2998 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
2999 });
3000
3001
3002 for (var j = 0; j < uniqueItems.length; j++) {
3003
3004 var d = uniqueItems[j].split('/')[0];
3005 var m = uniqueItems[j].split('/')[1];
3006 var y = uniqueItems[j].split('/')[2];
3007
3008 im_arr_cvi_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
3009
3010 }
3011
3012 $(".layerInfo").each(function () {
3013
3014 if ($(this).attr("rel") == id) {
3015 $(this).show();
3016 if ($(this).children().length == 0) {
3017 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div id=\"leftPanelDatePickerWrapper\"><div class=\"cvi_data_loader\"></div><div class=\"cvi_cal_options_wrapper\"></div><div class=\"left_panel_calendar cvi_cal\"></div></div></div>");
3018
3019
3020 }
3021 $(this).children().show();
3022 }
3023 });
3024
3025
3026 var setDefaultDate = new Date(im_arr_cvi_dates[0]);
3027
3028 if ((tmp_img_lyr_cvi_current_month != "") && (tmp_img_lyr_cvi_current_yr != "")) {
3029 //user has browsed cigreen calendar months
3030 setDefaultDate = (new Date(tmp_img_lyr_cvi_current_month + '/01/' + tmp_img_lyr_cvi_current_yr)).toISOString();
3031 }
3032
3033 //display calendar
3034 $(".cvi_cal").datepicker({
3035 beforeShowDay: function (date) {
3036 return (im_arr_cvi_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_cvi_dates_NoCloudCover, im_arr_cvi_dates_HasCloud, im_arr_cvi_dates_PartialCloudCover)] : [false, ""];
3037 },
3038 dateFormat: "dd-mm-yy",
3039 defaultDate: new Date(setDefaultDate),
3040 minDate: new Date(im_arr_cvi_dates[im_arr_cvi_dates.length - 1]),
3041 onSelect: function (data) {
3042 img_displayImageOverLay(data, 18, im_arr_cvi_overlay);
3043 displaySelectedCalDate(data, 18);
3044 tmp_img_lyr_cvi_current_day = data.split('-')[0];
3045 tmp_img_lyr_cvi_current_month = data.split('-')[1];
3046 tmp_img_lyr_cvi_current_yr = data.split('-')[2];
3047 },
3048 maxDate: '0',
3049 onChangeMonthYear: function (year, month) {
3050 tmp_img_lyr_cvi_current_month = month;
3051 tmp_img_lyr_cvi_current_yr = year;
3052 }
3053 });
3054
3055 $(".cvi_cal_options_wrapper").append("<div class=\"lyr_cvi_view_wrapper\"><input name=\"cviView\" type=\"radio\" id=\"cviFarmView\" /><label for=\"cviFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cviView\" id=\"cviFieldView\" checked /><label class=\"lyr_cvi_selected\" for=\"cviFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cvi_date_selected\"></p>");
3056
3057
3058 if ($('.cvi_cal > .layer-calendar-skip-months').length === 0) {
3059 $(".cvi_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
3060 }
3061 }
3062
3063
3064 if (id == 19) {
3065
3066 $(".cigreen_data_loader").hide();
3067
3068 //cigreen field View
3069 im_arr_cigreen_fieldView_img_overlay = [];
3070
3071 var tempArrCount = [];
3072 im_arr_cigreen_dates = [];
3073 im_arr_cigreen_dates_NoCloudCover = [];
3074 im_arr_cigreen_dates_HasCloud = [];
3075 im_arr_cigreen_dates_PartialCloudCover = [];
3076
3077 for (var i = 0; i < t.cigreenFieldView.length; i++) {
3078 tempArrCount.push(t.cigreenFieldView[i].dateperformed.split(' ')[0]);
3079
3080 if (t.cigreenFieldView[i].cloudcover > 0) {
3081 if (t.cigreenFieldView[i].cloudcover < 99) {
3082 im_arr_cigreen_dates_PartialCloudCover.push(t.cigreenFieldView[i].dateperformed.split(' ')[0] + "|" + t.cigreenFieldView[i].cloudcover);
3083 }
3084 else {
3085 im_arr_cigreen_dates_HasCloud.push(t.cigreenFieldView[i].dateperformed.split(' ')[0] + "|" + t.cigreenFieldView[i].cloudcover);
3086 }
3087 }
3088 else {
3089 im_arr_cigreen_dates_NoCloudCover.push(t.cigreenFieldView[i].dateperformed.split(' ')[0] + "|" + t.cigreenFieldView[i].cloudcover);
3090 }
3091 }
3092
3093
3094 var uniqueItems = [];
3095 //strip out dups
3096 $.each(tempArrCount, function (i, el) {
3097 if ($.inArray(el, uniqueItems) === -1) uniqueItems.push(el);
3098 });
3099
3100
3101 for (var j = 0; j < uniqueItems.length; j++) {
3102
3103 var d = uniqueItems[j].split('/')[0];
3104 var m = uniqueItems[j].split('/')[1];
3105 var y = uniqueItems[j].split('/')[2];
3106
3107 im_arr_cigreen_dates.push((new Date(m + '/' + d + '/' + y)).toISOString());
3108
3109 }
3110 $(".layerInfo").each(function () {
3111
3112 if ($(this).attr("rel") == id) {
3113 $(this).show();
3114 if ($(this).children().length == 0) {
3115 $(this).html("<div id=\"leftPanelDatePickerWrapper\"><div class=\"cigreen_data_loader\"></div><div class=\"cigreen_cal_options_wrapper\"></div><div class=\"left_panel_calendar cigreen_cal\"></div></div>");
3116 }
3117 $(this).children().show();
3118 }
3119 });
3120
3121 var setDefaultDate = new Date(im_arr_cigreen_dates[0]);
3122 if ((tmp_img_lyr_cigreen_current_month != "") && (tmp_img_lyr_cigreen_current_yr != "")) {
3123 //user has browsed cigreen calendar months
3124 setDefaultDate = (new Date(tmp_img_lyr_cigreen_current_month + '/01/' + tmp_img_lyr_cigreen_current_yr)).toISOString()
3125 }
3126
3127
3128 //display calendar
3129 $(".cigreen_cal").datepicker({
3130 beforeShowDay: function (date) {
3131 return (im_arr_cigreen_dates.indexOf(date.toISOString()) > -1) ? [true, setCloudyCSS(date, im_arr_cigreen_dates_NoCloudCover, im_arr_cigreen_dates_HasCloud, im_arr_cigreen_dates_PartialCloudCover)] : [false, ""];
3132 },
3133 dateFormat: "dd-mm-yy",
3134 defaultDate: new Date(setDefaultDate),
3135 minDate: new Date(im_arr_cigreen_dates[im_arr_cigreen_dates.length - 1]),
3136 onSelect: function (data) {
3137 img_displayImageOverLay(data, 19, im_arr_cigreen_fieldView_img_overlay);
3138 displaySelectedCalDate(data, 19);
3139 },
3140 maxDate: '0'
3141 });
3142
3143
3144 //insert calendar options
3145 //$(".cigreen_cal_options_wrapper").append("<div class=\"lyr_cigreen_view_wrapper\"><input name=\"cigreenView\" type=\"radio\" id=\"cigreenFarmView\" /><label for=\"cigreenFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cigreenView\" id=\"cigreenFieldView\" checked /><label class=\"lyr_misat_selected\" for=\"cigreenFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cigreen_date_selected\"></p>");
3146 //we need to find out if this las been locked from previous actions.
3147 var checkIsLayerLocked = false;
3148 $(".layerInfo").each(function () {
3149 if ($(this).attr("rel") == id && $(this).hasClass("lyr_locked")) {
3150 checkIsLayerLocked = true
3151 }
3152 });
3153
3154 if (!checkIsLayerLocked) {
3155 $(".cigreen_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon icon-noun_Unlock_821902 lyr_locked_icon\"></div><div class=\"lyr_lock_txt\">Lock this layer</div></div><div class=\"lyr_cigreen_view_wrapper\"><input name=\"cigreenView\" type=\"radio\" id=\"cigreenFarmView\" /><label for=\"cigreenFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cigreenView\" id=\"cigreenFieldView\" checked/><label class=\"lyr_cigreen_selected\" for=\"cigreenFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cigreen_date_selected\"></p>");
3156 }
3157 else {
3158 $(".cigreen_cal_options_wrapper").append("<div class=\"lyr_lock\"><div class=\"glyphicon lyr_locked_icon icon-noun_Lock_747565 lyr_lock_red\"></div><div class=\"lyr_lock_txt\">Layer is locked!</div></div><div class=\"lyr_cigreen_view_wrapper\"><input name=\"cigreenView\" type=\"radio\" id=\"cigreenFarmView\" /><label for=\"cigreenFarmView\">Farm View</label><br/><input type=\"radio\" name=\"cigreenView\" id=\"cigreenFieldView\" checked/><label class=\"lyr_cigreen_selected\" for=\"cigreenFieldView\">Field View</label></div><span class=\"img_layer_legend_non_cloudy_day\" title=\"Cloud free day.\"></span>Cloud Free<br/><span class=\"img_layer_legend_partial_cloudy_day\" title=\"Partly cloudy day.\"></span>Partial Cloud<br/><span class=\"img_layer_legend_cloudy_day\" title=\"Cloud covered day.\"></span>Cloud Cover<p class=\"cigreen_date_selected\"></p>");
3159 }
3160
3161 if ($('.cigreen_cal > .layer-calendar-skip-months').length === 0) {
3162 $(".cigreen_cal").append("<p class='layer-calendar-skip-months'>Empty months will be skipped</p>")
3163 }
3164 }
3165
3166 if (id == 116) {
3167 //grasshopper img
3168 im_arr_grass_cdax_img_overlay = [];
3169
3170 var tempArrCount = [];
3171 var tempArrGrassHopperImgdate = [];
3172
3173 for (var i = 0; i < t.cdaximg.length; i++) {
3174 tempArrCount.push(t.cdaximg[i].dateperformed);
3175 }
3176
3177
3178 }
3179
3180
3181
3182 im_bImgTypeDatesAjax_loading = false;
3183
3184 });
3185
3186 }
3187}
3188
3189function setCloudyCSS(date, tempArrNoCloudCover, tempArrHasCloud, tempPartialCloudCover) {
3190
3191 var css = "";
3192 var convertDtFormat = new Date(date);
3193 var mm = convertDtFormat.getMonth() + 1;
3194 var dd = convertDtFormat.getDate();
3195 var yyyy = convertDtFormat.getFullYear();
3196 var cloudyScore = 0;
3197 var dateCount = 0;
3198
3199
3200 if (dd < 10) {
3201 dd = "0" + dd;
3202 }
3203 if (mm < 10) {
3204 mm = "0" + mm;
3205 }
3206 var t = (dd + "/" + mm + "/" + yyyy);
3207
3208
3209 //look to see if we have any cloud cover days for this farm
3210 for (var j = 0; j < tempArrHasCloud.length; j++) {
3211
3212 if (t == tempArrHasCloud[j].split('|')[0]) {
3213
3214 cloudyScore = cloudyScore + parseFloat(tempArrHasCloud[j].split('|')[1])
3215 dateCount++;
3216 }
3217 }
3218
3219
3220 for (var j = 0; j < tempPartialCloudCover.length; j++) {
3221
3222 if (t == tempPartialCloudCover[j].split('|')[0]) {
3223
3224 cloudyScore = cloudyScore + parseFloat(tempPartialCloudCover[j].split('|')[1])
3225 dateCount++;
3226 }
3227 }
3228
3229
3230 for (var j = 0; j < tempArrNoCloudCover.length; j++) {
3231
3232 if (t == tempArrNoCloudCover[j].split('|')[0]) {
3233
3234 cloudyScore = cloudyScore + parseFloat(tempArrNoCloudCover[j].split('|')[1])
3235 dateCount++;
3236 }
3237 }
3238
3239 var avg = cloudyScore / dateCount;
3240
3241 if (avg > 0 && avg < 100) {
3242 css = "img_layer_calendar_date_partial_cloud_cover";
3243 }
3244 if (avg >= 100)
3245 {
3246 css = "img_layer_calendar_date_cloud_cover";
3247 }
3248
3249 if (avg == 0) {
3250 css = "img_layer_calendar_date_no_cloud_cover";
3251 }
3252
3253
3254 return css;
3255}
3256
3257
3258function getLayerImageryData() {
3259
3260 if ($("#panelLayer #imageryLayerContent").text().length == 0) {
3261
3262 if (im_polygon_overlay.length == 0) {
3263
3264
3265 $.ajax({
3266 type: "POST",
3267 url: urlPrepend + "/layerdata/imagery/" + getTradingId() + "/" + getFarmId()
3268 }).done(function (data) {
3269 if (data != "") {
3270
3271 removeLoader();
3272 var str = "";
3273 for (var i = 0; i < data.length; i++) {
3274
3275 str += "<li class=\"layer-item-imagery imagery_layer_" + cleanString(data[i].name) + "\" rel=\"" + data[i].id + "\"><span class=\"glyphicon glyphicon-expand layer-item-imagery-name-icon\"></span><span class=\"layer-item-name-imagery\">" + data[i].name + "</span><span class=\"im_map_img_lyr_ddl_wrapper\"></span></li>";
3276 }
3277
3278 if (str != "") {
3279 $("#panelLayer #imageryLayerContent").empty().html("<ul style=\"width:50%;margin-bottom:0;\">" + str + "</ul>");
3280
3281 //remove default message if we have imagery layers
3282 if (str != "") {
3283 $("#layerContent").find(".nolayer span:first-childr").remove();
3284 }
3285 }
3286
3287 }
3288
3289 });
3290 }
3291 }
3292}
3293
3294
3295
3296function createOverlayObj(jsonEle, imageType) {
3297 var dataObj = {};
3298 dataObj.id = jsonEle.fieldid;
3299 dataObj.fieldName = jsonEle.fieldName;
3300 dataObj.image = jsonEle.image;
3301 dataObj.dateperformed = jsonEle.dateperformed;
3302 dataObj.imgtype = imageType;
3303 dataObj.legend = jsonEle.legend;
3304 dataObj.subtype = jsonEle.subtype;
3305 dataObj.cloudCover = jsonEle.cloudcover;
3306 dataObj.crop = jsonEle.crop;
3307
3308 return dataObj;
3309}
3310
3311function drawOverlay(oBounds, id, img, type, legend, dateperformed, fieldName, crop, isSubType) {
3312
3313 var subType = "";
3314 if (isSubType) {
3315 subType = type.split('|')[1];
3316 type = type.split('|')[0];
3317 }
3318 var lyr_name = "";
3319
3320 //url for image
3321 var urlImg = "";
3322 if (type == 1) {
3323 urlImg = im_nsensor_url + img;
3324 lyr_name = "N-Sensor";
3325 }
3326
3327 if ((type == 2)||(type == 14)||(type == 20)) {
3328 urlImg = im_misat_url + img;
3329 lyr_name = "MiSat Farm View";
3330 if (type == 14) {
3331 lyr_name = "MiSat Field View";
3332 }
3333 if (type == 20) {
3334 lyr_name = "MiSat Variety View";
3335 }
3336 }
3337
3338 if (type == 4) {
3339 urlImg = im_uav_url + img;
3340 lyr_name = "UAV";
3341 }
3342
3343 if (type == 6) {
3344 urlImg = im_conductivity_url + img;
3345 lyr_name = "Conductivity";
3346 }
3347
3348 if (type == 7) {
3349 urlImg = im_migrass_url + img;
3350 lyr_name = "MiGrass";
3351 }
3352
3353 if (type == 8) {
3354 urlImg = im_rgb_url + img;
3355 lyr_name = "RGB";
3356 }
3357
3358 if (type == 9) {
3359 urlImg = im_yield_url + img;
3360 lyr_name = "Yield";
3361 }
3362
3363 if (type == 12) {
3364 urlImg = im_cdax_img_url + img;
3365 lyr_name = "C-Dax Images";
3366 }
3367
3368 if ((type == 17) || (type == 19) || (type == 21)) {
3369 urlImg = im_cigreen_url + img;
3370 lyr_name = "CIgreen Farm View";
3371 if (type == 19) {
3372 lyr_name = "CIgreen Field View";
3373 }
3374 if (type == 21) {
3375 lyr_name = "CIgreen Variety View";
3376 }
3377 }
3378
3379 if ((type == 16) || (type == 18)) {
3380 urlImg = im_cvi_url + img;
3381 lyr_name = "CVI Farm View";
3382 if (type == 18) {
3383 lyr_name = "CVI Field View";
3384 }
3385 }
3386
3387 //create new overlay
3388 var options = {
3389 path: oBounds,
3390 strokeColor: "#222",
3391 strokeOpacity: 1,
3392 strokeWeight: 1,
3393 fillOpacity: 0.0,
3394 zIndex: 9,
3395 id : id
3396 }
3397
3398 //Create polygon
3399 var polygon = new google.maps.Polygon(options);
3400 im_polygon_overlay_temp_customer_overlay.push(polygon);
3401 //Show it on map
3402 polygon.setMap(map); //*****
3403
3404 //new code *****************
3405 google.maps.event.addListener(polygon, 'click', function (event) {
3406 //loop through overlay array to get a match to the clicked polygon
3407 for (var i = 0; i < im_polygon_overlay.length; i++) {
3408 //match polygon to overlay
3409 if (polygon.id == im_polygon_overlay[i].id) {
3410
3411 d = dateperformed;
3412 getCropNameByDate(d, id);//in crop.js
3413
3414 var lyr_compare_field_string = id + "|" + d + "|" + type + "_" + lyr_name + "|" + urlImg;
3415 for (var j = 0; j < im_polygon_overlay.length; j++) {
3416 if (subType.length > 0) {
3417 if ((d == im_polygon_overlay[j].date) && (im_polygon_overlay[j].id == id) && (im_polygon_overlay[j].type == type) && (im_polygon_overlay[j].subType == subType)) {
3418
3419 lyr_compare_field_string += "|" + im_polygon_overlay[j].legend + "|" + fieldName + "|" + crop + "|" + subType;
3420
3421 displayLegendImg(im_polygon_overlay[j].legend, type, fieldName, crop, id, lyr_compare_field_string, img, d);
3422 j = im_polygon_overlay.length;
3423 }
3424 }
3425 else {
3426
3427 if ((d == im_polygon_overlay[j].date) && (im_polygon_overlay[j].id == id) && (im_polygon_overlay[j].type == type)) {
3428
3429 lyr_compare_field_string += "|" + im_polygon_overlay[j].legend + "|" + fieldName + "|" + crop;
3430
3431 displayLegendImg(im_polygon_overlay[j].legend, type, fieldName, crop, id, lyr_compare_field_string, img, d);
3432 j = im_polygon_overlay.length;
3433 }
3434 }
3435
3436
3437
3438 }
3439
3440 }
3441 }
3442 });
3443
3444 addPolygonMouseCoordsData(polygon);
3445 //end of new code ***************
3446
3447 //get bounds from polygon for custom overlay
3448 if (!google.maps.Polygon.prototype.getBounds)
3449 google.maps.Polygon.prototype.getBounds = function () {
3450 var bounds = new google.maps.LatLngBounds();
3451 var paths = this.getPaths();
3452 for (var i = 0; i < paths.getLength() ; i++) {
3453 var path = paths.getAt(i);
3454 for (var j = 0; j < path.getLength() ; j++) {
3455 bounds.extend(path.getAt(j));
3456 }
3457 }
3458 return bounds;
3459 }
3460
3461 var objOverlay = {};
3462
3463 setTimeout(function(){
3464 var myOverlay = new google.maps.GroundOverlay(urlImg, polygon.getBounds(), { clickable: false });
3465 objOverlay.overlay = myOverlay;
3466 objOverlay.id = id;
3467 objOverlay.type = type;
3468 objOverlay.subType = subType;
3469 objOverlay.legend = legend;
3470 objOverlay.date = dateperformed;
3471 im_polygon_overlay.push(objOverlay);
3472
3473 myOverlay.setMap(map);
3474
3475 addPolygonMouseCoordsData(myOverlay);
3476
3477 }, 500);
3478
3479
3480
3481
3482
3483}
3484
3485function displayLegendImg(legend, type, fieldName, crop, fieldId, lyr_comp_params, selectedOverlayImg, selectedDate) {
3486
3487 var urlLegend = ""
3488 if (legend != "") {
3489 if (type == 1) {
3490 urlLegend = im_nsensor_url + legend;
3491 selectedOverlayImg = im_nsensor_url + selectedOverlayImg;
3492 }
3493 if ((type == 2) || (type == 14) || (type == 20)) {
3494 urlLegend = im_misat_url + legend;
3495 selectedOverlayImg = im_misat_url + selectedOverlayImg;
3496 if (type == 20) {
3497 lyr_comp_params = lyr_comp_params.replace("null", crop);
3498 }
3499 }
3500 if (type == 4) {
3501 urlLegend = im_uav_url + legend;
3502 selectedOverlayImg = im_uav_url + selectedOverlayImg;
3503 }
3504 if (type == 6) {
3505 urlLegend = im_conductivity_url + legend;
3506 selectedOverlayImg = im_conductivity_url + selectedOverlayImg;
3507 }
3508 if (type == 7) {
3509 urlLegend = im_migrass_url + legend;
3510 selectedOverlayImg = im_migrass_url + selectedOverlayImg;
3511 }
3512 if (type == 8) {
3513 urlLegend = im_rgb_url + legend;
3514 selectedOverlayImg = im_rgb_url + selectedOverlayImg;
3515 }
3516 if (type == 9) {
3517 urlLegend = im_yield_url + legend;
3518 selectedOverlayImg = im_yield_url + selectedOverlayImg;
3519 }
3520 if (type == 12) {
3521 urlLegend = im_cdax_img_url + legend;
3522 selectedOverlayImg = im_cdax_img_url + selectedOverlayImg;
3523 }
3524 if ((type == 16) || (type == 18)) {
3525 urlLegend = im_cvi_url + legend;
3526 selectedOverlayImg = im_cvi_url + selectedOverlayImg;
3527 }
3528 if ((type == 17) || (type == 19) || (type == 21)) {
3529 urlLegend = im_cigreen_url + legend;
3530 selectedOverlayImg = im_cigreen_url + selectedOverlayImg;
3531
3532 if (type == 21) {
3533 lyr_comp_params = lyr_comp_params.replace("null", crop);
3534 }
3535 }
3536 }
3537
3538 if (type != 8) {
3539 displayLeftDetailsPanel(true);
3540
3541 //get current crop related to the season user is viewing. Then store all layer information into variable string to use for select checkbox
3542
3543 $.ajax({
3544 type: "POST",
3545 url: urlPrepend + "/layerdata/crop/getfieldcropnamebydate",
3546 data: { farmId: getFarmId(), fieldId: fieldId, date: selectedDate }
3547 }).done(function (data) {
3548
3549 if (data != "") {
3550 crop = data;
3551
3552 //generate new string with new crop
3553 var splitParams = lyr_comp_params.split("|");
3554 if (splitParams.length > 0) {
3555 lyr_comp_params = "";
3556 for (var i = 0; i <= splitParams.length; i++) {
3557 if (splitParams[i] != undefined) {
3558 if (i != 6) {
3559 lyr_comp_params += splitParams[i] + "|";
3560 }
3561 else {
3562 lyr_comp_params += crop + "|";
3563 }
3564 }
3565
3566
3567 }
3568
3569 //trim of last seperator
3570 lyr_comp_params = lyr_comp_params.slice(0, -1);
3571 }
3572
3573
3574 var lyr_compare_checkbox_str = "<input class=\"lyr_compare_stage1_check\" type=\"checkbox\" value=\"" + lyr_comp_params + "\" />"
3575 if (lyr_compCheck(lyr_comp_params)) {
3576 lyr_compare_checkbox_str = "<input class=\"lyr_compare_stage1_check\" type=\"checkbox\" value=\"" + lyr_comp_params + "\" checked=\"checked\" />";
3577 }
3578
3579 if (type != 12) {
3580
3581 //birds eye
3582 if (getTradingId() == 2215) {
3583 $(".left_details_panel_content").empty().html("<div class=\"imagery_layer_legend\"><p>" + fieldName + "</p><p class=\"legend_view_crop_name\">" + crop + "</p><img src=\"" + urlLegend + "\" /><p>Select " + lyr_compare_checkbox_str + "<br/><button class=\"lyr_compare_modal_lnk\">Compare</button></p><p rel=\"" + selectedOverlayImg + "|" + fieldId + "\" class=\"harvest_area_link_legend_panel\">Draw Harvest Area</p></div>");
3584 }
3585 else {
3586 $(".left_details_panel_content").empty().html("<div class=\"imagery_layer_legend\"><p>" + fieldName + "</p><p class=\"legend_view_crop_name\">" + crop + "</p><img src=\"" + urlLegend + "\" /><p>Select " + lyr_compare_checkbox_str + "<br/><button class=\"lyr_compare_modal_lnk\">Compare</button></p></div>");
3587 }
3588 }
3589 else {
3590 //birds eye
3591 if (getTradingId() == 2215) {
3592 $(".left_details_panel_content").empty().html("<div class=\"imagery_layer_legend\"><p>" + fieldName + "</p><p class=\"legend_view_crop_name\">" + crop + "</p><img src=\"" + urlLegend + "\" /></div><p rel=\"" + selectedOverlayImg + "|" + fieldId + "\" class=\"harvest_area_link_legend_panel\">Draw Harvest Area</p>");
3593 }
3594 else {
3595 $(".left_details_panel_content").empty().html("<div class=\"imagery_layer_legend\"><p>" + fieldName + "</p><p class=\"legend_view_crop_name\">" + crop + "</p><img src=\"" + urlLegend + "\" /></div>");
3596 }
3597 }
3598 }
3599 else {
3600
3601 if (lyr_comp_params.length > 0) {
3602 var splitParams = lyr_comp_params.split("|");
3603 if (splitParams.length > 0) {
3604 lyr_comp_params = "";
3605 for (var i = 0; i <= splitParams.length; i++) {
3606 if (splitParams[i] != undefined) {
3607 if (i != 6) {
3608 lyr_comp_params += splitParams[i] + "|";
3609 }
3610
3611 }
3612 }
3613
3614 //trim of last seperator
3615 lyr_comp_params = lyr_comp_params.slice(0, -1);
3616 }
3617 }
3618 var lyr_compare_checkbox_str = "<input class=\"lyr_compare_stage1_check\" type=\"checkbox\" value=\"" + lyr_comp_params + "\" />"
3619
3620 $(".left_details_panel_content").empty().html("<div class=\"imagery_layer_legend\"><p>" + fieldName + "</p><p class=\"legend_view_crop_name\">" + crop + "</p><img src=\"" + urlLegend + "\" /><p>Select " + lyr_compare_checkbox_str + "<br/><button class=\"lyr_compare_modal_lnk\">Compare</button></p></div>");
3621 }
3622 });
3623
3624 }
3625
3626}
3627
3628function displayOverlay(type) {
3629 for (var i = 0; i < im_polygon_overlay.length; i++) {
3630 if (type == im_polygon_overlay[i].type) {
3631 im_polygon_overlay[i].overlay.setMap(map);
3632 }
3633 }
3634}
3635
3636function img_clearOverlay() {
3637
3638 for (var i = 0; i < im_polygon_overlay.length; i++) {
3639 im_polygon_overlay[i].overlay.setMap(null);
3640 }
3641
3642 im_polygon_overlay = [];
3643
3644 for (var i = 0; i < im_polygon_overlay_temp_customer_overlay.length; i++) {
3645 im_polygon_overlay_temp_customer_overlay[i].setMap(null);
3646 }
3647
3648 im_polygon_overlay_temp_customer_overlay = [];
3649
3650 for (var j = 0; j < polygonsArray.length; j++) {
3651 polygonsArray[j].setMap(map);
3652 }
3653
3654 //clear any nvz overlays
3655 lyr_clear_NVZ();
3656 //clear poi
3657 lyr_hidePOI();
3658 displayLeftDetailsPanel(false);
3659}
3660
3661function im_getImgLyrTypeName(type, subType) {
3662
3663 var name = "";
3664 if (type != "") {
3665 if (type == 1) {
3666 name = "N-Sensor";
3667 if (typeof subType !== 'undefined') {
3668 name = name + " " + subType;
3669 }
3670 }
3671 if (type == 2) {
3672 name = "MiSat";
3673 }
3674 if (type == 3) {
3675 name = "RTK";
3676 }
3677 if (type == 4) {
3678 name = "UAV";
3679 }
3680 if (type == 6) {
3681 name = "Conductivity " + subType;
3682 }
3683 if (type == 7) {
3684 name = "MiGrass";
3685 }
3686 if (type == 8) {
3687 name = "RGB";
3688 }
3689 if (type == 9) {
3690 name = "Yield";
3691 }
3692 if (type == 12) {
3693 name = "CDax-Image";
3694 }
3695 if (type == 14) {
3696 name = "MiSat Field View";
3697 }
3698 if (type == 16) {
3699 name = "CVI Farm View";
3700 }
3701 if (type == 17) {
3702 name = "CI Green Farm View";
3703 }
3704 if (type == 18) {
3705 name = "CVI Field View";
3706 }
3707 if (type == 19) {
3708 name = "CI Green Field View";
3709 }
3710 if (type == 20) {
3711 name = "MiSAT Variety View " + " - " + subType;
3712 }
3713
3714 if (type == 21) {
3715 name = "CI Green Variety View " + " - " + subType;
3716 }
3717 }
3718 return name;
3719}
3720
3721
3722/* compare start**/
3723$(document).on("click", ".lyr_compare_stage1_check", function () {
3724
3725 if (gen_lyr_compare_count < 4) {
3726 if ($(this).is(":checked")) {
3727
3728 //add to
3729 var tempStr = "<span class=\"lyr_compare_storage_item\" rel=\"" + $(this).val() + "\"></span>";
3730 $(".lyr_compare_wrapper_storage").append(tempStr);
3731 gen_lyr_compare_count++;
3732 }
3733 else {
3734
3735 var selectedVal = $(this).val();
3736 $(".lyr_compare_wrapper_storage").children().each(function () {
3737 if ($(this).attr("rel") == selectedVal) {
3738 //remove item
3739 $(this).remove();
3740 gen_lyr_compare_count--;
3741 }
3742 })
3743 }
3744 }
3745 else {
3746 $(this).prop("checked", false);
3747 displayErrMsg(txtLyrComp1);
3748 }
3749
3750
3751});
3752
3753
3754$(document).on("click", ".lyr_lock", function () {
3755
3756 //check to see if we have any data overlay to lock
3757 if (im_polygon_overlay.length > 0) {
3758 if ($(this).hasClass("locked")) {
3759 $(this).removeClass("locked");
3760 $(this).find(".lyr_lock_txt").empty().html("Lock this layer");
3761 $(this).parent().parent().parent().removeClass("lyr_locked");
3762 $(this).find(".lyr_locked_icon").removeClass("icon-noun_Lock_747565 lyr_lock_red").addClass("icon-noun_Unlock_821902");
3763 if (lyr_selectedLock == 2) {
3764 $(".imagery_layer_misat").removeClass("lyr_highlight_locked_item");
3765 }
3766 if (lyr_selectedLock == 17) {
3767 $(".imagery_layer_cigreen").removeClass("lyr_highlight_locked_item");
3768 }
3769 lyr_selectedLock = "";
3770 displaySuccessMsg(txtLy23);
3771
3772 }
3773 else {
3774 var bLyrLocked = lyr_checkLoakedLayers();
3775
3776 if (bLyrLocked) {
3777 displayErrMsg(txtLy22);
3778 }
3779 else {
3780 lyr_selectedLock = $(this).parent().parent().parent().attr("rel");
3781 $(this).parent().parent().parent().addClass("lyr_locked");
3782 $(this).find(".lyr_lock_txt").empty().html("Layer is locked!");
3783 $(this).find(".lyr_locked_icon").removeClass("icon-noun_Unlock_821902").addClass("icon-noun_Lock_747565 lyr_lock_red");
3784 if (lyr_selectedLock == 2) {
3785 $(".imagery_layer_misat").addClass("lyr_highlight_locked_item");
3786 }
3787
3788 if (lyr_selectedLock == 17) {
3789 $(".imagery_layer_cigreen").addClass("lyr_highlight_locked_item");
3790 }
3791
3792 displaySuccessMsg(txtLy21);
3793 $(this).addClass("locked");
3794 }
3795 }
3796 }
3797 else {
3798 //do we have a harvest layer on display?
3799 if (lyr_harvest_area_poygons.length > 0) {
3800 if ($(this).hasClass("locked")) {
3801 //unlock layer
3802 $(".layer-item-harvest-areas").removeClass("lyr_highlight_locked_item");
3803 $(this).find(".lyr_locked_icon").removeClass("icon-noun_Lock_747565 lyr_lock_red").addClass("icon-noun_Unlock_821902");
3804 $(this).find(".lyr_lock_txt").empty().html("Lock this layer");
3805 $(this).removeClass("locked");
3806 $(this).parent().parent().removeClass("lyr_locked");
3807 lyr_selectedLock = "";
3808 displaySuccessMsg(txtLy23);
3809 }
3810 else {
3811 var bLyrLocked = lyr_checkLoakedLayers();
3812
3813 if (bLyrLocked) {
3814 displayErrMsg(txtLy22);
3815 }
3816 else {
3817 lyr_selectedLock = $(this).parent().parent().attr("rel");
3818 $(this).parent().parent().addClass("lyr_locked");
3819 $(this).find(".lyr_lock_txt").empty().html("Layer is locked!");
3820 $(this).find(".lyr_locked_icon").removeClass("icon-noun_Unlock_821902").addClass("icon-noun_Lock_747565 lyr_lock_red");
3821
3822 $(".layer-item-harvest-areas").addClass("lyr_highlight_locked_item");
3823
3824 displaySuccessMsg(txtLy21);
3825 $(this).addClass("locked");
3826 }
3827
3828 }
3829 }
3830 else {
3831 displayErrMsg(txtLy24);
3832 }
3833 }
3834});
3835
3836function lyr_checkLoakedLayers() {
3837 var bLyrLocked = false;
3838 //loop through layer items to see if any of them are locked.
3839 $(".layerInfo ").each(function () {
3840 if ($(this).hasClass("lyr_locked")) {
3841 bLyrLocked = true;
3842 }
3843 });
3844 return bLyrLocked;
3845}