function submit_add(form) { return true; } function submit_delete(form) { if (form.antenna_count.value == 1) { window.alert("It's not possible to delete the last antenna."); return false; } return true; } function submit_update_antenna(form) { if (!verify_antenna_count(form)) { return false } if (!verify_antennas(form)) { return false } return true; } function set_full_sky(form) { form.display_center_al.value = 90; form.display_center_az.value = 0; form.display_width.value = 180; form.submit(); } function enable_ground(form) { if (form.enable_ground_computation.checked) { window.alert("Don't forget to set *all* the antenna UD parameters to a non-zero value."); } } function submit_calculate(form) { if (!verify_display(form)) { return false } if (!verify_antenna_count(form)) { return false } if (!verify_antennas(form)) { return false } if (form.enable_object_path.checked) { if (!verify_object(form)) { return false } } if (check_for_trivial_case(form)) { return false } return true; } function verify_display(form) { if (form.display_center_al.value == '') { window.alert("The Altitude Display Center value is missing."); form.display_center_al.focus(); return false; } if (form.display_center_al.value < 0) { window.alert("The Altitude Display Center field must be greater than or equal to 0 degrees."); form.display_center_al.focus(); return false; } if (form.display_center_al.value > 90) { window.alert("The Altitude Display Center field must be less than or equal to 90 degrees."); form.display_center_al.focus(); return false; } if (form.display_center_az.value == '') { window.alert("The Azimuth Display Center value is missing."); form.display_center_az.focus(); return false; } if (form.display_center_az.value < 0) { window.alert("The Azimuth Display Center field must be greater than or equal to 0 degrees."); form.display_center_az.focus(); return false; } if (form.display_center_az.value > 360) { window.alert("The Azimuth Display Center field must be less than or equal to 360 degrees."); form.display_center_az.focus(); return false; } if (form.display_width.value == '') { window.alert("The Display Width value is missing."); form.display_width.focus(); return false; } if (form.display_width.value < 5) { window.alert("The Display Width field must be greater than or equal to 5 degrees."); form.display_width.focus(); return false; } if (form.display_width.value > 180) { window.alert("The Display Width field must be less than or equal to 180 degrees."); form.display_width.focus(); return false; } return true; } function verify_object(form) { if (form.enable_object_path.value != '' && !form.enable_object_path.value.match(/on/i)) { window.alert("The Enable Object Path value is missing."); form.enable_object_path.focus(); return false; } if (form.object_declination.value == '') { window.alert("The Object Declination value is missing."); form.object_declination.focus(); return false; } if (form.object_declination.value <= -90) { window.alert("The Object Declination value must be greater than or equal to -90 degrees."); form.object_declination.focus(); return false; } if (form.object_declination.value >= +90) { window.alert("The Object Declination value must be less than or equal to +90 degrees."); form.object_declination.focus(); return false; } if (form.observing_latitude.value == '') { window.alert("The Observing Latitude value is missing."); form.observing_latitude.focus(); return false; } if (form.observing_latitude.value <= -90) { window.alert("The Observing Latitude value must be greater than or equal to -90 degrees."); form.observing_latitude.focus(); return false; } if (form.observing_latitude.value >= +90) { window.alert("The Observing Latitude value must be less than or equal to +90 degrees."); form.observing_latitude.focus(); return false; } if (form.display_HA_step.value == '') { window.alert("The Display Hour Angle Step value is missing."); form.display_HA_step.focus(); return false; } if (form.display_HA_step.value <= 0) { window.alert("The Display Hour Angle Step value must be greater than zero."); form.display_HA_step.focus(); return false; } if (form.display_HA_step.value >= 24) { window.alert("The Display Hour Angle Step value must be less than 24 hourss."); form.display_HA_step.focus(); return false; } return true; } function verify_ground(form) { return true; } function verify_antenna_count(form) { if (form.antenna_count.value < 1) { window.alert("There must be at least one antenna."); return false; } return true; } function check_for_trivial_case(form) { if (form.antenna_count.value == 1 && form.antenna_1_pattern[0].checked && !form.enable_ground_computation.checked && !form.enable_object_path.checked) { window.alert("It's really boring to look at one isotropic antenna in free space with no object path.\nPlease change one or more the following parameters and resubmit.\n - # of Antennas\n - Antenna #1 Gain Pattern\n - Enable Object Path Simulation\n - Enable Ground Simulation"); return true; } return false; } function verify_antennas(form) { // // create an array of objects to contain the antenna information // var antenna_element = new Array(); // for (var antenna_number = 1; antenna_number <= form.antenna_count.value; antenna_number++) { // antenna_element[antenna_number] = new Object(); // } // // // scan the form elements for all antenna elements // for (var item = 0; item < form.elements.length; item++) { // antenna = form.elements[item].name.match(/^antenna_(\d+)_(.+)$/); // // if an antenna is found store its elements in a two-dimensional associatiative array // if (antenna) { // if (antenna[2] == "pattern") { // if (form.elements[item].checked) { antenna_element[antenna[1]]["pattern"] = form.elements[item].value; } // } else { // antenna_element[antenna[1]][antenna[2]] = form.elements[item].value; // } // } // } for (var item = 0; item < form.elements.length; item++) { antenna = form.elements[item].name.match(/^antenna_(\d+)_NS$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The NS position of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_EW$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The EW position of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_UD$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The UD position of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } if (form.enable_ground_computation.checked && form.elements[item].value == 0) { window.alert("The UD position of antenna #" + antenna[1] + " is zero - this is not allowed when ground simulation is enabled."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_phase$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The Relative Phase of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_gain$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The Relative Gain of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_al$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The Altitude Pointing of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } if (form.elements[item].value < 0) { window.alert("The Altitude Pointing of antenna #" + antenna[1] + " must be greater than or equal to 0 degrees."); form.elements[item].focus(); return false; } if (form.elements[item].value > 90) { window.alert("The Altitude Pointing of antenna #" + antenna[1] + " must be less than or equal to 90 degrees."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_az$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The Azimuth Pointing of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } if (form.elements[item].value < 0) { window.alert("The Azimuth Pointing of antenna #" + antenna[1] + " must be greater than or equal to 0 degrees."); form.elements[item].focus(); return false; } if (form.elements[item].value >= 360) { window.alert("The Azimuth Pointing of antenna #" + antenna[1] + " must be less than 360 degrees."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_03_width$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The -3 dBc Width of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_06_width$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The -6 dBc Width of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } antenna = form.elements[item].name.match(/^antenna_(\d+)_10_width$/); if (antenna) { if (form.elements[item].value == '') { window.alert("The -10 dBc Width of antenna #" + antenna[1] + " is missing."); form.elements[item].focus(); return false; } } } return true; } function start_time() { var d = new Date(); return d.toLocaleString(); }