/**
  * Load the settings for the survey
  */
 protected function loadTrackSettings()
 {
     $respTracks = $this->tracker->getRespondentTracks($this->formData['gto_id_respondent'], $this->formData['gto_id_organization']);
     $tracks = array();
     foreach ($respTracks as $respTrack) {
         if ($respTrack instanceof \Gems_Tracker_RespondentTrack) {
             if ($respTrack->hasSuccesCode()) {
                 $tracks[$respTrack->getRespondentTrackId()] = substr(sprintf($this->_('%s - %s'), $respTrack->getTrackEngine()->getTrackName(), $respTrack->getFieldsInfo()), 0, 100);
             }
         }
     }
     if ($tracks) {
         if (!isset($this->formData['gto_id_track'])) {
             reset($tracks);
             $this->formData['gto_id_track'] = key($tracks);
         }
     } else {
         $this->addMessageInvalid($this->_('Survey insertion impossible: respondent has no track!'));
         $tracks = $this->util->getTranslated()->getEmptyDropdownArray();
     }
     asort($tracks);
     $model = $this->getModel();
     $model->set('gto_id_track', 'multiOptions', $tracks);
     if (count($tracks) === 1) {
         $model->set('gto_id_track', 'elementClass', 'Exhibitor');
     }
     if (isset($this->formData['gto_id_track'])) {
         $this->respondentTrack = $respTracks[$this->formData['gto_id_track']];
         // Add relation field when survey is not for staff
         if ($this->survey && $this->survey->isTakenByStaff() === false) {
             $engine = $this->respondentTrack->getTrackEngine();
             if (method_exists($engine, 'getRespondentRelationFields')) {
                 $empty = array('-1' => $this->_('Patient'));
                 $relations = $empty + $engine->getRespondentRelationFields();
                 $model->set('gto_id_relationfield', 'label', $this->_('Fill out by'), 'multiOptions', $relations, 'elementClass', 'Select', 'required', true);
             }
         }
     }
 }