// Callsign always has focus on load $("#callsign").focus(); // Init serial sent as 1 when loading page $("#exch_sent").val(1); $( document ).ready(function() { restoreContestSession(); setRst($("#mode").val()); // Check to see what serial type is selected and set validation if($('#serial').is(':checked')) { set_serial_number_input_validation(); } if($('#other').is(':checked')) { set_other_input_validation(); } }); // This erases the contest logging session which is stored in localStorage function reset_contest_session() { $('#name').val(""); $('.callsign-suggestions').text(""); $('#callsign').val(""); $('#comment').val(""); $('#exch_sent').val("1"); $('#exch_recv').val(""); $("#callsign").focus(); setRst($("#mode").val()); $("#serial").prop("checked", true); $("#contestname").val("Other").change(); $(".contest_qso_table_contents").empty(); localStorage.removeItem("contestid"); localStorage.removeItem("exchangetype"); localStorage.removeItem("exchangesent"); localStorage.removeItem("qso"); } // Storing the contestid in contest session $('#contestname').change(function() { localStorage.setItem("contestid", $("#contestname").val()); }); // Storing the exchange type in contest session $('input[type=radio][name=exchangeradio]').change(function() { localStorage.setItem("exchangetype", $('input[name=exchangeradio]:checked', '#qso_input').val()); }); // realtime clock $(function($) { var options = { utc: true, format: '%H:%M:%S' } $('.input_time').jclock(options); }); $(function($) { var options = { utc: true, format: '%d-%m-%Y' } $('.input_date').jclock(options); }); // We don't want spaces to be written in callsign $(function() { $('#callsign').on('keypress', function(e) { if (e.which == 32){ return false; } }); }); // We don't want spaces to be written in exchange $(function() { $('#exch_recv').on('keypress', function(e) { if (e.which == 32){ return false; } }); }); // Here we capture keystrokes fo execute functions document.onkeyup = function(e) { // ALT-W wipe if (e.altKey && e.which == 87) { reset_log_fields(); // CTRL-Enter logs QSO } else if ((e.keyCode == 10 || e.keyCode == 13) && (e.ctrlKey || e.metaKey)) { logQso(); // Enter in sent exchange logs QSO } else if((e.which == 13) && ($(document.activeElement).attr("id") == "exch_recv")) { logQso(); } else if (e.which == 27) { reset_log_fields(); // Space to jump to either callsign or sent exchange } else if (e.which == 32) { if ($(document.activeElement).attr("id") == "callsign") { $("#exch_recv").focus(); return false; } else if ($(document.activeElement).attr("id") == "exch_recv") { $("#callsign").focus(); return false; } } }; // On Key up check and suggest callsigns $("#callsign").keyup(function() { var call = $(this).val(); if (call.length >= 3) { $.get('lookup/scp/' + call.toUpperCase(), function(result) { $('.callsign-suggestions').text(result); highlight(call.toUpperCase()); }); } else if (call.length <= 2) { $('.callsign-suggestions').text(""); } }); function reset_log_fields() { $('#name').val(""); $('.callsign-suggestions').text(""); $('#callsign').val(""); $('#comment').val(""); $('#exch_recv').val(""); $("#callsign").focus(); setRst($("#mode").val()); } RegExp.escape = function(text) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); } function highlight(term, base) { if (!term) return; base = base || document.body; var re = new RegExp("(" + RegExp.escape(term) + ")", "gi"); var replacement = "" + term + ""; $(".callsign-suggestions", base).contents().each( function(i, el) { if (el.nodeType === 3) { var data = el.data; if (data = data.replace(re, replacement)) { var wrapper = $("").html(data); $(el).before(wrapper.contents()).remove(); } } }); } // 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(""); }); }); // Change Serial Validation when selected $('#serial').change(function() { if($('#serial').is(':checked')) { set_serial_number_input_validation(); } }); // Change other serial type when selected $('#other').change(function() { if($('#other').is(':checked')) { set_other_input_validation(); } }); /* Function: set_serial_number_input_validation Job: This sets the field input to number for validation */ function set_serial_number_input_validation() { $('#exch_sent').attr('type', 'number'); $('#exch_recv').attr('type', 'number'); } /* Function: set_other_input_validation Job: This sets the field input to text for validation */ function set_other_input_validation() { $('#exch_sent').attr('type', 'text'); $('#exch_recv').attr('type', 'text'); }