diff --git a/booking.constants.inc b/booking.constants.inc index cde2b5d..6d46a6a 100644 --- a/booking.constants.inc +++ b/booking.constants.inc @@ -15,6 +15,7 @@ function _booking_state_options() { $options_array['TAS'] = 'TAS'; $options_array['NZ'] = 'NZ'; $options_array['Other'] = 'Other'; + $options_array['_blank_'] = ''; return $options_array; } /** diff --git a/booking.regn_form.inc b/booking.regn_form.inc index cfe4127..dae9ef4 100644 --- a/booking.regn_form.inc +++ b/booking.regn_form.inc @@ -1160,44 +1160,57 @@ function _booking_validate($node, &$form_state) { form_set_error('booking_dob', t('Unfortunately you are too young to attend !event.', array ('!event' => variable_get('booking_event_name','this event')))); } - - //check the terms and conditions have been agreed to - if ($form_state['booking_agreement'] == 0) - form_set_error('booking_agreement', t('You must read and agree with the aims and expectations prior to submitting this form.')); - + //check the medicare number for people in Australia if (variable_get('booking_enable_medicare', 1) == 1 && $form_state['booking_country'] == 'Australia') { - //proper validation routine at http://dyball.wordpress.com/2007/12/05/validation-of-medicare-numbers/ - if (! _valid_medicare_number($form_state['booking_medicare'])) - { - if (variable_get('booking_enforce_medicare_verification', 1) == 1) { - form_set_error('booking_medicare', - t('You have entered an invalid medicare number. Please check your medicare card and re-enter the number. ' . - 'If you believe this to be incorrect, please !contact.', - array('!contact' => l('send us an email', 'mailto:' . variable_get('booking_contact_email') . - '?subject=Invalid Medicare Number')) - ) - ); - } - else { - drupal_set_message( - t('You have entered an invalid medicare number. Please ensure you check your medicare card' . - ' and send us the correct information via !contact.', - array('!contact' => l('email', 'mailto:' . variable_get('booking_contact_email') . - '?subject=Invalid Medicare Number')) - ), 'error', FALSE - ); - } - } + //proper validation routine at http://dyball.wordpress.com/2007/12/05/validation-of-medicare-numbers/ + if ( (variable_get('booking_enforce_medicare_verification', 1) == 1) && (! _valid_medicare_number($form_state['booking_medicare'])) ) + { + form_set_error( + 'booking_medicare', + t('You have entered an invalid medicare number. Please check your medicare card and re-enter the number. If you believe this to be incorrect, please !contact.', + array('!contact' => l('send us an email', 'mailto:' . variable_get('booking_contact_email') . '?subject=Invalid Medicare Number')) + ) + ); + } + elseif ( (variable_get('booking_enforce_medicare_verification', 1) == 0) && (! _valid_medicare_number($form_state['booking_medicare'])) ) + { + drupal_set_message( + t('You have entered an invalid medicare number. Please ensure you check your medicare card and send us the correct information via !contact.', + array('!contact' => l('email', 'mailto:' . variable_get('booking_contact_email') . '?subject=Invalid Medicare Number')) + ), + 'error', FALSE + ); + } + } + + //verify state information with the new few checks + + //make sure state field is not blank + if ($form_state['booking_state'] == '_blank_' ) + { + form_set_error('booking_state', + t('You must enter your State in the address section of the Contact details. ' . + 'Please choose a state of Other and specify N/A if your country does not have states, or choose NZ if you reside in New Zealand.')); } //verify international address has updated the state field - if ((strcasecmp($form_state['booking_country'], 'Australia') !== 0) && (strcasecmp($form_state['booking_state'], 'Other') !== 0) && (strcasecmp($form_state['booking_state'], 'NZ') !== 0)) + if ((strcasecmp($form_state['booking_country'], 'New Zealand') == 0) && (strcasecmp($form_state['booking_state'], 'NZ') !== 0)) { - form_set_error('booking_state', t('You must enter your State in the address section of the Contact details. Please choose a state of Other and specify N/A if your country does not have states.')); + form_set_error('booking_state', + t('You have indicated you reside in New Zealand. Please select NZ as your state.')); } - + elseif ((strcasecmp($form_state['booking_country'], 'Australia') !== 0) && (strcasecmp($form_state['booking_state'], 'Other') !== 0) && (strcasecmp($form_state['booking_state'], 'NZ') !== 0)) + { + form_set_error('booking_state', + t('You must enter your State in the address section of the Contact details. Please choose a state of Other and specify N/A if your country does not have states.')); + } + + //verify that a state has been entered if "Other" was selected + if (($form_state['booking_state'] == 'Other' ) && ($form_state['booking_other_state'] == '')) + form_set_error('booking_other_state', t('You must enter your State in the address section of the Contact details. Please put N/A if your country does not have states.')); + //verify passport number if (variable_get('booking_enable_passport', 0) == 1 && $form_state['booking_country'] == 'Australia') { @@ -1223,14 +1236,13 @@ function _booking_validate($node, &$form_state) { if (($form_state['booking_mobile'] != '' ) && ($form_state['booking_country'] == 'Australia') && (!_valid_australian_mobile_number($form_state['booking_mobile']))) form_set_error('booking_mobile', t('You have entered an invalid mobile phone number.')); - //verify guardian phone number(s) if (($form_state['booking_guardian_phone'] != '' ) && (!_valid_phone_number($form_state['booking_guardian_phone']))) form_set_error('booking_guardian_phone', t('You have entered an contact phone number for your emergency contact.')); - //verify that a state has been entered if "Other" was selected - if (($form_state['booking_state'] == 'Other' ) && ($form_state['booking_other_state'] == '')) - form_set_error('booking_other_state', t('You must enter your State in the address section of the Contact details. Please put N/A if your country does not have states.')); + //check the terms and conditions have been agreed to. Do this one last so it stands out more + if ($form_state['booking_agreement'] == 0) + form_set_error('booking_agreement', t('You must read and agree with the aims and expectations prior to submitting this form.')); //if there are any errors then log the data the user entered so we can check it later if (form_get_errors()) {