| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  |     <!-- Optional JavaScript --> | 
					
						
							|  |  |  |     <!-- jQuery first, then Popper.js, then Bootstrap JS --> | 
					
						
							| 
									
										
										
										
											2019-01-13 23:59:16 +08:00
										 |  |  |     <script src="<?php echo base_url(); ?>assets/js/jquery-3.3.1.min.js"></script> | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  |     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> | 
					
						
							| 
									
										
										
										
											2020-03-02 02:08:17 +08:00
										 |  |  |     <script src="<?php echo base_url(); ?>assets/js/jquery.fancybox.min.js"></script> | 
					
						
							| 
									
										
										
										
											2020-02-28 06:17:42 +08:00
										 |  |  |     <script src="<?php echo base_url(); ?>assets/js/bootstrap.bundle.js"></script> | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |     <script src="<?php echo base_url(); ?>assets/js/jquery.jclock.js"></script> | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |     <script type="text/javascript" src="<?php echo base_url(); ?>assets/js/leaflet/leaflet.js"></script> | 
					
						
							|  |  |  |     <script type="text/javascript" src="<?php echo base_url() ;?>assets/js/radiohelpers.js"></script> | 
					
						
							| 
									
										
										
										
											2019-03-21 00:58:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 21:17:05 +08:00
										 |  |  |     <?php if ($this->uri->segment(1) == "adif") { ?>
 | 
					
						
							|  |  |  |         <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script> | 
					
						
							|  |  |  |         <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/js/tempusdominus-bootstrap-4.min.js"></script> | 
					
						
							|  |  |  |         <script type="text/javascript"> | 
					
						
							|  |  |  |             $(function () { | 
					
						
							|  |  |  |                 $('#datetimepicker1').datetimepicker({ | 
					
						
							|  |  |  |                     format: 'DD/MM/YYYY', | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $(function () { | 
					
						
							|  |  |  |                 $('#datetimepicker2').datetimepicker({ | 
					
						
							|  |  |  |                     format: 'DD/MM/YYYY', | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |             }); | 
					
						
							| 
									
										
										
										
											2020-04-01 14:43:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $(function () { | 
					
						
							|  |  |  |                 $('#datetimepicker3').datetimepicker({ | 
					
						
							|  |  |  |                     format: 'DD/MM/YYYY', | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $(function () { | 
					
						
							|  |  |  |                 $('#datetimepicker4').datetimepicker({ | 
					
						
							|  |  |  |                     format: 'DD/MM/YYYY', | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |             }); | 
					
						
							| 
									
										
										
										
											2020-02-07 21:17:05 +08:00
										 |  |  |         </script> | 
					
						
							|  |  |  |     <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-06 05:14:52 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "notes" && ($this->uri->segment(2) == "add" || $this->uri->segment(2) == "edit") ) { ?>
 | 
					
						
							| 
									
										
										
										
											2019-10-06 04:57:44 +08:00
										 |  |  |     <script src="<?php echo base_url() ;?>assets/plugins/quill/quill.min.js"></script> | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     <script> | 
					
						
							|  |  |  |       var quill = new Quill('#quillArea', {  | 
					
						
							|  |  |  |         placeholder: 'Compose an epic...', | 
					
						
							|  |  |  |         theme: 'snow' | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $("#notes_add").on("submit",function(){ | 
					
						
							|  |  |  |         $("#hiddenArea").val(quill.root.innerHTML); | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "search" && $this->uri->segment(2) == "filter") { ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script type="text/javascript" src="<?php echo base_url() ;?>assets/js/query-builder.standalone.min.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script type="text/javascript"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(".search-results-box").hide(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $('#builder').queryBuilder({ | 
					
						
							|  |  |  |     filters: [ | 
					
						
							|  |  |  |       <?php foreach ($get_table_names->result() as $row) { | 
					
						
							|  |  |  |         $value_name = str_replace("COL_", "", $row->Field); | 
					
						
							| 
									
										
										
										
											2019-09-25 07:50:47 +08:00
										 |  |  |         if ($value_name != "PRIMARY_KEY" && strpos($value_name, 'MY_') === false && strpos($value_name, '_INTL') == false) { ?>
 | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  |         { | 
					
						
							|  |  |  |           id: '<?php echo $row->Field; ?>', | 
					
						
							|  |  |  |           label: '<?php echo $value_name; ?>', | 
					
						
							| 
									
										
										
										
											2019-09-15 00:42:20 +08:00
										 |  |  |           <?php if (strpos($row->Type, 'int(') !== false) { ?>
 | 
					
						
							|  |  |  |           type: 'integer', | 
					
						
							|  |  |  |           operators: ['equal', 'not_equal', 'less', 'less_or_equal', 'greater', 'greater_or_equal'] | 
					
						
							|  |  |  |           <?php } elseif(strpos($row->Type, 'double') !== false) { ?>
 | 
					
						
							|  |  |  |           type: 'double', | 
					
						
							|  |  |  |           operators: ['equal', 'not_equal', 'less', 'less_or_equal', 'greater', 'greater_or_equal'] | 
					
						
							|  |  |  |           <?php } elseif(strpos($row->Type, 'datetime') !== false) { ?>
 | 
					
						
							|  |  |  |           type: 'datetime', | 
					
						
							|  |  |  |           operators: ['equal', 'not_equal', 'less', 'less_or_equal', 'greater', 'greater_or_equal'] | 
					
						
							|  |  |  |           <?php } else { ?>
 | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  |           type: 'string', | 
					
						
							| 
									
										
										
										
											2019-10-10 00:57:55 +08:00
										 |  |  |           operators: ['equal', 'not_equal', 'begins_with', 'contains', 'ends_with', 'is_empty', 'is_not_empty', 'is_null', 'is_not_null'] | 
					
						
							| 
									
										
										
										
											2019-09-15 00:42:20 +08:00
										 |  |  |           <?php } ?>
 | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  |         }, | 
					
						
							|  |  |  |         <?php } ?>
 | 
					
						
							|  |  |  |       <?php } ?>
 | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $('#btn-get').on('click', function() { | 
					
						
							|  |  |  |     var result = $('#builder').queryBuilder('getRules'); | 
					
						
							|  |  |  |     if (!$.isEmptyObject(result)) { | 
					
						
							|  |  |  |       //alert(JSON.stringify(result, null, 2));
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $.post( "<?php echo site_url('search/json_result');?>", { search: JSON.stringify(result, null, 2), temp: "testvar" }) | 
					
						
							|  |  |  |       .done(function( data ) { | 
					
						
							| 
									
										
										
										
											2019-09-15 03:41:43 +08:00
										 |  |  |         //console.log(data)
 | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  |         //alert( "Data Loaded: " + data );
 | 
					
						
							|  |  |  |         $('.qso').remove(); | 
					
						
							|  |  |  |         $(".search-results-box").show(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $.each(JSON.parse(data), function(i, item) { | 
					
						
							| 
									
										
										
										
											2019-09-15 03:40:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |           var band = ""; | 
					
						
							|  |  |  |           if(item.COL_SAT_NAME != "") { | 
					
						
							|  |  |  |             band = item.COL_SAT_NAME; | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |             band = item.COL_BAND; | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           var callsign = '<a data-fancybox data-type="iframe" data-src="<?php echo site_url('logbook/view');?>/' + item.COL_PRIMARY_KEY + '" data-src="" href="javascript:;">' + item.COL_CALL + '</a>'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           $('#results').append('<tr class="qso"><td>' + item.COL_TIME_ON + '</td><td>' + callsign + '</td><td>' + item.COL_MODE + '</td><td>' + item.COL_RST_SENT + '</td><td>' + item.COL_RST_RCVD + '</td><td>' + band + '</td><td>' + item.COL_COUNTRY + '</td><td></td></tr>'); | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     else{ | 
					
						
							| 
									
										
										
										
											2019-09-15 03:40:17 +08:00
										 |  |  |       //console.log("invalid object :");
 | 
					
						
							| 
									
										
										
										
											2019-09-12 07:53:39 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $('#btn-set').on('click', function() { | 
					
						
							|  |  |  |     //$('#builder').queryBuilder('setRules', rules_basic);
 | 
					
						
							|  |  |  |     var result = $('#builder').queryBuilder('getRules'); | 
					
						
							|  |  |  |     if (!$.isEmptyObject(result)) { | 
					
						
							|  |  |  |       rules_basic = result; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   //When rules changed :
 | 
					
						
							|  |  |  |   $('#builder').on('getRules.queryBuilder.filter', function(e) { | 
					
						
							|  |  |  |     //$log.info(e.value);
 | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  | <script> | 
					
						
							|  |  |  | $(document).ready(function() { | 
					
						
							|  |  |  | 	$('#create_station_profile #country').val($("#dxcc_select option:selected").text()); | 
					
						
							|  |  |  | 	$("#create_station_profile #dxcc_select" ).change(function() { | 
					
						
							|  |  |  | 	  $('#country').val($("#dxcc_select option:selected").text()); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | </script> | 
					
						
							| 
									
										
										
										
											2019-01-13 23:59:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-21 01:47:40 +08:00
										 |  |  | <script> | 
					
						
							| 
									
										
										
										
											2019-10-06 23:38:54 +08:00
										 |  |  | $('[data-fancybox]').fancybox({ | 
					
						
							|  |  |  |   toolbar  : false, | 
					
						
							|  |  |  |   smallBtn : true, | 
					
						
							|  |  |  |   iframe : { | 
					
						
							|  |  |  |     preload : false | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2019-10-09 04:11:13 +08:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-21 01:47:40 +08:00
										 |  |  | </script> | 
					
						
							| 
									
										
										
										
											2019-04-08 22:36:23 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-06 18:06:38 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "" || $this->uri->segment(1) == "dashboard" ) { ?>
 | 
					
						
							| 
									
										
										
										
											2019-06-25 00:32:22 +08:00
										 |  |  |     <script type="text/javascript" src="<?php echo base_url();?>assets/js/leaflet/L.Maidenhead.js"></script> | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |     <script type="text/javascript" src="<?php echo base_url();?>assets/js/leaflet/leafembed.js"></script> | 
					
						
							| 
									
										
										
										
											2019-03-21 00:58:06 +08:00
										 |  |  |     <script type="text/javascript"> | 
					
						
							| 
									
										
										
										
											2020-02-28 06:17:42 +08:00
										 |  |  |       $(function () { | 
					
						
							|  |  |  |         $('[data-toggle="tooltip"]').tooltip() | 
					
						
							| 
									
										
										
										
											2020-02-28 06:18:54 +08:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-21 00:58:06 +08:00
										 |  |  |         <?php if($qra == "set") { ?>
 | 
					
						
							|  |  |  |         var q_lat = <?php echo $qra_lat; ?>;
 | 
					
						
							|  |  |  |         var q_lng = <?php echo $qra_lng; ?>;    
 | 
					
						
							|  |  |  |         <?php } else { ?>
 | 
					
						
							|  |  |  |         var q_lat = 40.313043; | 
					
						
							|  |  |  |         var q_lng = -32.695312; | 
					
						
							|  |  |  |         <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var qso_loc = '<?php echo site_url('dashboard/map');?>'; | 
					
						
							|  |  |  |         var q_zoom = 2; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $(document).ready(function(){ | 
					
						
							| 
									
										
										
										
											2019-06-25 00:32:22 +08:00
										 |  |  |             <?php if ($this->config->item('map_gridsquares') != FALSE) { ?>
 | 
					
						
							|  |  |  |               var grid = "Yes"; | 
					
						
							|  |  |  |             <?php } else { ?>
 | 
					
						
							|  |  |  |               var grid = "No"; | 
					
						
							|  |  |  |             <?php } ?>
 | 
					
						
							|  |  |  |             initmap(grid); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-21 00:58:06 +08:00
										 |  |  |       }); | 
					
						
							|  |  |  |     </script> | 
					
						
							| 
									
										
										
										
											2019-04-08 22:36:23 +08:00
										 |  |  | <?php } ?>
 | 
					
						
							| 
									
										
										
										
											2019-03-21 00:58:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-13 23:59:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | <?php if ($this->uri->segment(1) == "radio") { ?>
 | 
					
						
							|  |  |  | <!-- If this is the admin/radio page run the JS --> | 
					
						
							|  |  |  | <script type="text/javascript"> | 
					
						
							|  |  |  |     $(document).ready(function(){ | 
					
						
							|  |  |  |         setInterval(function() { | 
					
						
							|  |  |  |             // Get Mode
 | 
					
						
							|  |  |  |             $.get('radio/status/', function(result) { | 
					
						
							|  |  |  |                     //$('.status').append(result);
 | 
					
						
							|  |  |  |                     $('.status').html(result); | 
					
						
							|  |  |  |             }); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |         }, 2000); | 
					
						
							| 
									
										
										
										
											2019-01-13 23:59:16 +08:00
										 |  |  |  }); | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-14 18:52:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | <?php if ($this->uri->segment(1) == "search") { ?>
 | 
					
						
							|  |  |  | <script type="text/javascript"> | 
					
						
							|  |  |  | i=0; | 
					
						
							| 
									
										
										
										
											2019-09-05 05:11:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | function searchButtonPress(){ | 
					
						
							|  |  |  |     event.preventDefault() | 
					
						
							|  |  |  |     if ($('#callsign').val()) { | 
					
						
							|  |  |  |       $('#partial_view').load("logbook/search_result/" + $('#callsign').val(), function() {}); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-14 18:52:11 +08:00
										 |  |  | $(document).ready(function(){ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-05 05:11:55 +08:00
										 |  |  |   <?php if($this->input->post('callsign') != "") { ?>
 | 
					
						
							| 
									
										
										
										
											2019-05-14 18:52:11 +08:00
										 |  |  |     $('#partial_view').load("logbook/search_result/<?php echo $this->input->post('callsign'); ?>", function() { | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2019-09-05 05:11:55 +08:00
										 |  |  |   <?php } ?>
 | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | $(document).on('keypress',function(e) {  | 
					
						
							|  |  |  |   if(e.which == 13) { | 
					
						
							| 
									
										
										
										
											2019-05-14 18:52:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-05 05:11:55 +08:00
										 |  |  |     if ($('#callsign').val()) { | 
					
						
							|  |  |  |       $('#partial_view').load("logbook/search_result/" + $('#callsign').val(), function() {}); | 
					
						
							| 
									
										
										
										
											2019-05-14 18:52:11 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-05 05:11:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |      event.preventDefault(); | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-14 18:52:11 +08:00
										 |  |  | }); | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-26 01:43:32 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "logbook" && $this->uri->segment(2) != "view") { ?>
 | 
					
						
							| 
									
										
										
										
											2019-06-25 01:21:02 +08:00
										 |  |  |     <script type="text/javascript" src="<?php echo base_url();?>assets/js/leaflet/L.Maidenhead.js"></script> | 
					
						
							| 
									
										
										
										
											2019-05-21 23:47:42 +08:00
										 |  |  |     <script type="text/javascript" src="<?php echo base_url();?>assets/js/leaflet/leafembed.js"></script> | 
					
						
							| 
									
										
										
										
											2019-05-14 23:46:16 +08:00
										 |  |  |     <script type="text/javascript"> | 
					
						
							|  |  |  |         <?php if($qra == "set") { ?>
 | 
					
						
							|  |  |  |         var q_lat = <?php echo $qra_lat; ?>;
 | 
					
						
							|  |  |  |         var q_lng = <?php echo $qra_lng; ?>;    
 | 
					
						
							|  |  |  |         <?php } else { ?>
 | 
					
						
							|  |  |  |         var q_lat = 40.313043; | 
					
						
							|  |  |  |         var q_lng = -32.695312; | 
					
						
							|  |  |  |         <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var qso_loc = '<?php echo site_url('logbook/qso_map/25/'.$this->uri->segment(3)); ?>'; | 
					
						
							|  |  |  |         var q_zoom = 2; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-25 01:21:02 +08:00
										 |  |  |         <?php if ($this->config->item('map_gridsquares') != FALSE) { ?>
 | 
					
						
							|  |  |  |               var grid = "Yes"; | 
					
						
							|  |  |  |         <?php } else { ?>
 | 
					
						
							|  |  |  |               var grid = "No"; | 
					
						
							|  |  |  |         <?php } ?>
 | 
					
						
							|  |  |  |             initmap(grid); | 
					
						
							| 
									
										
										
										
											2019-05-14 23:46:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     </script> | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <?php if ($this->uri->segment(1) == "qso") { ?>
 | 
					
						
							| 
									
										
										
										
											2019-06-14 07:14:39 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  |   var markers = L.layerGroup(); | 
					
						
							|  |  |  |   var mymap = L.map('qsomap').setView([51.505, -0.09], 13); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { | 
					
						
							|  |  |  |     maxZoom: 18, | 
					
						
							|  |  |  |     attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' + | 
					
						
							|  |  |  |       '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + | 
					
						
							|  |  |  |       'Created by Cloudlog', | 
					
						
							|  |  |  |     id: 'mapbox.streets' | 
					
						
							|  |  |  |   }).addTo(mymap); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |   <script type="text/javascript"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var manual = <?php echo $_GET['manual']; ?>;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $(document).ready(function() { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-15 19:03:15 +08:00
										 |  |  |     $('.callsign-suggest').hide();     | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |     /* On Page Load */ | 
					
						
							|  |  |  |     var catcher = function() { | 
					
						
							|  |  |  |       var changed = false; | 
					
						
							|  |  |  |       $('form').each(function() { | 
					
						
							|  |  |  |         if ($(this).data('initialForm') != $(this).serialize()) { | 
					
						
							|  |  |  |           changed = true; | 
					
						
							|  |  |  |           $(this).addClass('changed'); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |           $(this).removeClass('changed'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |       if (changed) { | 
					
						
							|  |  |  |         return 'Unsaved QSO!'; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $(function() { | 
					
						
							|  |  |  |       $('form').each(function() { | 
					
						
							|  |  |  |         $(this).data('initialForm', $(this).serialize()); | 
					
						
							|  |  |  |       }).submit(function(e) { | 
					
						
							|  |  |  |         var formEl = this; | 
					
						
							|  |  |  |         var changed = false; | 
					
						
							|  |  |  |         $('form').each(function() { | 
					
						
							|  |  |  |           if (this != formEl && $(this).data('initialForm') != $(this).serialize()) { | 
					
						
							|  |  |  |             changed = true; | 
					
						
							|  |  |  |             $(this).addClass('changed'); | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |             $(this).removeClass('changed'); | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |         if (changed && !confirm('You have an unsaved QSO. Continue with QSO?')) { | 
					
						
							|  |  |  |           e.preventDefault(); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |           $(window).unbind('beforeunload', catcher); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |       $(window).bind('beforeunload', catcher); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      // Callsign always has focus on load
 | 
					
						
							|  |  |  |       $("#callsign").focus();   | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       if ( ! manual ) { | 
					
						
							|  |  |  |         $(function($) { | 
					
						
							|  |  |  |           var options = { | 
					
						
							|  |  |  |             utc: true, | 
					
						
							| 
									
										
										
										
											2019-10-06 23:38:54 +08:00
										 |  |  |             format: '%H:%M:%S' | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |           } | 
					
						
							| 
									
										
										
										
											2019-05-26 05:11:53 +08:00
										 |  |  |           $('.input_time').jclock(options); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2019-05-26 05:17:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $(function($) { | 
					
						
							|  |  |  |           var options = { | 
					
						
							|  |  |  |             utc: true, | 
					
						
							|  |  |  |             format: '%d-%m-%Y' | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           $('.input_date').jclock(options); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 23:18:17 +08:00
										 |  |  |   /* Function: reset_fields is used to reset the fields on the QSO page */ | 
					
						
							| 
									
										
										
										
											2019-06-24 23:13:51 +08:00
										 |  |  |   function reset_fields() { | 
					
						
							| 
									
										
										
										
											2019-07-25 21:16:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |       $('#locator_info').text(""); | 
					
						
							|  |  |  |       $('#country').val(""); | 
					
						
							| 
									
										
										
										
											2019-06-16 23:37:26 +08:00
										 |  |  |       $('#lotw_info').text(""); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |       $('#dxcc_id').val(""); | 
					
						
							|  |  |  |       $('#cqz').val(""); | 
					
						
							|  |  |  |       $('#name').val(""); | 
					
						
							|  |  |  |       $('#qth').val(""); | 
					
						
							|  |  |  |       $('#locator').val(""); | 
					
						
							|  |  |  |       $('#iota_ref').val(""); | 
					
						
							|  |  |  |       $("#locator").removeClass("workedGrid"); | 
					
						
							|  |  |  |       $("#locator").removeClass("newGrid"); | 
					
						
							| 
									
										
										
										
											2019-10-14 05:07:19 +08:00
										 |  |  |       $("#callsign").removeClass("workedGrid"); | 
					
						
							|  |  |  |       $("#callsign").removeClass("newGrid"); | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  |       $('#callsign_info').removeClass("badge-secondary"); | 
					
						
							|  |  |  |       $('#callsign_info').removeClass("badge-success"); | 
					
						
							|  |  |  |       $('#callsign_info').removeClass("badge-danger"); | 
					
						
							| 
									
										
										
										
											2019-06-17 01:13:19 +08:00
										 |  |  |       $('#qsl_via').val(""); | 
					
						
							| 
									
										
										
										
											2019-07-25 21:16:09 +08:00
										 |  |  |       $('#callsign_info').text(""); | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  |       $('#input_usa_state').val(""); | 
					
						
							| 
									
										
										
										
											2020-04-07 05:03:55 +08:00
										 |  |  |       $('#qso-last-table').show(); | 
					
						
							|  |  |  |       $('#partial_view').hide(); | 
					
						
							| 
									
										
										
										
											2019-06-17 01:13:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-14 07:14:39 +08:00
										 |  |  |       mymap.setView([51.505, -0.09], 13); | 
					
						
							|  |  |  |       mymap.removeLayer(markers); | 
					
						
							| 
									
										
										
										
											2019-08-15 19:06:24 +08:00
										 |  |  |       $('.callsign-suggest').hide(); | 
					
						
							| 
									
										
										
										
											2019-06-24 23:13:51 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   jQuery(function($) { | 
					
						
							|  |  |  |   var input = $('#callsign'); | 
					
						
							|  |  |  |   input.on('keydown', function() { | 
					
						
							|  |  |  |     var key = event.keyCode || event.charCode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if( key == 8 || key == 46 ) { | 
					
						
							|  |  |  |       reset_fields(); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2019-12-23 04:15:18 +08:00
										 |  |  |    | 
					
						
							|  |  |  |   $(document).keyup(function(e) { | 
					
						
							|  |  |  |      if (e.key === "Escape") { // escape key maps to keycode `27`
 | 
					
						
							|  |  |  |        reset_fields(); | 
					
						
							|  |  |  | 	   $('#callsign').val(""); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-14 05:02:36 +08:00
										 |  |  |     // On Key up check and suggest callsigns
 | 
					
						
							|  |  |  |     $("#callsign").keyup(function() { | 
					
						
							|  |  |  |     if ($(this).val().length >= 3) { | 
					
						
							|  |  |  |       $('.callsign-suggest').show(); | 
					
						
							|  |  |  |       $.get('lookup/scp/' + $(this).val().toUpperCase(), function(result) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $('.callsign-suggestions').text(result); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |     $("#callsign").focusout(function() { | 
					
						
							| 
									
										
										
										
											2019-08-14 05:02:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-25 21:16:09 +08:00
										 |  |  |         if ($(this).val().length >= 3) { | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |             /* Find and populate DXCC */ | 
					
						
							| 
									
										
										
										
											2019-08-14 05:02:36 +08:00
										 |  |  |             $('.callsign-suggest').hide(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-16 19:25:31 +08:00
										 |  |  |             if($("#sat_name").val() != ""){ | 
					
						
							|  |  |  |               var sat_type = "SAT"; | 
					
						
							|  |  |  |               var json_band = "0"; | 
					
						
							|  |  |  |               var json_mode = "0"; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |               var sat_type = "0"; | 
					
						
							|  |  |  |               var json_band = $("#band").val(); | 
					
						
							|  |  |  |               var json_mode = $("#mode").val(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $.getJSON('logbook/json/' + $(this).val().toUpperCase() + '/' + sat_type + '/' + json_band + '/' + json_mode, function(result) | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |             { | 
					
						
							| 
									
										
										
										
											2019-06-16 23:37:26 +08:00
										 |  |  |               //$('#country').val(result); lotw_info
 | 
					
						
							| 
									
										
										
										
											2019-08-13 23:11:12 +08:00
										 |  |  |               if(result.dxcc.entity != undefined) { | 
					
						
							|  |  |  |                 $('#country').val(convert_case(result.dxcc.entity)); | 
					
						
							|  |  |  |                 $('#callsign_info').text(convert_case(result.dxcc.entity)); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 				 | 
					
						
							|  |  |  | 				if($("#sat_name" ).val() != "") { | 
					
						
							|  |  |  | 					//logbook/jsonlookupgrid/io77/SAT/0/0
 | 
					
						
							|  |  |  | 					$.getJSON('logbook/jsonlookupcallsign/' + $("#callsign").val().toUpperCase() + '/SAT/0/0', function(result) | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 					  // Reset CSS values before updating
 | 
					
						
							|  |  |  | 					  $('#callsign').removeClass("workedGrid"); | 
					
						
							|  |  |  | 					  $('#callsign').removeClass("newGrid"); | 
					
						
							|  |  |  | 					  $('#callsign').attr('title', ''); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					  if (result.workedBefore) | 
					
						
							|  |  |  | 					  { | 
					
						
							|  |  |  | 						$('#callsign').addClass("workedGrid"); | 
					
						
							|  |  |  | 						$('#callsign').attr('title', 'Callsign was already worked in the past on this band and mode!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					  else | 
					
						
							|  |  |  | 					  { | 
					
						
							|  |  |  | 						$('#callsign').addClass("newGrid"); | 
					
						
							|  |  |  | 						$('#callsign').attr('title', 'New Callsign!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 				  } else { | 
					
						
							|  |  |  | 					$.getJSON('logbook/jsonlookupcallsign/' + $("#callsign").val().toUpperCase() + '/0/' + $("#band").val() +'/' + $("#mode").val(), function(result) | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 					  // Reset CSS values before updating
 | 
					
						
							|  |  |  | 					  $('#callsign').removeClass("workedGrid"); | 
					
						
							|  |  |  | 					  $('#callsign').removeClass("newGrid"); | 
					
						
							|  |  |  | 					  $('#callsign').attr('title', ''); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					  if (result.workedBefore) | 
					
						
							|  |  |  | 					  { | 
					
						
							|  |  |  | 						$('#callsign').addClass("workedGrid"); | 
					
						
							|  |  |  | 						$('#callsign').attr('title', 'Callsign was already worked in the past on this band and mode!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					  else | 
					
						
							|  |  |  | 					  { | 
					
						
							|  |  |  | 						$('#callsign').addClass("newGrid"); | 
					
						
							|  |  |  | 						$('#callsign').attr('title', 'New Callsign!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 				  } | 
					
						
							|  |  |  | 				 | 
					
						
							|  |  |  | 			   | 
					
						
							|  |  |  | 				 | 
					
						
							|  |  |  | 				if($("#sat_name" ).val() != "") { | 
					
						
							|  |  |  | 					//logbook/jsonlookupgrid/io77/SAT/0/0
 | 
					
						
							|  |  |  | 					$.getJSON('logbook/jsonlookupdxcc/' + convert_case(result.dxcc.entity) + '/SAT/0/0', function(result) | 
					
						
							|  |  |  | 					{ | 
					
						
							| 
									
										
										
										
											2019-10-14 05:15:04 +08:00
										 |  |  | 					   | 
					
						
							|  |  |  | 					  $('#callsign_info').removeClass("badge-secondary"); | 
					
						
							|  |  |  | 					  $('#callsign_info').removeClass("badge-success"); | 
					
						
							|  |  |  | 					  $('#callsign_info').removeClass("badge-danger"); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 					  $('#callsign_info').attr('title', ''); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					  if (result.workedBefore) | 
					
						
							|  |  |  | 					  { | 
					
						
							| 
									
										
										
										
											2019-10-14 05:15:04 +08:00
										 |  |  | 						$('#callsign_info').addClass("badge-success"); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 						$('#callsign_info').attr('title', 'DXCC was already worked in the past on this band and mode!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					  else | 
					
						
							|  |  |  | 					  { | 
					
						
							| 
									
										
										
										
											2019-10-14 05:15:04 +08:00
										 |  |  | 						$('#callsign_info').addClass("badge-danger"); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 						$('#callsign_info').attr('title', 'New DXCC, not worked on this band and mode!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 				  } else { | 
					
						
							|  |  |  | 					$.getJSON('logbook/jsonlookupdxcc/' + convert_case(result.dxcc.entity) + '/0/' + $("#band").val() +'/' + $("#mode").val(), function(result) | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 					  // Reset CSS values before updating
 | 
					
						
							| 
									
										
										
										
											2019-10-14 05:24:26 +08:00
										 |  |  | 					  $('#callsign_info').removeClass("badge-secondary"); | 
					
						
							|  |  |  | 					  $('#callsign_info').removeClass("badge-success"); | 
					
						
							|  |  |  | 					  $('#callsign_info').removeClass("badge-danger"); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 					  $('#callsign_info').attr('title', ''); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					  if (result.workedBefore) | 
					
						
							|  |  |  | 					  { | 
					
						
							| 
									
										
										
										
											2019-10-14 05:15:04 +08:00
										 |  |  | 						$('#callsign_info').addClass("badge-success"); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 						$('#callsign_info').attr('title', 'DXCC was already worked in the past on this band and mode!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					  else | 
					
						
							|  |  |  | 					  { | 
					
						
							| 
									
										
										
										
											2019-10-14 05:15:04 +08:00
										 |  |  | 						$('#callsign_info').addClass("badge-danger"); | 
					
						
							| 
									
										
										
										
											2019-10-14 04:42:41 +08:00
										 |  |  | 						$('#callsign_info').attr('title', 'New DXCC, not worked on this band and mode!'); | 
					
						
							|  |  |  | 					  } | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 				  } | 
					
						
							| 
									
										
										
										
											2019-08-13 23:11:12 +08:00
										 |  |  |               } | 
					
						
							| 
									
										
										
										
											2019-06-16 23:37:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |               if(result.lotw_member == "active") { | 
					
						
							|  |  |  |                 $('#lotw_info').text("LoTW"); | 
					
						
							|  |  |  |               } | 
					
						
							| 
									
										
										
										
											2019-08-13 23:11:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-14 07:14:39 +08:00
										 |  |  |               $('#dxcc_id').val(result.dxcc.adif); | 
					
						
							|  |  |  |               $('#cqz').val(result.dxcc.cqz); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               // Set Map to Lat/Long
 | 
					
						
							|  |  |  |               markers.clearLayers(); | 
					
						
							| 
									
										
										
										
											2019-07-25 15:11:11 +08:00
										 |  |  |               if (typeof result.latlng !== "undefined" && result.latlng !== false) { | 
					
						
							| 
									
										
										
										
											2019-06-14 07:14:39 +08:00
										 |  |  |                 var marker = L.marker([result.latlng[0], result.latlng[1]]); | 
					
						
							| 
									
										
										
										
											2019-08-26 22:13:52 +08:00
										 |  |  |                 mymap.panTo([result.latlng[0], result.latlng[1]], 8); | 
					
						
							| 
									
										
										
										
											2019-06-14 07:14:39 +08:00
										 |  |  |               } else { | 
					
						
							|  |  |  |                 var marker = L.marker([result.dxcc.lat, result.dxcc.long]); | 
					
						
							| 
									
										
										
										
											2019-08-26 22:13:52 +08:00
										 |  |  |                 mymap.panTo([result.dxcc.lat, result.dxcc.long], 8); | 
					
						
							| 
									
										
										
										
											2019-06-14 07:14:39 +08:00
										 |  |  |               } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               markers.addLayer(marker).addTo(mymap); | 
					
						
							| 
									
										
										
										
											2019-06-17 00:49:39 +08:00
										 |  |  |          | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |             /* Find Locator if the field is empty */ | 
					
						
							|  |  |  |             if($('#locator').val() == "") { | 
					
						
							|  |  |  |                 $('#locator').val(result.callsign_qra); | 
					
						
							|  |  |  |                 $('#locator_info').html(result.bearing); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (result.callsign_qra != "") | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                   if (result.workedBefore) | 
					
						
							|  |  |  |                   { | 
					
						
							|  |  |  |                     $('#locator').addClass("workedGrid"); | 
					
						
							|  |  |  |                     $('#locator').attr('title', 'Grid was already worked in the past'); | 
					
						
							|  |  |  |                   } | 
					
						
							|  |  |  |                   else | 
					
						
							|  |  |  |                   { | 
					
						
							|  |  |  |                     $('#locator').addClass("newGrid"); | 
					
						
							|  |  |  |                     $('#locator').attr('title', 'New grid!'); | 
					
						
							|  |  |  |                   } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 else | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                   $('#locator').removeClass("workedGrid"); | 
					
						
							|  |  |  |                   $('#locator').removeClass("newGrid"); | 
					
						
							|  |  |  |                   $('#locator').attr('title', ''); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             /* Find Operators Name */ | 
					
						
							| 
									
										
										
										
											2019-06-17 00:49:39 +08:00
										 |  |  |             if($('#qsl_via').val() == "") { | 
					
						
							|  |  |  |                 $('#qsl_via').val(result.qsl_manager); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  |             /* Find Operators Name */ | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |             if($('#name').val() == "") { | 
					
						
							|  |  |  |                 $('#name').val(result.callsign_name); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if($('#qth').val() == "") { | 
					
						
							|  |  |  |                 $('#qth').val(result.callsign_qth); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  |             /* | 
					
						
							|  |  |  |             * Update state with returned value | 
					
						
							|  |  |  |             */ | 
					
						
							|  |  |  |             if($("#input_usa_state").val() == "") { | 
					
						
							|  |  |  |               $("#input_usa_state").val(result.callsign_state).trigger('change'); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-17 01:13:19 +08:00
										 |  |  |             if($('#iota_ref').val() == "") { | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |                 $('#iota_ref').val(result.callsign_iota); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2020-04-07 05:03:55 +08:00
										 |  |  |             // Hide the last QSO table
 | 
					
						
							|  |  |  |             $('#qso-last-table').hide(); | 
					
						
							|  |  |  |             $('#partial_view').show(); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |             /* display past QSOs */ | 
					
						
							|  |  |  |             $('#partial_view').html(result.partial); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |             /* Reset fields ... */ | 
					
						
							|  |  |  |             $('#callsign_info').text(""); | 
					
						
							|  |  |  |             $('#locator_info').text(""); | 
					
						
							|  |  |  |             $('#country').val(""); | 
					
						
							|  |  |  |             $('#dxcc_id').val(""); | 
					
						
							|  |  |  |             $('#cqz').val(""); | 
					
						
							|  |  |  |             $('#name').val(""); | 
					
						
							|  |  |  |             $('#qth').val(""); | 
					
						
							|  |  |  |             $('#locator').val(""); | 
					
						
							|  |  |  |             $('#iota_ref').val(""); | 
					
						
							|  |  |  |             $("#locator").removeClass("workedGrid"); | 
					
						
							|  |  |  |             $("#locator").removeClass("newGrid"); | 
					
						
							| 
									
										
										
										
											2019-10-14 05:07:19 +08:00
										 |  |  |             $("#callsign").removeClass("workedGrid"); | 
					
						
							|  |  |  |             $("#callsign").removeClass("newGrid"); | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  | 			      $('#callsign_info').removeClass("badge-secondary"); | 
					
						
							|  |  |  | 			      $('#callsign_info').removeClass("badge-success"); | 
					
						
							|  |  |  | 			      $('#callsign_info').removeClass("badge-danger"); | 
					
						
							|  |  |  |             $('#input_usa_state').val(""); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |         }   | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Only set the frequency when not set by userdata/PHP.
 | 
					
						
							|  |  |  |     if ($('#frequency').val() == "") | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       $.get('qso/band_to_freq/' + $('#band').val() + '/' + $('.mode').val(), function(result) { | 
					
						
							|  |  |  |             $('#frequency').val(result); | 
					
						
							|  |  |  |             $('#frequency_rx').val(""); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* on mode change */ | 
					
						
							|  |  |  |     $('.mode').change(function() { | 
					
						
							|  |  |  |         $.get('qso/band_to_freq/' + $('#band').val() + '/' + $('.mode').val(), function(result) { | 
					
						
							|  |  |  |             $('#frequency').val(result); | 
					
						
							|  |  |  |             $('#frequency_rx').val(""); | 
					
						
							|  |  |  |           });   | 
					
						
							|  |  |  |       });   | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Calculate Frequency */ | 
					
						
							|  |  |  |       /* on band change */ | 
					
						
							|  |  |  |       $('#band').change(function() { | 
					
						
							|  |  |  |         $.get('qso/band_to_freq/' + $(this).val() + '/' + $('.mode').val(), function(result) { | 
					
						
							|  |  |  |             $('#frequency').val(result); | 
					
						
							|  |  |  |             $('#frequency_rx').val(""); | 
					
						
							|  |  |  |           });   | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |       /* On Key up Calculate Bearing and Distance */ | 
					
						
							|  |  |  |     $("#locator").keyup(function(){ | 
					
						
							|  |  |  |       if ($(this).val()) { | 
					
						
							| 
									
										
										
										
											2019-06-24 23:02:02 +08:00
										 |  |  |         var qra_input = $(this).val(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-16 19:06:19 +08:00
										 |  |  |         var qra_lookup = qra_input.substring(0, 4); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if(qra_lookup.length >= 4) { | 
					
						
							|  |  |  |            | 
					
						
							|  |  |  |           // Check Log if satname is provided
 | 
					
						
							|  |  |  |           if($("#sat_name" ).val() != "") { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             //logbook/jsonlookupgrid/io77/SAT/0/0
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $.getJSON('logbook/jsonlookupgrid/' + qra_lookup.toUpperCase() + '/SAT/0/0', function(result) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |               // Reset CSS values before updating
 | 
					
						
							|  |  |  |               $('#locator').removeClass("workedGrid"); | 
					
						
							|  |  |  |               $('#locator').removeClass("newGrid"); | 
					
						
							|  |  |  |               $('#locator').attr('title', ''); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               if (result.workedBefore) | 
					
						
							|  |  |  |               { | 
					
						
							|  |  |  |                 $('#locator').addClass("workedGrid"); | 
					
						
							|  |  |  |                 $('#locator').attr('title', 'Grid was already worked in the past'); | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |               else | 
					
						
							|  |  |  |               { | 
					
						
							|  |  |  |                 $('#locator').addClass("newGrid"); | 
					
						
							|  |  |  |                 $('#locator').attr('title', 'New grid!'); | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |             $.getJSON('logbook/jsonlookupgrid/' + qra_lookup.toUpperCase() + '/0/' + $("#band").val() +'/' + $("#mode").val(), function(result) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |               // Reset CSS values before updating
 | 
					
						
							|  |  |  |               $('#locator').removeClass("workedGrid"); | 
					
						
							|  |  |  |               $('#locator').removeClass("newGrid"); | 
					
						
							|  |  |  |               $('#locator').attr('title', ''); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               if (result.workedBefore) | 
					
						
							|  |  |  |               { | 
					
						
							|  |  |  |                 $('#locator').addClass("workedGrid"); | 
					
						
							|  |  |  |                 $('#locator').attr('title', 'Grid was already worked in the past'); | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |               else | 
					
						
							|  |  |  |               { | 
					
						
							|  |  |  |                 $('#locator').addClass("newGrid"); | 
					
						
							|  |  |  |                 $('#locator').attr('title', 'New grid!'); | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if(qra_input.length >= 4) { | 
					
						
							| 
									
										
										
										
											2019-06-24 23:02:02 +08:00
										 |  |  |           $.getJSON('logbook/qralatlngjson/' + $(this).val(), function(result) | 
					
						
							|  |  |  |           { | 
					
						
							|  |  |  |             // Set Map to Lat/Long
 | 
					
						
							|  |  |  |             markers.clearLayers(); | 
					
						
							|  |  |  |             if (typeof result !== "undefined") { | 
					
						
							|  |  |  |               var marker = L.marker([result[0], result[1]]); | 
					
						
							|  |  |  |               mymap.setView([result[0], result[1]], 8); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             markers.addLayer(marker).addTo(mymap); | 
					
						
							|  |  |  |           }) | 
					
						
							|  |  |  |            | 
					
						
							|  |  |  |           $('#locator_info').load("logbook/searchbearing/" + $(this).val()).fadeIn("slow"); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Change report based on mode
 | 
					
						
							|  |  |  |     $('.mode').change(function(){ | 
					
						
							|  |  |  |       if($(this).val() == 'JT65' || $(this).val() == 'JT65B' || $(this).val() == 'JT6C' || $(this).val() == 'JTMS' || $(this).val() == 'ISCAT' || $(this).val() == 'MSK144' || $(this).val() == 'JTMSK' || $(this).val() == 'QRA64'){ | 
					
						
							|  |  |  |       $('#rst_sent').val('-5'); | 
					
						
							|  |  |  |       $('#rst_recv').val('-5'); | 
					
						
							|  |  |  |       } else if ($(this).val() == 'FSK441' || $(this).val() == 'JT6M') { | 
					
						
							|  |  |  |         $('#rst_sent').val('26'); | 
					
						
							|  |  |  |       $('#rst_recv').val('26'); | 
					
						
							| 
									
										
										
										
											2019-08-18 23:00:15 +08:00
										 |  |  |       } else if ($(this).val() == 'CW' || $(this).val() == 'RTTY' || $(this).val() == 'PSK31' || $(this).val() == 'PSK63') { | 
					
						
							| 
									
										
										
										
											2019-08-18 22:51:31 +08:00
										 |  |  |       $('#rst_sent').val('599'); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |       $('#rst_recv').val('599'); | 
					
						
							|  |  |  |       } else { | 
					
						
							|  |  |  |         $('#rst_sent').val('59'); | 
					
						
							|  |  |  |       $('#rst_recv').val('59'); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* Javascript for controlling rig frequency. */ | 
					
						
							|  |  |  | <?php if ( $_GET['manual'] == 0 ) { ?>
 | 
					
						
							|  |  |  |   var updateFromCAT = function() { | 
					
						
							|  |  |  |     if($('select.radios option:selected').val() != '0') { | 
					
						
							|  |  |  |       radioID = $('select.radios option:selected').val();  | 
					
						
							|  |  |  |       $.getJSON( "radio/json/" + radioID, function( data ) { | 
					
						
							|  |  |  |           /* { | 
					
						
							|  |  |  |               "uplink_freq": "2400210000", | 
					
						
							|  |  |  |               "downlink_freq": "10489710000", | 
					
						
							|  |  |  |               "mode": "SSB", | 
					
						
							|  |  |  |               "satmode": "", | 
					
						
							|  |  |  |               "satname": "ES'HAIL-2" | 
					
						
							|  |  |  |           }  */ | 
					
						
							|  |  |  |           if (data.uplink_freq != "") | 
					
						
							|  |  |  |           { | 
					
						
							|  |  |  |             $('#frequency').val(data.uplink_freq); | 
					
						
							|  |  |  |             $("#band").val(frequencyToBand(data.uplink_freq)); | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           if (data.downlink_freq != "") | 
					
						
							|  |  |  |           { | 
					
						
							|  |  |  |             $('#frequency_rx').val(data.downlink_freq); | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |           old_mode = $(".mode").val(); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |           if (data.mode == "LSB" || data.mode == "USB" || data.mode == "SSB") { | 
					
						
							|  |  |  |             $(".mode").val('SSB'); | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |             $(".mode").val(data.mode);   | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  |           if (old_mode !== $(".mode").val()) { | 
					
						
							|  |  |  |             // Update RST on mode change via CAT
 | 
					
						
							|  |  |  |             if(data.mode == 'JT65' || data.mode == 'JT65B' || data.mode == 'JT6C' || data.mode == 'JTMS' || data.mode == 'ISCAT' || data.mode == 'MSK144' || data.mode == 'JTMSK' || data.mode == 'QRA64'){ | 
					
						
							| 
									
										
										
										
											2019-08-18 22:52:45 +08:00
										 |  |  |               $('#rst_sent').val('-5'); | 
					
						
							|  |  |  |               $('#rst_recv').val('-5'); | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  |             } else if (data.mode == 'FSK441' || data.mode == 'JT6M') { | 
					
						
							|  |  |  |               $('#rst_sent').val('26'); | 
					
						
							| 
									
										
										
										
											2019-08-18 22:52:45 +08:00
										 |  |  |               $('#rst_recv').val('26'); | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  |             } else if (data.mode == 'CW') { | 
					
						
							|  |  |  |               $('#rst_sent').val('599'); | 
					
						
							| 
									
										
										
										
											2019-08-18 22:52:45 +08:00
										 |  |  |               $('#rst_recv').val('599'); | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  |             } else { | 
					
						
							|  |  |  |               $('#rst_sent').val('59'); | 
					
						
							| 
									
										
										
										
											2019-08-18 22:52:45 +08:00
										 |  |  |               $('#rst_recv').val('59'); | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |           $("#sat_name").val(data.satname);   | 
					
						
							|  |  |  |           $("#sat_mode").val(data.satmode);   | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-07 00:09:19 +08:00
										 |  |  |   // Update frequency every three second
 | 
					
						
							|  |  |  |   setInterval(updateFromCAT, 3000); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   // If a radios selected from drop down select radio update.
 | 
					
						
							|  |  |  |   $('.radios').change(updateFromCAT); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // If radio isn't SatPC32 clear sat_name and sat_mode
 | 
					
						
							|  |  |  |   $( ".radios" ).change(function() { | 
					
						
							| 
									
										
										
										
											2019-08-18 23:00:15 +08:00
										 |  |  |       if ($(".radios option:selected").text() != "SatPC32") { | 
					
						
							|  |  |  |         $("#sat_name").val("");   | 
					
						
							|  |  |  |         $("#sat_mode").val("");   | 
					
						
							| 
									
										
										
										
											2019-08-18 23:04:01 +08:00
										 |  |  |         $("#frequency").val("");   | 
					
						
							|  |  |  |         $("#frequency_rx").val("");  | 
					
						
							| 
									
										
										
										
											2020-03-03 03:56:12 +08:00
										 |  |  |         $("#selectPropagation").val($("#selectPropagation option:first").val()); | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function convert_case(str) { | 
					
						
							|  |  |  |     var lower = str.toLowerCase(); | 
					
						
							|  |  |  |     return lower.replace(/(^| )(\w)/g, function(x) { | 
					
						
							|  |  |  |       return x.toUpperCase(); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   </script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-26 00:59:19 +08:00
										 |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-26 01:43:32 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "logbook" && $this->uri->segment(2) == "view") { ?>
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var mymap = L.map('map').setView([lat,long], 5); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { | 
					
						
							|  |  |  |     maxZoom: 18, | 
					
						
							|  |  |  |     attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a>, ' + | 
					
						
							|  |  |  |       'Generated by <a href="http://www.cloudlog.co.uk/">Cloudlog</a>', | 
					
						
							|  |  |  |     id: 'mapbox.streets' | 
					
						
							|  |  |  |   }).addTo(mymap); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   L.marker([lat,long]).addTo(mymap) | 
					
						
							|  |  |  |     .bindPopup(callsign); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   mymap.on('click', onMapClick); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-26 00:59:19 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "update") { ?>
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | $(document).ready(function(){ | 
					
						
							|  |  |  |     $('#btn_update_dxcc').bind('click', function(){ | 
					
						
							|  |  |  |         $('#dxcc_update_status').show(); | 
					
						
							|  |  |  |         $.ajax({url:"update/dxcc"}); | 
					
						
							|  |  |  |         setTimeout(update_stats,5000); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     function update_stats(){ | 
					
						
							|  |  |  |         $('#dxcc_update_status').load('<?php echo base_url()?>updates/status.html', function(val){ | 
					
						
							|  |  |  |             $('#dxcc_update_staus').html(val); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if ((val  === null) || (val.substring(0,4) !="DONE")){ | 
					
						
							|  |  |  |                 setTimeout(update_stats, 5000); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-26 00:59:19 +08:00
										 |  |  | }); | 
					
						
							|  |  |  | </script> | 
					
						
							| 
									
										
										
										
											2019-05-21 20:44:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-27 04:11:44 +08:00
										 |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <?php if ($this->uri->segment(1) == "gridsquares") { ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script type="text/javascript" src="<?php echo base_url();?>assets/js/leaflet/L.MaidenheadColoured.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var layer = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { | 
					
						
							|  |  |  |     maxZoom: 18, | 
					
						
							|  |  |  |     attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' + | 
					
						
							|  |  |  |       '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + | 
					
						
							|  |  |  |       'Created by Cloudlog', | 
					
						
							|  |  |  |     id: 'mapbox.streets' | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var map = L.map('map', { | 
					
						
							|  |  |  |     layers: [layer], | 
					
						
							|  |  |  |     center: [19, 0], | 
					
						
							|  |  |  |     zoom: 2 | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   var grid_two = <?php echo $grid_2char; ?>;
 | 
					
						
							|  |  |  |   var grid_four = <?php echo $grid_4char; ?>;
 | 
					
						
							| 
									
										
										
										
											2020-04-02 21:59:48 +08:00
										 |  |  |   var grid_six = <?php echo $grid_6char; ?>;
 | 
					
						
							| 
									
										
										
										
											2019-06-27 04:11:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-29 00:07:34 +08:00
										 |  |  |   var grid_two_confirmed = <?php echo $grid_2char_confirmed; ?>;
 | 
					
						
							|  |  |  |   var grid_four_confirmed = <?php echo $grid_4char_confirmed; ?>;
 | 
					
						
							| 
									
										
										
										
											2020-04-02 21:59:48 +08:00
										 |  |  |   var grid_six_confirmed = <?php echo $grid_6char_confirmed; ?>;
 | 
					
						
							| 
									
										
										
										
											2019-06-29 00:07:34 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-27 04:11:44 +08:00
										 |  |  |   var maidenhead = L.maidenhead().addTo(map); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-15 06:09:25 +08:00
										 |  |  |   map.on('click', onMapClick); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function onMapClick(event) { | 
					
						
							|  |  |  |     var LatLng = event.latlng; | 
					
						
							|  |  |  |     var lat = LatLng.lat;  | 
					
						
							|  |  |  |     var lng = LatLng.lng;            | 
					
						
							|  |  |  |     var locator = LatLng2Loc(lat,lng, 10); | 
					
						
							| 
									
										
										
										
											2020-03-15 06:13:22 +08:00
										 |  |  |     var loc_4char = locator.substring(0, 4); | 
					
						
							|  |  |  |     console.log(loc_4char); | 
					
						
							| 
									
										
										
										
											2020-03-16 19:20:10 +08:00
										 |  |  |     console.log(map.getZoom()); | 
					
						
							| 
									
										
										
										
											2020-03-17 01:35:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-16 19:20:10 +08:00
										 |  |  |     if(map.getZoom() > 5) { | 
					
						
							| 
									
										
										
										
											2020-03-17 01:35:14 +08:00
										 |  |  |       var search_type = "<?php echo $this->uri->segment(2); ?>"; | 
					
						
							|  |  |  |       if(search_type == "satellites") { | 
					
						
							|  |  |  |         console.log("satellites search"); | 
					
						
							|  |  |  |         var search_tags = "search_sat/" + loc_4char; | 
					
						
							|  |  |  |       } else { | 
					
						
							|  |  |  |         var band = "<?php echo $this->uri->segment(3); ?>"; | 
					
						
							|  |  |  |         console.log(band); | 
					
						
							|  |  |  |         var search_tags = "search_band/" + band + "/" + loc_4char; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $.getJSON( "<?php echo site_url('gridsquares/');?>" + search_tags, function( data ) { | 
					
						
							|  |  |  |         var items = []; | 
					
						
							|  |  |  |         $.each( data, function( i, item ) { | 
					
						
							|  |  |  |           console.log(item.COL_CALL + item.COL_SAT_NAME); | 
					
						
							|  |  |  |           if(item.COL_SAT_NAME != undefined) { | 
					
						
							|  |  |  |             items.push( "<tr><td>" + item.COL_TIME_ON + "</td><td>" + item.COL_CALL + "</td><td>" + item.COL_MODE + "</td><td>" + item.COL_SAT_NAME + "</td></tr>" ); | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |             items.push( "<tr><td>" + item.COL_TIME_ON + "</td><td>" + item.COL_CALL + "</td><td>" + item.COL_MODE + "</td><td>" + item.COL_BAND + "</td></tr>" ); | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-17 01:45:28 +08:00
										 |  |  |         $("#grid_results tbody").empty();  | 
					
						
							| 
									
										
										
										
											2020-03-17 01:35:14 +08:00
										 |  |  |         $("#grid_results tbody").append(items.join( "" ));  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-16 19:20:10 +08:00
										 |  |  |       $('#square_number').text(loc_4char); | 
					
						
							|  |  |  |       $('#exampleModal').modal('show'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-03-15 06:09:25 +08:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-29 01:17:54 +08:00
										 |  |  | <?php if ($this->uri->segment(1) == "gridsquares" && $this->uri->segment(2) == "band") { ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var bands_available = <?php echo $bands_available; ?>;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $.each(bands_available, function(key, value) {    | 
					
						
							|  |  |  |      $('#gridsquare_bands') | 
					
						
							|  |  |  |          .append($("<option></option>") | 
					
						
							|  |  |  |                     .attr("value",value) | 
					
						
							|  |  |  |                     .text(value));  | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   var num = "<?php echo $this->uri->segment(3);?>"; | 
					
						
							|  |  |  |     $("#gridsquare_bands option").each(function(){ | 
					
						
							|  |  |  |         if($(this).val()==num){ // EDITED THIS LINE
 | 
					
						
							|  |  |  |             $(this).attr("selected","selected");     | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $(function(){ | 
					
						
							|  |  |  |       // bind change event to select
 | 
					
						
							|  |  |  |       $('#gridsquare_bands').on('change', function () { | 
					
						
							|  |  |  |           var url = $(this).val(); // get selected value
 | 
					
						
							|  |  |  |           if (url) { // require a URL
 | 
					
						
							|  |  |  |               window.location = "<?php echo site_url('gridsquares/band/');?>" + url | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           return false; | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-18 17:49:27 +08:00
										 |  |  | </script> | 
					
						
							|  |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <?php if ($this->uri->segment(1) == "distances") { ?>
 | 
					
						
							|  |  |  |     <script src="https://code.highcharts.com/stock/highstock.js"></script> | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var bands_available = <?php echo $bands_available; ?>;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $.each(bands_available, function(key, value) { | 
					
						
							|  |  |  |      $('#distplot_bands') | 
					
						
							|  |  |  |          .append($("<option></option>") | 
					
						
							|  |  |  |                     .attr("value",value) | 
					
						
							|  |  |  |                     .text(value)); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var num = "<?php echo $this->uri->segment(3);?>"; | 
					
						
							|  |  |  |     $("#distplot_bands option").each(function(){ | 
					
						
							|  |  |  |         if($(this).val()==num){ // EDITED THIS LINE
 | 
					
						
							|  |  |  |             $(this).attr("selected","selected"); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function distPlot(form) { | 
					
						
							|  |  |  |       $(".alert").remove(); | 
					
						
							|  |  |  |       var baseURL= "<?php echo base_url();?>"; | 
					
						
							|  |  |  |       $.ajax({ | 
					
						
							|  |  |  |           url: baseURL+'index.php/distances/get_distances', | 
					
						
							|  |  |  |           type: 'post', | 
					
						
							|  |  |  |           data: {'locator': 'JP50HP', 'band': form.distplot_bands.value}, | 
					
						
							|  |  |  |           success: function(tmp) { | 
					
						
							|  |  |  |               if (tmp.ok == 'OK') { | 
					
						
							|  |  |  |                   if (!($('#information').length > 0)) | 
					
						
							|  |  |  |                       $("#distances_div").append('<div id="information"></div><div id="graphcontainer" style="height: 600px; margin: 0 auto"></div>'); | 
					
						
							|  |  |  |                   var options = { | 
					
						
							|  |  |  |                       chart: { | 
					
						
							|  |  |  |                           type: 'column', | 
					
						
							|  |  |  |                           zoomType: 'xy', | 
					
						
							|  |  |  |                           renderTo: 'graphcontainer' | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       title: { | 
					
						
							|  |  |  |                           text: 'Mode distribution' | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       xAxis: { | 
					
						
							|  |  |  |                           categories: [], | 
					
						
							|  |  |  |                           crosshair: true, | 
					
						
							|  |  |  |                           type: "category", | 
					
						
							|  |  |  |                           min:0, | 
					
						
							|  |  |  |                           max:100 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       yAxis: { | 
					
						
							|  |  |  |                           title: { | 
					
						
							| 
									
										
										
										
											2020-02-20 23:14:24 +08:00
										 |  |  |                               text: '# QSOs' | 
					
						
							| 
									
										
										
										
											2020-02-18 17:49:27 +08:00
										 |  |  |                           } | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       navigator: { | 
					
						
							|  |  |  |                           enabled: true, | 
					
						
							|  |  |  |                           xAxis: { | 
					
						
							|  |  |  |                               labels: { | 
					
						
							|  |  |  |                                   formatter: function() { | 
					
						
							|  |  |  |                                       return this.value * '50' + ' km'; | 
					
						
							|  |  |  |                                   } | 
					
						
							|  |  |  |                               } | 
					
						
							|  |  |  |                           } | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       rangeSelector: { | 
					
						
							|  |  |  |                           selected: 1 | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       tooltip: { | 
					
						
							|  |  |  |                           formatter: function () { | 
					
						
							|  |  |  |                               if(this.point) { | 
					
						
							|  |  |  |                                   return "Distance: " + options.xAxis.categories[this.point.x] + | 
					
						
							|  |  |  |                                       "<br />Callsign(s) worked (max 5 shown): " + myComments[this.point.x] + | 
					
						
							| 
									
										
										
										
											2020-02-20 23:14:24 +08:00
										 |  |  |                                       "<br />Number of QSOs: <strong>" + series.data[this.point.x] + "</strong>"; | 
					
						
							| 
									
										
										
										
											2020-02-18 17:49:27 +08:00
										 |  |  |                               } | 
					
						
							|  |  |  |                           } | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                       series: [] | 
					
						
							|  |  |  |                   }; | 
					
						
							|  |  |  |                   var myComments=[]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                   var series = { | 
					
						
							|  |  |  |                       data: [], | 
					
						
							|  |  |  |                       showInNavigator: true | 
					
						
							|  |  |  |                   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                   $.each(tmp.qsodata, function(){ | 
					
						
							|  |  |  |                       myComments.push(this.calls); | 
					
						
							|  |  |  |                       options.xAxis.categories.push(this.dist); | 
					
						
							| 
									
										
										
										
											2020-02-20 23:14:24 +08:00
										 |  |  |                       series.name = 'Number of QSOs'; | 
					
						
							| 
									
										
										
										
											2020-02-18 17:49:27 +08:00
										 |  |  |                       series.data.push(this.count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                   options.series.push(series); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-21 00:12:31 +08:00
										 |  |  |                   $('#information').html(tmp.qrb.Qsoes + " contacts were plotted.<br /> Your furthest contact was with " + tmp.qrb.Callsign | 
					
						
							| 
									
										
										
										
											2020-02-20 23:14:24 +08:00
										 |  |  |                       + " in gridsquare "+ tmp.qrb.Grid | 
					
						
							|  |  |  |                       +" the distance was " | 
					
						
							| 
									
										
										
										
											2020-02-18 17:49:27 +08:00
										 |  |  |                       +tmp.qrb.Distance +"km."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                   var chart = new Highcharts.Chart(options); | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |               else { | 
					
						
							|  |  |  |                   if (($('#information').length > 0)) { | 
					
						
							|  |  |  |                       $("#information").remove(); | 
					
						
							|  |  |  |                       $("#graphcontainer").remove(); | 
					
						
							|  |  |  |                   } | 
					
						
							|  |  |  |                   $("#distances_div").append('<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>' + tmp.Error + '</div>'); | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-27 04:11:44 +08:00
										 |  |  | </script> | 
					
						
							| 
									
										
										
										
											2019-05-14 23:46:16 +08:00
										 |  |  | <?php } ?>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-09 23:18:46 +08:00
										 |  |  |   </body> | 
					
						
							| 
									
										
										
										
											2019-06-18 03:21:58 +08:00
										 |  |  | </html> |