| 
									
										
										
										
											2023-10-23 03:23:51 +08:00
										 |  |  | var map; | 
					
						
							|  |  |  | var grid_four = ''; | 
					
						
							|  |  |  | var grid_four_lotw = ''; | 
					
						
							|  |  |  | var grid_four_paper = ''; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function gridPlot(form) { | 
					
						
							|  |  |  |     $(".ld-ext-right-plot").addClass('running'); | 
					
						
							|  |  |  |     $(".ld-ext-right-plot").prop('disabled', true); | 
					
						
							|  |  |  |     $('#plot').prop("disabled", true); | 
					
						
							|  |  |  |     // If map is already initialized
 | 
					
						
							|  |  |  |     var container = L.DomUtil.get('gridsquare_map'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if(container != null){ | 
					
						
							|  |  |  |         container._leaflet_id = null; | 
					
						
							|  |  |  |         container.remove(); | 
					
						
							|  |  |  |         $("#gridmapcontainer").append('<div id="gridsquare_map" style="width: 100%; height: 800px"></div>'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ajax_url = site_url + '/awards/getJaGridmasterGridsjs'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $.ajax({ | 
					
						
							|  |  |  |       url: ajax_url, | 
					
						
							|  |  |  |       type: 'get', | 
					
						
							|  |  |  |       success: function (data) { | 
					
						
							|  |  |  |             $('.cohidden').show(); | 
					
						
							|  |  |  |             $(".ld-ext-right-plot").removeClass('running'); | 
					
						
							|  |  |  |             $(".ld-ext-right-plot").prop('disabled', false); | 
					
						
							|  |  |  |             $('#plot').prop("disabled", false); | 
					
						
							|  |  |  |             grids = data.grids; | 
					
						
							|  |  |  |             grid_max = data.grid_count; | 
					
						
							|  |  |  |             grid_four = data.grid_4char; | 
					
						
							|  |  |  |             grid_four_lotw = data.grid_4char_lotw; | 
					
						
							|  |  |  |             grid_four_paper = data.grid_4char_paper; | 
					
						
							|  |  |  |             paper_count = 0; | 
					
						
							|  |  |  |             grid_four_paper.forEach((element) => { | 
					
						
							|  |  |  |                if (!grid_four_lotw.includes(element)) { | 
					
						
							|  |  |  |                   paper_count++; | 
					
						
							|  |  |  |                } | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |             var layer = L.tileLayer(jslayer, { | 
					
						
							|  |  |  |                 maxZoom: 12, | 
					
						
							|  |  |  |                 attribution: jsattribution, | 
					
						
							|  |  |  |                 id: 'mapbox.streets' | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             map = L.map('gridsquare_map', { | 
					
						
							|  |  |  |             layers: [layer], | 
					
						
							|  |  |  |             center: [35, 140], | 
					
						
							|  |  |  |             zoom: 5, | 
					
						
							|  |  |  |             minZoom: 4, | 
					
						
							|  |  |  |             maxZoom: 12, | 
					
						
							|  |  |  |             fullscreenControl: true, | 
					
						
							|  |  |  |                 fullscreenControlOptions: { | 
					
						
							|  |  |  |                     position: 'topleft' | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             var printer = L.easyPrint({ | 
					
						
							|  |  |  |                 tileLayer: layer, | 
					
						
							|  |  |  |                 sizeModes: ['Current'], | 
					
						
							|  |  |  |                 filename: 'myMap', | 
					
						
							|  |  |  |                 exportOnly: true, | 
					
						
							|  |  |  |                 hideControlContainer: true | 
					
						
							|  |  |  |             }).addTo(map); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             /*Legend specific*/ | 
					
						
							|  |  |  |             var legend = L.control({ position: "topright" }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             legend.onAdd = function(map) { | 
					
						
							|  |  |  |                 var div = L.DomUtil.create("div", "legend"); | 
					
						
							|  |  |  |                 //div.innerHTML += "<h4>" + gridsquares_gridsquares + "</h4>";
 | 
					
						
							|  |  |  |                 html = "<table border=\"0\">"; | 
					
						
							|  |  |  |                 html += '<tr><td><i style="background: #90ee90"></i><span>' + gridsquares_gridsquares_lotw + ':</span></td><td style=\"padding-left: 1em; text-align: right;\"><span>'+grid_four_lotw.length+' / '+grid_max+'</span></td></tr>'; | 
					
						
							|  |  |  |                 html += '<tr><td><i style="background: #00b0f0"></i><span>' + gridsquares_gridsquares_paper + ':</span></td><td style=\"padding-left: 1em; text-align: right;\"><span>'+paper_count+' / '+grid_max+'</span></td></tr>'; | 
					
						
							|  |  |  |                 html += '<tr><td><i style="background: #ffd757"></i><span>' + gridsquares_gridsquares_worked + ' ('+(Math.round((grid_four.length / grid_max) * 10000) / 100)+'%):</span></td><td style=\"padding-left: 1em; text-align: right;\"><span>'+(grid_four.length)+' / '+grid_max+'</span></td></tr>'; | 
					
						
							|  |  |  |                 html += "</table>"; | 
					
						
							|  |  |  |                 div.innerHTML = html; | 
					
						
							|  |  |  |                 return div; | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             legend.addTo(map); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             var maidenhead = L.maidenhead().addTo(map); | 
					
						
							|  |  |  |             map.on('mousemove', onMapMove); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       error: function (data) { | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |    }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function spawnGridsquareModal(loc_4char) { | 
					
						
							|  |  |  |     var ajax_data = ({ | 
					
						
							|  |  |  |        'Searchphrase': loc_4char, | 
					
						
							|  |  |  |        'Band': 'SAT', | 
					
						
							|  |  |  |        'Type': 'VUCC' | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |     $.ajax({ | 
					
						
							|  |  |  |         url: base_url + 'index.php/awards/qso_details_ajax', | 
					
						
							|  |  |  |         type: 'post', | 
					
						
							|  |  |  |         data: ajax_data, | 
					
						
							|  |  |  |         success: function (html) { | 
					
						
							|  |  |  |             BootstrapDialog.show({ | 
					
						
							|  |  |  |                 title: lang_general_word_qso_data, | 
					
						
							|  |  |  |                 cssClass: 'qso-dialog', | 
					
						
							|  |  |  |                 size: BootstrapDialog.SIZE_WIDE, | 
					
						
							|  |  |  |                 nl2br: false, | 
					
						
							|  |  |  |                 message: html, | 
					
						
							|  |  |  |                 onshown: function(dialog) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $('[data-toggle="tooltip"]').tooltip(); | 
					
						
							|  |  |  |                     $('.contacttable').DataTable({ | 
					
						
							|  |  |  |                             "pageLength": 25, | 
					
						
							|  |  |  |                             responsive: false, | 
					
						
							|  |  |  |                             ordering: false, | 
					
						
							|  |  |  |                             "scrollY":        "550px", | 
					
						
							|  |  |  |                             "scrollCollapse": true, | 
					
						
							|  |  |  |                             "paging":         false, | 
					
						
							|  |  |  |                             "scrollX": true, | 
					
						
							|  |  |  |                             dom: 'Bfrtip', | 
					
						
							|  |  |  |                             buttons: [ | 
					
						
							|  |  |  |                                 'csv' | 
					
						
							|  |  |  |                             ] | 
					
						
							|  |  |  |                         }); | 
					
						
							|  |  |  |                             // change color of csv-button if dark mode is chosen
 | 
					
						
							|  |  |  |                     if (isDarkModeTheme()) { | 
					
						
							|  |  |  |                         $(".buttons-csv").css("color", "white"); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                 buttons: [{ | 
					
						
							| 
									
										
										
										
											2023-11-06 02:38:34 +08:00
										 |  |  |                     label: lang_admin_close, | 
					
						
							| 
									
										
										
										
											2023-10-23 03:23:51 +08:00
										 |  |  |                     action: function(dialogItself) { | 
					
						
							|  |  |  |                         dialogItself.close(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }] | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(document).ready(function(){ | 
					
						
							|  |  |  |    gridPlot(this.form); | 
					
						
							|  |  |  | }) |