/**
  * Validation routine for account form
  * @param array $formdata Submitted data from form
  * @param object $files File uploads from form
  * @return array(string => string) Array of errors, if any found
  * @version 2012081401
  * @since 2011062901
  */
 public function validation($formData, $files = null)
 {
     $err = array();
     $accountDAO = new TxttoolsAccountDAO();
     $filterDAO = new MoodletxtInboundFilterDAO();
     $formData = $this->cleanupFormData($formData);
     // Check for valid account ID
     if ($formData['filterAccountList'] <= 0 || !$accountDAO->accountIdExists($formData['filterAccountList'])) {
         $err['filterAccountList'] = get_string('errorfilternoaccount', 'block_moodletxt');
     }
     // Clean up any potential data cockups on the user list
     if (!isset($formData['usersOnFilter']) || $formData['usersOnFilter'] == '') {
         $formData['usersOnFilter'] = array();
     } else {
         if (!is_array($formData['usersOnFilter'])) {
             $formData['usersOnFilter'] = array($formData['usersOnFilter']);
         }
     }
     // Check that, if a new phone number filter has been entered, it is valid
     if ($formData['newPhoneNumberFilter'] != '' && !MoodletxtPhoneNumber::validatePhoneNumber($formData['newPhoneNumberFilter'])) {
         $err['newPhoneNumberFilter'] = get_string('errorfilterbadphoneno', 'block_moodletxt');
     }
     if ($formData['newKeywordFilter'] != '' || $formData['newPhoneNumberFilter'] != '') {
         // When creating a new filter, the user must have selected recipient inboxes
         if (count($formData['usersOnFilter']) == 0) {
             $err['usersOnFilter'] = get_string('errorfilternousers', 'block_moodletxt');
         }
         $type = $formData['newKeywordFilter'] != '' ? MoodletxtInboundFilter::$FILTER_TYPE_KEYWORD : MoodletxtInboundFilter::$FILTER_TYPE_PHONE_NUMBER;
         $value = $formData['newKeywordFilter'] != '' ? $formData['newKeywordFilter'] : $formData['newPhoneNumberFilter'];
         if ($filterDAO->filterExists($formData['filterAccountList'], $type, $value)) {
             if ($type == MoodletxtInboundFilter::$FILTER_TYPE_KEYWORD) {
                 $err['newKeywordFilter'] = get_string('errorfilterexists', 'block_moodletxt');
             } else {
                 $err['newPhoneNumberFilter'] = get_string('errorfilterexists', 'block_moodletxt');
             }
         }
     } else {
         if ($formData['existingKeywordFilterList'] <= 0 && $formData['existingPhoneNumberFilterList'] <= 0) {
             $err['existingKeywordFilterList'] = get_string('errorfilternotselected', 'block_moodletxt');
         }
     }
     return $err;
 }