var earliest_arrival_date = 1625112000; var latest_arrival_date = 1625716800; var earliest_departure_date = 1625457600; var latest_departure_date = 1626408000; var latest_ext_departure_date = 1626408000; var conf_start_date_eve = 1625630400; var conf_start_date = 1625716800; var conf_end_date = 1625803200; var pre_conf_start_date_eve = 1625544000; var pre_conf_start_date = 1625630400; var pre_conf_end_date = 1625630400; var calc_pre_conf_check_in = conf_start_date_eve; /* Initially set to the eve of the regular conference, indicating non-attendance to the pre-conference */ var calc_early_check_in = calc_pre_conf_check_in; /* Initially set to the eve of the regularg conference, indicating no additional early nights */ var captchaVerified = false; var date_str_map = {1625112000: 'Thursday, July 1, 2021',1625198400: 'Friday, July 2, 2021',1625284800: 'Saturday, July 3, 2021',1625371200: 'Sunday, July 4, 2021',1625457600: 'Monday, July 5, 2021',1625544000: 'Tuesday, July 6, 2021',1625630400: 'Wednesday, July 7, 2021',1625716800: 'Thursday, July 8, 2021',1625803200: 'Friday, July 9, 2021',1625889600: 'Saturday, July 10, 2021',1625976000: 'Sunday, July 11, 2021',1626062400: 'Monday, July 12, 2021',1626148800: 'Tuesday, July 13, 2021',1626235200: 'Wednesday, July 14, 2021',1626321600: 'Thursday, July 15, 2021',1626408000: 'Friday, July 16, 2021'}; function getDataFromTT (){ var elChecking = document.getElementById ("timetrack_check"); var elRegDetail = document.getElementById ("registration_other"); var checkEmail = document.getElementById ("email").value.trim (); captchaVerified = false; document.getElementById ("email").value = checkEmail; // If we did need to trim it, put the trimmed text back in the box. elChecking.innerHTML = "Checking TimeTrack for " + checkEmail + "..."; elChecking.style.display = 'block'; elRegDetail.style.display = 'none'; document.getElementById ("timetrack_not_found").style.display = 'none'; document.getElementById ("timetrack_found").style.display = 'none'; var url = "email_check.php?t=200&check_email=" + checkEmail; makeRequest (url, processEmailCheck); } function processEmailCheck (xhr){ if ( xhr.readyState == 4 ){ if ( xhr.status == 200 ){ var checkRetData = JSON.parse (xhr.responseText); var elNotFound = document.getElementById ("timetrack_not_found"); var elFound = document.getElementById ("timetrack_found"); document.getElementById ("timetrack_check").style.display = 'none'; document.getElementById ("registration_other").style.display = 'block'; showMainSections (); if ( checkRetData ['error'] == '' ){ elFound.style.display = 'block'; elNotFound.style.display = 'none'; fillTTData (checkRetData); }else{ elFound.style.display = 'none'; elNotFound.style.display = 'block'; clearTTData (); } }else{ alert ("There was a problem with the request " + xhr.status); } } } function clearTTData (){ document.getElementById ('first_name').value = ''; document.getElementById ('last_name').value = ''; document.getElementById ('cell_phone').value = ''; document.getElementById ('role_val_1').checked = false; document.getElementById ('role_val_6').checked = false; document.getElementById ('role_val_7').checked = false; document.getElementById ('role_val_8').checked = false; document.getElementById ('role_val_13').checked = false; document.getElementById ('state').value = ''; document.getElementById ('district').value = ''; document.getElementById ('school').value = ''; document.getElementById ('cohort').value = ''; checkPreConferenceRoleRestrictions (); } function fillTTData (d){ document.getElementById ('first_name').value = d ['first_name']; document.getElementById ('last_name').value = d ['last_name']; document.getElementById ('cell_phone').value = d ['cell_num']; document.getElementById ('role_val_1').checked = d ['admin']; document.getElementById ('role_val_6').checked = d ['sam']; document.getElementById ('role_val_7').checked = d ['tcc']; document.getElementById ('role_val_8').checked = d ['sis']; document.getElementById ('role_val_13').checked = d ['tt_admin']; document.getElementById ('state').value = d ['state']; document.getElementById ('district').value = d ['district']; document.getElementById ('school').value = d ['school']; document.getElementById ('cohort').value = d ['cohort']; checkPreConferenceRoleRestrictions (); } function showMainSections (){ var els = getElementsByClassName ('main_section'); var elSubmit = document.getElementById ('form_submit'); for ( var i1 = 0; i1 < els.length; i1++ ){ els [i1].style.display = 'block'; } elSubmit.disabled = false; } function getDateStr ($d){ return date_str_map [$d]; } function adjustCheckInDate (){ var labE = document.getElementById ('check_in_lab'); var edE = document.getElementById ('check_in'); // Use the earlier of our calculated check-in dates $d = Math.min (calc_pre_conf_check_in, calc_early_check_in); edE.value = $d; labE.innerHTML = getDateStr ($d); } function adjustCheckOutDate ($d){ var labE = document.getElementById ('check_out_lab'); var edE = document.getElementById ('check_out'); edE.value = $d; labE.innerHTML = getDateStr ($d); } function checkRoleOther (){ var cbOther = document.getElementById ("role_val_14"); if ( cbOther.checked ){ replaceClass (document.getElementById ("role_other"), "optional", "required"); replaceClass (document.getElementById ("role_other_span"), "optional", "required"); }else{ replaceClass (document.getElementById ("role_other"), "required", "optional"); replaceClass (document.getElementById ("role_other_span"), "required", "optional"); replaceClass (document.getElementById ("role_other"), "required_missed", "optional"); replaceClass (document.getElementById ("role_other_span"), "required_missed", "optional"); } } function checkLabelEnables (){ var labels = document.getElementsByTagName ('label'); for ( var i1 = 0; i1 < labels.length; i1++ ){ if ( labels [i1].getAttribute ('for') != null ){ if ( document.getElementById (labels [i1].getAttribute ('for')).disabled ){ labels [i1].className = 'disabled'; }else{ labels [i1].className = ''; } } } } function reenableControls (){ var els = document.getElementsByTagName ('*'); for ( var i1 = 0; i1 < els.length; i1++ ){ if ( els [i1].getAttribute ('disabled') != null ){ els [i1].disabled = false; } } } function checkEarlyExtraLodgingDays (){ var elRoomNotNeeded = document.getElementById ("room_needed"); var elEarlyNights = ['addtl_early_night_1625544000','addtl_early_night_1625457600','addtl_early_night_1625371200','addtl_early_night_1625284800','addtl_early_night_1625198400','addtl_early_night_1625112000']; var foundUnchecked = false; calc_early_check_in = conf_start_date_eve; for ( var i1 = 0; i1 < elEarlyNights.length; i1++ ){ var el = document.getElementById (elEarlyNights [i1]); if ( el.checked ){ // Ensure this checkbox is enabled el.disabled = false; calc_early_check_in = el.value; }else{ // This is the first unchecked box, so ensure this checkbox is enabled, and uncheck and disable any boxes that come after it. el.disabled = false; foundUnchecked = true; for ( var i2 = i1 + 1; i2 < elEarlyNights.length; i2++ ){ var el2 = document.getElementById (elEarlyNights [i2]); el2.checked = false; el2.disabled = true; } // We have adjusted all elements that come after this one, so bail out of the main loop. break; } } if ( elRoomNotNeeded.checked ){ // If we don't need a room, force adjust the check in date to the day before the conference (i.e. no early check-in). calc_early_check_in = conf_start_date_eve; } adjustCheckInDate (); checkLabelEnables (); } function checkExtraLodgingDays (){ var elRoomNotNeeded = document.getElementById ("room_needed"); var elNights = ['addtl_night_1625889600','addtl_night_1625976000','addtl_night_1626062400','addtl_night_1626148800','addtl_night_1626235200','addtl_night_1626321600']; var foundUnchecked = false; for ( var i1 = 0; i1 < elNights.length; i1++ ){ var el = document.getElementById (elNights [i1]); if ( el.checked ){ // Ensure this checkbox is enabled el.disabled = false; }else{ // This is the first unchecked box, so ensure this checkbox is enabled, and uncheck and disable any boxes that come after it. el.disabled = false; adjustCheckOutDate (el.value); foundUnchecked = true; for ( var i2 = i1 + 1; i2 < elNights.length; i2++ ){ var el2 = document.getElementById (elNights [i2]); el2.checked = false; el2.disabled = true; } // We have adjusted all elements that come after this one, so bail out of the main loop. break; } } if ( ! foundUnchecked ){ adjustCheckOutDate (latest_ext_departure_date); } if ( elRoomNotNeeded.checked ){ // If we don't need a room, force adjust the check out date to the last day of the conference. adjustCheckOutDate (1625803200); } checkLabelEnables (); } function getElementsStartsWithId (id){ var children = document.body.getElementsByTagName ('*'); var elements = [], child; for ( var i = 0, length = children.length; i < length; i++ ){ child = children[i]; if ( child.id.substr (0, id.length) == id ){ elements.push (child); } } return elements; } function getElementsByClassName (matchClass){ var elems = document.getElementsByTagName ('*'), elements = [], i; for ( i in elems ){ if ( (' ' + elems [i].className + ' ').indexOf (' ' + matchClass + ' ') > -1 ){ elements.push (elems [i]); } } return elements; } function resetMissedFields (){ var els = getElementsByClassName ('required_missed'); for ( var i1 = 0; i1 < els.length; i1++ ){ replaceClass (els [i1], 'required_missed', 'required'); } } function replaceClass (el, oldClass, newClass){ var thisClass = (' ' + el.className + ' '); // Add padding spaces to make sure that we can find whole class names. if ( thisClass.indexOf (' ' + oldClass + ' ') == -1 ){ // The old class isn't in the class list for this element. return; } var tOldClass = ' ' + oldClass + ' '; var tNewClass = ' ' + newClass + ' '; while ( thisClass.indexOf (' ' + oldClass + ' ') > -1 ){ thisClass = thisClass.replace (tOldClass, tNewClass); } el.className = thisClass.trim (); } function checkPreConference (){ var elRoomNotNeeded = document.getElementById ("room_needed"); var elUsed = document.getElementById ('pre_conf_used'); var elNotUsed = document.getElementById ('pre_conf_not_used'); var els = getElementsStartsWithId ('pre_conf_events_'); var eventEls = getElementsStartsWithId ('pre_conf_event_'); var i1; if ( elUsed.checked ){ calc_pre_conf_check_in = pre_conf_start_date_eve; }else{ calc_pre_conf_check_in = conf_start_date_eve; } if ( elRoomNotNeeded.checked ){ // If we don't need a room, force adjust the check in date to the first event evening day, independent of whether they are going to the pre-conference or not. // (If they are not attending the pre-conference, they are still welcome to come to the event the on the pre-conference day, and if they're going to the pre-conference, there is no event the day before the pre-conference, so there's no reason for them to check-in the day/night before the pre-conference.) calc_pre_conf_check_in = conf_start_date_eve; } adjustCheckInDate (); for ( i1 = 0; i1 < els.length; i1++ ){ if ( elUsed.checked ){ replaceClass (els [i1], "optional", "required"); replaceClass (els [i1], "required_missed", "required"); }else{ replaceClass (els [i1], "required", "optional"); replaceClass (els [i1], "required_missed", "optional"); } } if ( elUsed.checked ){ replaceClass (document.getElementById ('pre_conf_coverage'), "optional", "required"); replaceClass (document.getElementById ('pre_conf_coverage'), "required_missed", "required"); replaceClass (document.getElementById ('pre_conf_coverage_span'), "optional", "required"); replaceClass (document.getElementById ('pre_conf_coverage_span'), "required_missed", "required"); }else{ replaceClass (document.getElementById ('pre_conf_coverage'), "required", "optional"); replaceClass (document.getElementById ('pre_conf_coverage'), "required_missed", "optional"); replaceClass (document.getElementById ('pre_conf_coverage_span'), "required", "optional"); replaceClass (document.getElementById ('pre_conf_coverage_span'), "required_missed", "optional"); } for ( i1 = 0; i1 < eventEls.length; i1++ ){ if ( elUsed.checked ){ // eventEls [i1].disabled = false; }else{ // eventEls [i1].disabled = true; eventEls [i1].checked = false; } } checkLabelEnables (); } function checkPreConferenceRoleRestrictions (){ var selectedRoles = []; var roleEls = getElementsStartsWithId ('role_val_'); var preConfEventEls = getElementsStartsWithId ('pre_conf_event_'); var preConfEventsWithRestriction = []; var preConfEventsWithRequirements = []; var i1; // Start off by making sure everything is enabled, and then disable things as needed below. document.getElementById ('pre_conf_used').disabled = false; for ( i1 = 0; i1 < preConfEventEls.length; i1++ ){ preConfEventEls [i1].disabled = false; } for ( i1 = 0; i1 < roleEls.length; i1++ ){ if ( roleEls [i1].checked ){ selectedRoles.push (roleEls [i1].value); } } // Find restricted events and events that are required. for ( i1 = 0; i1 < preConfEventEls.length; i1++ ){ if ( preConfEventEls [i1].getAttribute ('restrict_to_roles') != null ){ preConfEventsWithRestriction.push (preConfEventEls [i1]); } if ( preConfEventEls [i1].getAttribute ('require_for_roles') != null ){ preConfEventsWithRequirements.push (preConfEventEls [i1]); } } // Apply restrictions based on currently selected roles. for ( i1 = 0; i1 < preConfEventsWithRestriction.length; i1++ ){ var restrictions = preConfEventsWithRestriction [i1].getAttribute ('restrict_to_roles'); var allowed = false; for ( var i2 = 0; i2 < selectedRoles.length; i2++ ){ if ( (',' + restrictions + ',').indexOf (',' + selectedRoles [i2] + ',') > -1 ){ // One of the roles selected is in the "restricted to" list, so we can allow this event to be selected. No need to continue. allowed = true; break; } } if ( allowed ){ preConfEventsWithRestriction [i1].disabled = false; }else{ preConfEventsWithRestriction [i1].disabled = true; preConfEventsWithRestriction [i1].checked = false; } } // Apply requirements based on currently selected roles. var foundRequirement = false; var requiredEventEls = []; for ( i1 = 0; i1 < preConfEventsWithRequirements.length; i1++ ){ var requirements = preConfEventsWithRequirements [i1].getAttribute ('require_for_roles'); var required = false; for ( var i2 = 0; i2 < selectedRoles.length; i2++ ){ if ( (',' + requirements + ',').indexOf (',' + selectedRoles [i2] + ',') > -1 ){ // One of the roles selected is in the "restricted to" list, so we can allow this event to be selected. No need to continue. required = true; break; } } if ( required ){ foundRequirement = true; requiredEventEls.push (preConfEventsWithRequirements [i1]); preConfEventsWithRequirements [i1].disabled = false; preConfEventsWithRequirements [i1].checked = true; } } if ( foundRequirement ){ document.getElementById ('pre_conf_used').disabled = true; document.getElementById ('pre_conf_not_used').disabled = true; for ( i1 = 0; i1 < preConfEventEls.length; i1++ ){ var exclude = false; for ( var i2 = 0; i2 < requiredEventEls.length; i2++ ){ if ( requiredEventEls [i2].id == preConfEventEls [i1].id ){ exclude = true; break; } } if ( ! exclude ){ preConfEventEls [i1].disabled = true; } } } // If we forced any sessions, make sure that the pre-conference box is checked. if ( ! document.getElementById ('pre_conf_used').checked ){ for ( i1 = 0; i1 < preConfEventEls.length; i1++ ){ if ( preConfEventEls [i1].checked ){ document.getElementById ('pre_conf_used').checked = true; break; } } } checkPreConference (); checkLabelEnables (); } function preConferenceEventChecked (){ // If the user selects a pre-conference, then force the Checkbox for the pre-conference to be checked. if ( document.getElementById ('pre_conf_used').checked ){ // Already checked, so nothing to do. return; } document.getElementById ('pre_conf_used').checked = true; checkPreConference (); } function checkSharingDates (idx){ var elShare = document.getElementById ("share_" + idx + "_dates"); var elShareDetail = document.getElementById ("share_" + idx + "_dates_detail"); elShareDetail.style.display = ( ! elShare.checked ? 'block' : 'none' ); } function checkSharing (){ var elShare = document.getElementById ("sharing"); var elShareDetail = document.getElementById ("sharing_detail"); elShareDetail.style.display = ( elShare.checked ? 'block' : 'none' ); checkSharingDates (0); } function checkAirTransportation (){ var elAirTransArrive = document.getElementById ("air_trans_arrive_used"); var elDrivingArrive = document.getElementById ("air_trans_arrive_not_used"); var elAirTransDepart = document.getElementById ("air_trans_depart_used"); var elDrivingDepart = document.getElementById ("air_trans_depart_not_used"); var elAirTransArriveDetail = document.getElementById ("air_trans_arrive_detail"); var elDrivingArriveDetail = document.getElementById ("driving_arrive_detail"); var elAirTransDepartDetail = document.getElementById ("air_trans_depart_detail"); var elDrivingDepartDetail = document.getElementById ("driving_depart_detail"); elAirTransArriveDetail.style.display = ( elAirTransArrive.checked ? 'block' : 'none' ); elDrivingArriveDetail.style.display = ( elDrivingArrive.checked ? 'block' : 'none' ); elAirTransDepartDetail.style.display = ( elAirTransDepart.checked ? 'block' : 'none' ); elDrivingDepartDetail.style.display = ( elDrivingDepart.checked ? 'block' : 'none' ); } function checkGroundTransportation (){ var elArrival = document.getElementById ("ground_arrival_needs"); var elArrivalDetail = document.getElementById ("ground_arrival_needs_detail"); elArrivalDetail.style.display = ( elArrival.value == 2 ? 'block' : 'none' ); var elDeparture = document.getElementById ("ground_departure_needs"); var elDepartureDetail = document.getElementById ("ground_departure_needs_detail"); elDepartureDetail.style.display = ( elDeparture.value == 2 ? 'block' : 'none' ); var elAirTransArrive = document.getElementById ("air_trans_arrive_used"); var elDrivingArrive = document.getElementById ("air_trans_arrive_not_used"); document.getElementById ('arrival_date').disabled = false; document.getElementById ('arrival_date_driving').disabled = false; switch ( parseInt (elArrival.options [elArrival.selectedIndex].value) ){ case 0 : elDrivingArrive.checked = true; break; case 1 : elAirTransArrive.checked = true; break; case 2 : elDrivingArrive.checked = true; break; case 3 : elDrivingArrive.checked = true; document.getElementById ('arrival_date').value = '1625630400'; document.getElementById ('arrival_date').disabled = true; document.getElementById ('arrival_date_driving').value = '1625630400'; document.getElementById ('arrival_date_driving').disabled = true; break; } var elAirTransDepart = document.getElementById ("air_trans_depart_used"); var elDrivingDepart = document.getElementById ("air_trans_depart_not_used"); document.getElementById ('departure_date').disabled = false; document.getElementById ('departure_date_driving').disabled = false; switch ( parseInt (elDeparture.options [elDeparture.selectedIndex].value) ){ case 0 : elDrivingDepart.checked = true; break; case 1 : elAirTransDepart.checked = true; break; case 2 : elDrivingDepart.checked = true; break; case 3 : elDrivingDepart.checked = true; document.getElementById ('departure_date').value = '1625889600'; document.getElementById ('departure_date').disabled = true; document.getElementById ('departure_date_driving').value = '1625889600'; document.getElementById ('departure_date_driving').disabled = true; break; } checkAirTransportation (); } function checkLodging (){ var elRoomNotNeeded = document.getElementById ("room_needed"); var elLodgingDetail = document.getElementById ("lodging_detail"); elLodgingDetail.style.display = ( elRoomNotNeeded.checked ? 'none' : 'block' ); if ( elRoomNotNeeded.checked ){ // If we don't need a room, make sure that we are not specifying additional nights. var elEarlyNights = ['addtl_early_night_1625544000','addtl_early_night_1625457600','addtl_early_night_1625371200','addtl_early_night_1625284800','addtl_early_night_1625198400','addtl_early_night_1625112000']; var elNights = ['addtl_night_1625889600','addtl_night_1625976000','addtl_night_1626062400','addtl_night_1626148800','addtl_night_1626235200','addtl_night_1626321600']; for ( var i1 = 0; i1 < elEarlyNights.length; i1++ ){ var el = document.getElementById (elEarlyNights [i1]); el.checked = false; } for ( var i1 = 0; i1 < elNights.length; i1++ ){ var el = document.getElementById (elNights [i1]); el.checked = false; } } // Then make sure to update the estimated check-in/out dates and additional night enabled/disabled. checkEarlyExtraLodgingDays (); checkExtraLodgingDays (); checkPreConference (); } function checkGuest (){ var elGuest = document.getElementById ("guest"); var elGuestDetail = document.getElementById ("guest_detail"); elGuestDetail.style.display = ( elGuest.checked ? 'block' : 'none' ); if ( elGuest.checked ){ if ( document.getElementById ("guest_0_travel").checked ){ replaceClass (document.getElementById ("guest_0_email"), "required", "optional"); replaceClass (document.getElementById ("guest_0_email_span"), "required", "optional"); replaceClass (document.getElementById ("guest_0_phone_cell"), "required", "optional"); replaceClass (document.getElementById ("guest_0_phone_cell_span"), "required", "optional"); replaceClass (document.getElementById ("guest_0_email"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_0_email_span"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_0_phone_cell"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_0_phone_cell_span"), "required_missed", "optional"); }else{ replaceClass (document.getElementById ("guest_0_email"), "optional", "required"); replaceClass (document.getElementById ("guest_0_email_span"), "optional", "required"); replaceClass (document.getElementById ("guest_0_phone_cell"), "optional", "required"); replaceClass (document.getElementById ("guest_0_phone_cell_span"), "optional", "required"); replaceClass (document.getElementById ("guest_0_email"), "required_missed", "required"); replaceClass (document.getElementById ("guest_0_email_span"), "required_missed", "required"); replaceClass (document.getElementById ("guest_0_phone_cell"), "required_missed", "required"); replaceClass (document.getElementById ("guest_0_phone_cell_span"), "required_missed", "required"); } if (( document.getElementById ("guest_1_travel").checked ) || ( document.getElementById ("guest_1_name").value == "" )){ replaceClass (document.getElementById ("guest_1_email"), "required", "optional"); replaceClass (document.getElementById ("guest_1_email_span"), "required", "optional"); replaceClass (document.getElementById ("guest_1_phone_cell"), "required", "optional"); replaceClass (document.getElementById ("guest_1_phone_cell_span"), "required", "optional"); replaceClass (document.getElementById ("guest_1_email"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_1_email_span"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_1_phone_cell"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_1_phone_cell_span"), "required_missed", "optional"); }else{ replaceClass (document.getElementById ("guest_1_email"), "optional", "required"); replaceClass (document.getElementById ("guest_1_email_span"), "optional", "required"); replaceClass (document.getElementById ("guest_1_phone_cell"), "optional", "required"); replaceClass (document.getElementById ("guest_1_phone_cell_span"), "optional", "required"); replaceClass (document.getElementById ("guest_1_email"), "required_missed", "required"); replaceClass (document.getElementById ("guest_1_email_span"), "required_missed", "required"); replaceClass (document.getElementById ("guest_1_phone_cell"), "required_missed", "required"); replaceClass (document.getElementById ("guest_1_phone_cell_span"), "required_missed", "required"); } if (( document.getElementById ("guest_2_travel").checked ) || ( document.getElementById ("guest_2_name").value == "" )){ replaceClass (document.getElementById ("guest_2_email"), "required", "optional"); replaceClass (document.getElementById ("guest_2_email_span"), "required", "optional"); replaceClass (document.getElementById ("guest_2_phone_cell"), "required", "optional"); replaceClass (document.getElementById ("guest_2_phone_cell_span"), "required", "optional"); replaceClass (document.getElementById ("guest_2_email"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_2_email_span"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_2_phone_cell"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_2_phone_cell_span"), "required_missed", "optional"); }else{ replaceClass (document.getElementById ("guest_2_email"), "optional", "required"); replaceClass (document.getElementById ("guest_2_email_span"), "optional", "required"); replaceClass (document.getElementById ("guest_2_phone_cell"), "optional", "required"); replaceClass (document.getElementById ("guest_2_phone_cell_span"), "optional", "required"); replaceClass (document.getElementById ("guest_2_email"), "required_missed", "required"); replaceClass (document.getElementById ("guest_2_email_span"), "required_missed", "required"); replaceClass (document.getElementById ("guest_2_phone_cell"), "required_missed", "required"); replaceClass (document.getElementById ("guest_2_phone_cell_span"), "required_missed", "required"); } if (( document.getElementById ("guest_3_travel").checked ) || ( document.getElementById ("guest_3_name").value == "" )){ replaceClass (document.getElementById ("guest_3_email"), "required", "optional"); replaceClass (document.getElementById ("guest_3_email_span"), "required", "optional"); replaceClass (document.getElementById ("guest_3_phone_cell"), "required", "optional"); replaceClass (document.getElementById ("guest_3_phone_cell_span"), "required", "optional"); replaceClass (document.getElementById ("guest_3_email"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_3_email_span"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_3_phone_cell"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_3_phone_cell_span"), "required_missed", "optional"); }else{ replaceClass (document.getElementById ("guest_3_email"), "optional", "required"); replaceClass (document.getElementById ("guest_3_email_span"), "optional", "required"); replaceClass (document.getElementById ("guest_3_phone_cell"), "optional", "required"); replaceClass (document.getElementById ("guest_3_phone_cell_span"), "optional", "required"); replaceClass (document.getElementById ("guest_3_email"), "required_missed", "required"); replaceClass (document.getElementById ("guest_3_email_span"), "required_missed", "required"); replaceClass (document.getElementById ("guest_3_phone_cell"), "required_missed", "required"); replaceClass (document.getElementById ("guest_3_phone_cell_span"), "required_missed", "required"); } if (( document.getElementById ("guest_4_travel").checked ) || ( document.getElementById ("guest_4_name").value == "" )){ replaceClass (document.getElementById ("guest_4_email"), "required", "optional"); replaceClass (document.getElementById ("guest_4_email_span"), "required", "optional"); replaceClass (document.getElementById ("guest_4_phone_cell"), "required", "optional"); replaceClass (document.getElementById ("guest_4_phone_cell_span"), "required", "optional"); replaceClass (document.getElementById ("guest_4_email"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_4_email_span"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_4_phone_cell"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_4_phone_cell_span"), "required_missed", "optional"); }else{ replaceClass (document.getElementById ("guest_4_email"), "optional", "required"); replaceClass (document.getElementById ("guest_4_email_span"), "optional", "required"); replaceClass (document.getElementById ("guest_4_phone_cell"), "optional", "required"); replaceClass (document.getElementById ("guest_4_phone_cell_span"), "optional", "required"); replaceClass (document.getElementById ("guest_4_email"), "required_missed", "required"); replaceClass (document.getElementById ("guest_4_email_span"), "required_missed", "required"); replaceClass (document.getElementById ("guest_4_phone_cell"), "required_missed", "required"); replaceClass (document.getElementById ("guest_4_phone_cell_span"), "required_missed", "required"); } } } function validateForm (){ var missCnt = 0; var msgs = []; resetMissedFields (); // Registrant Section document.getElementById ("email").value = document.getElementById ("email").value.trim (); if ( document.getElementById ("email").value == "" ){ replaceClass (document.getElementById ("email"), "required", "required_missed"); replaceClass (document.getElementById ("email_span"), "required", "required_missed"); missCnt++; } document.getElementById ("first_name").value = document.getElementById ("first_name").value.trim (); if ( document.getElementById ("first_name").value == "" ){ replaceClass (document.getElementById ("first_name"), "required", "required_missed"); replaceClass (document.getElementById ("first_name_span"), "required", "required_missed"); missCnt++; } document.getElementById ("last_name").value = document.getElementById ("last_name").value.trim (); if ( document.getElementById ("last_name").value == "" ){ replaceClass (document.getElementById ("last_name"), "required", "required_missed"); replaceClass (document.getElementById ("last_name_span"), "required", "required_missed"); missCnt++; } var roleCnt = 0; if ( document.getElementById ("role_val_1").checked ){ roleCnt++; } if ( document.getElementById ("role_val_2").checked ){ roleCnt++; } if ( document.getElementById ("role_val_3").checked ){ roleCnt++; } if ( document.getElementById ("role_val_4").checked ){ roleCnt++; } if ( document.getElementById ("role_val_5").checked ){ roleCnt++; } if ( document.getElementById ("role_val_6").checked ){ roleCnt++; } if ( document.getElementById ("role_val_7").checked ){ roleCnt++; } if ( document.getElementById ("role_val_8").checked ){ roleCnt++; } if ( document.getElementById ("role_val_9").checked ){ roleCnt++; } if ( document.getElementById ("role_val_10").checked ){ roleCnt++; } if ( document.getElementById ("role_val_11").checked ){ roleCnt++; } if ( document.getElementById ("role_val_12").checked ){ roleCnt++; } if ( document.getElementById ("role_val_13").checked ){ roleCnt++; } if ( document.getElementById ("role_val_14").checked ){ roleCnt++; document.getElementById ("role_other").value = document.getElementById ("role_other").value.trim (); if ( document.getElementById ("role_other").value == "" ){ replaceClass (document.getElementById ("role_other"), "required", "required_missed"); replaceClass (document.getElementById ("role_other_span"), "required", "required_missed"); missCnt++; } } if ( roleCnt == 0 ){ replaceClass (document.getElementById ("role_ul"), "required", "required_missed"); missCnt++; } document.getElementById ("state").value = document.getElementById ("state").value.trim (); if ( document.getElementById ("state").value == "" ){ replaceClass (document.getElementById ("state"), "required", "required_missed"); replaceClass (document.getElementById ("state_span"), "required", "required_missed"); missCnt++; } document.getElementById ("daytime_phone").value = document.getElementById ("daytime_phone").value.trim (); if ( document.getElementById ("daytime_phone").value == "" ){ replaceClass (document.getElementById ("daytime_phone"), "required", "required_missed"); replaceClass (document.getElementById ("daytime_phone_span"), "required", "required_missed"); missCnt++; } document.getElementById ("cell_phone").value = document.getElementById ("cell_phone").value.trim (); if ( document.getElementById ("cell_phone").value == "" ){ replaceClass (document.getElementById ("cell_phone"), "required", "required_missed"); replaceClass (document.getElementById ("cell_phone_span"), "required", "required_missed"); missCnt++; } // Conference Section var elConfCover = document.getElementById ("conf_coverage"); switch ( parseInt (elConfCover.options [elConfCover.selectedIndex].value) ){ default : // We have an unknown choice replaceClass (document.getElementById ("conf_coverage"), "required", "required_missed"); replaceClass (document.getElementById ("conf_coverage_span"), "required", "required_missed"); missCnt++; break; case 0 : case 1 : case 2 : case 3 : // Any of these are valid options, and need no further validation. break; } if (( ! document.getElementById ("pre_conf_used").checked ) && ( ! document.getElementById ("pre_conf_not_used").checked )){ // Must indicate whether attending the pre-conference, or not replaceClass (document.getElementById ("pre_conf_ul"), "required", "required_missed"); missCnt++; } if ( document.getElementById ("pre_conf_used").checked ){ var elPreConfCover = document.getElementById ("pre_conf_coverage"); switch ( parseInt (elPreConfCover.options [elPreConfCover.selectedIndex].value) ){ default : // We have an unknown choice replaceClass (document.getElementById ("pre_conf_coverage"), "required", "required_missed"); replaceClass (document.getElementById ("pre_conf_coverage_span"), "required", "required_missed"); missCnt++; break; case 0 : case 1 : case 2 : case 3 : // Any of these are valid options, and need no further validation. break; } var events_1625630400_cnt = 0; if ( document.getElementById ("pre_conf_event_1").checked ){ events_1625630400_cnt++; } if ( document.getElementById ("pre_conf_event_4").checked ){ events_1625630400_cnt++; } if ( document.getElementById ("pre_conf_event_5").checked ){ events_1625630400_cnt++; } if ( events_1625630400_cnt == 0 ){ replaceClass (document.getElementById ("pre_conf_events_1625630400"), "required", "required_missed"); missCnt++; } } // Lodging Section if ( document.getElementById ("sharing").checked ){ document.getElementById ("share_0_email").value = document.getElementById ("share_0_email").value.trim (); document.getElementById ("share_0_name").value = document.getElementById ("share_0_name").value.trim (); if ( document.getElementById ("share_0_name").value == "" ){ replaceClass (document.getElementById ("share_0_name"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_name_span"), "required", "required_missed"); missCnt++; } if ( ! document.getElementById ("share_0_dates").checked ){ var foundOtherError = false; var elFirst = document.getElementById ("share_0_dates_first"); if ( elFirst.selectedIndex == -1 ){ replaceClass (document.getElementById ("share_0_dates_first"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_first_span"), "required", "required_missed"); missCnt++; foundOtherError = true; }else if ( parseInt (elFirst.options [elFirst.selectedIndex].value) == 0 ){ replaceClass (document.getElementById ("share_0_dates_first"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_first_span"), "required", "required_missed"); missCnt++; foundOtherError = true } var elLast = document.getElementById ("share_0_dates_last"); if ( elLast.selectedIndex == -1 ){ replaceClass (document.getElementById ("share_0_dates_last"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_last_span"), "required", "required_missed"); missCnt++; foundOtherError = true; }else if ( parseInt (elLast.options [elLast.selectedIndex].value) == 0 ){ replaceClass (document.getElementById ("share_0_dates_last"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_last_span"), "required", "required_missed"); missCnt++; foundOtherError = true; } if ( ! foundOtherError ){ if ( parseInt (elLast.options [elLast.selectedIndex].value) < parseInt (elFirst.options [elFirst.selectedIndex].value) ){ replaceClass (document.getElementById ("share_0_dates_first"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_first_span"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_last"), "required", "required_missed"); replaceClass (document.getElementById ("share_0_dates_last_span"), "required", "required_missed"); missCnt++; msgs.push ("When sharing a room, the Last Night Sharing cannot come before the First Night Sharing."); } } } } // Transportation Section // Arrival if (( ! document.getElementById ("air_trans_arrive_used").checked ) && ( ! document.getElementById ("air_trans_arrive_not_used").checked )){ // Must indicate whether flying or driving replaceClass (document.getElementById ("air_trans_arrive_ul"), "required", "required_missed"); missCnt++; } // Depart if (( ! document.getElementById ("air_trans_depart_used").checked ) && ( ! document.getElementById ("air_trans_depart_not_used").checked )){ // Must indicate whether flying or driving replaceClass (document.getElementById ("air_trans_depart_ul"), "required", "required_missed"); missCnt++; } var elGroundArrive = document.getElementById ("ground_arrival_needs"); var flightMsgSet = false; var groundMsgSet = false; switch ( parseInt (elGroundArrive.options [elGroundArrive.selectedIndex].value) ){ default : // We have an unknown choice replaceClass (document.getElementById ("ground_arrival_needs"), "required", "required_missed"); replaceClass (document.getElementById ("ground_arrival_needs_span"), "required", "required_missed"); missCnt++; break; case 0 : // This is the case for not needing transportation, so nothing to check. break; case 1 : // This is the case for matching the arriving flights. // So, make sure they have at least specified they will be using air transportation. if ( ! document.getElementById ("air_trans_arrive_used").checked ){ replaceClass (document.getElementById ("ground_arrival_needs"), "required", "required_missed"); replaceClass (document.getElementById ("ground_arrival_needs_span"), "required", "required_missed"); missCnt++; msgs.push ("If you need ground transportation to match your flight arrival/depature, make sure to indicate you will be flying to/from the conference, even if you don't have specific flight information, yet."); flightMsgSet = true; } break; case 3 : break; case 2 : // This is the case for not needing transportation at a specific time. var el1 = document.getElementById ("ground_arrival_date_hour"); var el2 = document.getElementById ("ground_arrival_date_min"); var el3 = document.getElementById ("ground_arrival_date_ampm"); if ( el1.options [el1.selectedIndex].value == "" ){ replaceClass (document.getElementById ("ground_arrival_date_hour"), "required", "required_missed"); replaceClass (document.getElementById ("ground_arrival_time_span"), "required", "required_missed"); missCnt++; if ( ! groundMsgSet ){ msgs.push ("If you need ground transportation at a specific time, please indicate the specific time needed."); groundMsgSet = true; } } if ( el2.options [el2.selectedIndex].value == "" ){ replaceClass (document.getElementById ("ground_arrival_date_min"), "required", "required_missed"); replaceClass (document.getElementById ("ground_arrival_time_span"), "required", "required_missed"); missCnt++; if ( ! groundMsgSet ){ msgs.push ("If you need ground transportation at a specific time, please indicate the specific time needed."); groundMsgSet = true; } } if ( el3.options [el3.selectedIndex].value == "" ){ replaceClass (document.getElementById ("ground_arrival_date_ampm"), "required", "required_missed"); replaceClass (document.getElementById ("ground_arrival_time_span"), "required", "required_missed"); missCnt++; if ( ! groundMsgSet ){ msgs.push ("If you need ground transportation at a specific time, please indicate the specific time needed."); groundMsgSet = true; } } break; } var elGroundDepart = document.getElementById ("ground_departure_needs"); switch ( parseInt (elGroundDepart.options [elGroundDepart.selectedIndex].value) ){ default : // We have an unknown choice replaceClass (document.getElementById ("ground_departure_needs"), "required", "required_missed"); replaceClass (document.getElementById ("ground_departure_needs_span"), "required", "required_missed"); missCnt++; break; case 0 : // This is the case for not needing transportation, so nothing to check. break; case 1 : // This is the case for matching the departing flights. // So, make sure they have at least specified they will be using air transportation. if ( ! document.getElementById ("air_trans_depart_used").checked ){ replaceClass (document.getElementById ("ground_departure_needs"), "required", "required_missed"); replaceClass (document.getElementById ("ground_departure_needs_span"), "required", "required_missed"); missCnt++; if ( ! flightMsgSet ){ msgs.push ("If you need ground transportation to match your flight arrival/depature, make sure to indicate you will be flying to/from the conference, even if you don't have specific flight information, yet."); flightMsgSet = true; } } break; case 3 : break; case 2 : // This is the case for not needing transportation at a specific time. var el1 = document.getElementById ("ground_departure_date_hour"); var el2 = document.getElementById ("ground_departure_date_min"); var el3 = document.getElementById ("ground_departure_date_ampm"); if ( el1.options [el1.selectedIndex].value == "" ){ replaceClass (document.getElementById ("ground_departure_date_hour"), "required", "required_missed"); replaceClass (document.getElementById ("ground_departure_time_span"), "required", "required_missed"); missCnt++; if ( ! groundMsgSet ){ msgs.push ("If you need ground transportation at a specific time, please indicate the specific time needed."); groundMsgSet = true; } } if ( el2.options [el2.selectedIndex].value == "" ){ replaceClass (document.getElementById ("ground_departure_date_min"), "required", "required_missed"); replaceClass (document.getElementById ("ground_departure_time_span"), "required", "required_missed"); missCnt++; if ( ! groundMsgSet ){ msgs.push ("If you need ground transportation at a specific time, please indicate the specific time needed."); groundMsgSet = true; } } if ( el3.options [el3.selectedIndex].value == "" ){ replaceClass (document.getElementById ("ground_departure_date_ampm"), "required", "required_missed"); replaceClass (document.getElementById ("ground_departure_time_span"), "required", "required_missed"); missCnt++; if ( ! groundMsgSet ){ msgs.push ("If you need ground transportation at a specific time, please indicate the specific time needed."); groundMsgSet = true; } } break; } // Guest Section if ( document.getElementById ("guest").checked ){ document.getElementById ("guest_0_email").value = document.getElementById ("guest_0_email").value.trim (); document.getElementById ("guest_0_phone_cell").value = document.getElementById ("guest_0_phone_cell").value.trim (); document.getElementById ("guest_0_name").value = document.getElementById ("guest_0_name").value.trim (); // document.getElementById ("guest_0_relation").value = document.getElementById ("guest_0_relation").value.trim (); if ( document.getElementById ("guest_0_name").value == "" ){ replaceClass (document.getElementById ("guest_0_name"), "required", "required_missed"); replaceClass (document.getElementById ("guest_0_name_span"), "required", "required_missed"); missCnt++; } /* if ( document.getElementById ("guest_0_relation").value == "" ){ replaceClass (document.getElementById ("guest_0_relation"), "required", "required_missed"); replaceClass (document.getElementById ("guest_0_relation_span"), "required", "required_missed"); missCnt++; } */ if ( ! document.getElementById ("guest_0_travel").checked ){ if ( document.getElementById ("guest_0_email").value == "" ){ replaceClass (document.getElementById ("guest_0_email"), "required", "required_missed"); replaceClass (document.getElementById ("guest_0_email_span"), "required", "required_missed"); missCnt++; } if ( document.getElementById ("guest_0_phone_cell").value == "" ){ replaceClass (document.getElementById ("guest_0_phone_cell"), "required", "required_missed"); replaceClass (document.getElementById ("guest_0_phone_cell_span"), "required", "required_missed"); missCnt++; } } document.getElementById ("guest_1_email").value = document.getElementById ("guest_1_email").value.trim (); document.getElementById ("guest_1_phone_cell").value = document.getElementById ("guest_1_phone_cell").value.trim (); document.getElementById ("guest_1_name").value = document.getElementById ("guest_1_name").value.trim (); // document.getElementById ("guest_1_relation").value = document.getElementById ("guest_1_relation").value.trim (); if (( document.getElementById ("guest_1_email").value != "" ) || ( document.getElementById ("guest_1_phone_cell").value != "" )){ // If we have an email address or phone number for a guest, we have to have a name and relation as well replaceClass (document.getElementById ("guest_1_name"), "required", "required_missed"); replaceClass (document.getElementById ("guest_1_name_span"), "required", "required_missed"); replaceClass (document.getElementById ("guest_1_name"), "optional", "required_missed"); replaceClass (document.getElementById ("guest_1_name_span"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_1_relation"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_1_relation_span"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_1_relation"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_1_relation_span"), "optional", "required_missed"); missCnt++; }else{ // Make sure to reset this special case back to "optional" replaceClass (document.getElementById ("guest_1_name"), "required", "optional"); replaceClass (document.getElementById ("guest_1_name_span"), "required", "optional"); replaceClass (document.getElementById ("guest_1_name"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_1_name_span"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_1_relation"), "required", "optional"); // replaceClass (document.getElementById ("guest_1_relation_span"), "required", "optional"); // replaceClass (document.getElementById ("guest_1_relation"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_1_relation_span"), "required_missed", "optional"); } if (( ! document.getElementById ("guest_1_travel").checked ) && ( document.getElementById ("guest_1_name").value != "" )){ if ( document.getElementById ("guest_1_email").value == "" ){ replaceClass (document.getElementById ("guest_1_email"), "required", "required_missed"); replaceClass (document.getElementById ("guest_1_email_span"), "required", "required_missed"); missCnt++; } if ( document.getElementById ("guest_1_phone_cell").value == "" ){ replaceClass (document.getElementById ("guest_1_phone_cell"), "required", "required_missed"); replaceClass (document.getElementById ("guest_1_phone_cell_span"), "required", "required_missed"); missCnt++; } } document.getElementById ("guest_2_email").value = document.getElementById ("guest_2_email").value.trim (); document.getElementById ("guest_2_phone_cell").value = document.getElementById ("guest_2_phone_cell").value.trim (); document.getElementById ("guest_2_name").value = document.getElementById ("guest_2_name").value.trim (); // document.getElementById ("guest_2_relation").value = document.getElementById ("guest_2_relation").value.trim (); if (( document.getElementById ("guest_2_email").value != "" ) || ( document.getElementById ("guest_2_phone_cell").value != "" )){ // If we have an email address or phone number for a guest, we have to have a name and relation as well replaceClass (document.getElementById ("guest_2_name"), "required", "required_missed"); replaceClass (document.getElementById ("guest_2_name_span"), "required", "required_missed"); replaceClass (document.getElementById ("guest_2_name"), "optional", "required_missed"); replaceClass (document.getElementById ("guest_2_name_span"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_2_relation"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_2_relation_span"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_2_relation"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_2_relation_span"), "optional", "required_missed"); missCnt++; }else{ // Make sure to reset this special case back to "optional" replaceClass (document.getElementById ("guest_2_name"), "required", "optional"); replaceClass (document.getElementById ("guest_2_name_span"), "required", "optional"); replaceClass (document.getElementById ("guest_2_name"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_2_name_span"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_2_relation"), "required", "optional"); // replaceClass (document.getElementById ("guest_2_relation_span"), "required", "optional"); // replaceClass (document.getElementById ("guest_2_relation"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_2_relation_span"), "required_missed", "optional"); } if (( ! document.getElementById ("guest_2_travel").checked ) && ( document.getElementById ("guest_2_name").value != "" )){ if ( document.getElementById ("guest_2_email").value == "" ){ replaceClass (document.getElementById ("guest_2_email"), "required", "required_missed"); replaceClass (document.getElementById ("guest_2_email_span"), "required", "required_missed"); missCnt++; } if ( document.getElementById ("guest_2_phone_cell").value == "" ){ replaceClass (document.getElementById ("guest_2_phone_cell"), "required", "required_missed"); replaceClass (document.getElementById ("guest_2_phone_cell_span"), "required", "required_missed"); missCnt++; } } document.getElementById ("guest_3_email").value = document.getElementById ("guest_3_email").value.trim (); document.getElementById ("guest_3_phone_cell").value = document.getElementById ("guest_3_phone_cell").value.trim (); document.getElementById ("guest_3_name").value = document.getElementById ("guest_3_name").value.trim (); // document.getElementById ("guest_3_relation").value = document.getElementById ("guest_3_relation").value.trim (); if (( document.getElementById ("guest_3_email").value != "" ) || ( document.getElementById ("guest_3_phone_cell").value != "" )){ // If we have an email address or phone number for a guest, we have to have a name and relation as well replaceClass (document.getElementById ("guest_3_name"), "required", "required_missed"); replaceClass (document.getElementById ("guest_3_name_span"), "required", "required_missed"); replaceClass (document.getElementById ("guest_3_name"), "optional", "required_missed"); replaceClass (document.getElementById ("guest_3_name_span"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_3_relation"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_3_relation_span"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_3_relation"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_3_relation_span"), "optional", "required_missed"); missCnt++; }else{ // Make sure to reset this special case back to "optional" replaceClass (document.getElementById ("guest_3_name"), "required", "optional"); replaceClass (document.getElementById ("guest_3_name_span"), "required", "optional"); replaceClass (document.getElementById ("guest_3_name"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_3_name_span"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_3_relation"), "required", "optional"); // replaceClass (document.getElementById ("guest_3_relation_span"), "required", "optional"); // replaceClass (document.getElementById ("guest_3_relation"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_3_relation_span"), "required_missed", "optional"); } if (( ! document.getElementById ("guest_3_travel").checked ) && ( document.getElementById ("guest_3_name").value != "" )){ if ( document.getElementById ("guest_3_email").value == "" ){ replaceClass (document.getElementById ("guest_3_email"), "required", "required_missed"); replaceClass (document.getElementById ("guest_3_email_span"), "required", "required_missed"); missCnt++; } if ( document.getElementById ("guest_3_phone_cell").value == "" ){ replaceClass (document.getElementById ("guest_3_phone_cell"), "required", "required_missed"); replaceClass (document.getElementById ("guest_3_phone_cell_span"), "required", "required_missed"); missCnt++; } } document.getElementById ("guest_4_email").value = document.getElementById ("guest_4_email").value.trim (); document.getElementById ("guest_4_phone_cell").value = document.getElementById ("guest_4_phone_cell").value.trim (); document.getElementById ("guest_4_name").value = document.getElementById ("guest_4_name").value.trim (); // document.getElementById ("guest_4_relation").value = document.getElementById ("guest_4_relation").value.trim (); if (( document.getElementById ("guest_4_email").value != "" ) || ( document.getElementById ("guest_4_phone_cell").value != "" )){ // If we have an email address or phone number for a guest, we have to have a name and relation as well replaceClass (document.getElementById ("guest_4_name"), "required", "required_missed"); replaceClass (document.getElementById ("guest_4_name_span"), "required", "required_missed"); replaceClass (document.getElementById ("guest_4_name"), "optional", "required_missed"); replaceClass (document.getElementById ("guest_4_name_span"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_4_relation"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_4_relation_span"), "required", "required_missed"); // replaceClass (document.getElementById ("guest_4_relation"), "optional", "required_missed"); // replaceClass (document.getElementById ("guest_4_relation_span"), "optional", "required_missed"); missCnt++; }else{ // Make sure to reset this special case back to "optional" replaceClass (document.getElementById ("guest_4_name"), "required", "optional"); replaceClass (document.getElementById ("guest_4_name_span"), "required", "optional"); replaceClass (document.getElementById ("guest_4_name"), "required_missed", "optional"); replaceClass (document.getElementById ("guest_4_name_span"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_4_relation"), "required", "optional"); // replaceClass (document.getElementById ("guest_4_relation_span"), "required", "optional"); // replaceClass (document.getElementById ("guest_4_relation"), "required_missed", "optional"); // replaceClass (document.getElementById ("guest_4_relation_span"), "required_missed", "optional"); } if (( ! document.getElementById ("guest_4_travel").checked ) && ( document.getElementById ("guest_4_name").value != "" )){ if ( document.getElementById ("guest_4_email").value == "" ){ replaceClass (document.getElementById ("guest_4_email"), "required", "required_missed"); replaceClass (document.getElementById ("guest_4_email_span"), "required", "required_missed"); missCnt++; } if ( document.getElementById ("guest_4_phone_cell").value == "" ){ replaceClass (document.getElementById ("guest_4_phone_cell"), "required", "required_missed"); replaceClass (document.getElementById ("guest_4_phone_cell_span"), "required", "required_missed"); missCnt++; } } } if ( missCnt > 0 ){ var msg = 'Some required fields were not specified. Please fill out the missing required information (fields marked with red), and try submitting the form again.'; if ( msgs.length > 0 ){ msg += "\n\nSpecial Notes:"; for ( var msgCnt = 0; msgCnt < msgs.length; msgCnt++ ){ msg += "\n - " + msgs [msgCnt]; } } alert (msg); return false; } if ( ! captchaVerified ){ verifyCAPTCHA (); // Return false so that the form does not submit, and we can process the AJAX verification of the CAPTCHA and resubmit the form upon successful validation. return false; } // If everything validated, we need to re-enable any form controls that are disabled, so they will be submitted by the browser. reenableControls (); return true; } function verifyCAPTCHA (){ var elChecking = document.getElementById ("captcha_check"); var checkCAPTCHA = document.getElementById ("ct_captcha").value.trim (); document.getElementById ("ct_captcha").value = checkCAPTCHA; // If we did need to trim it, put the trimmed text back in the box. elChecking.style.display = 'block'; var url = "captcha_check.php?t=400&ct_captcha=" + checkCAPTCHA; makeRequest (url, processCAPTCHACheck); } function processCAPTCHACheck (xhr){ if ( xhr.readyState == 4 ){ if ( xhr.status == 200 ){ var checkRetData = JSON.parse (xhr.responseText); document.getElementById ("captcha_check").style.display = 'none'; if ( checkRetData ['error'] == '' ){ captchaVerified = true; // Verified, so resubmit the form. document.getElementById ("form_submit").click (); }else{ captchaVerified = false; replaceClass (document.getElementById ("ct_captcha"), "required", "required_missed"); alert (checkRetData ['error']); } }else{ alert ("There was a problem with the request " + xhr.status); } } } function initPage (){ checkPreConferenceRoleRestrictions (); checkPreConference (); checkLodging (); checkEarlyExtraLodgingDays (); checkExtraLodgingDays (); checkSharing (); checkAirTransportation (); checkGroundTransportation (); checkGuest (); checkLabelEnables (); captchaVerified = false; }