public function doInvite($data, Form $form)
 {
     $data = $form->getData();
     $emails = $data['Emails']['new'];
     $sent = new DataObjectSet();
     if (!$emails) {
         $form->addErrorMessage('Emails', 'Please enter at least one person to invite.');
     }
     $time = DataObject::get_by_id('RegisterableDateTime', $data['TimeID']);
     $invite = new Email();
     $invite->setSubject(sprintf('Event Invitation For %s (%s)', $time->EventTitle(), SiteConfig::current_site_config()->Title));
     $invite->setTemplate('EventInvitationEmail');
     $invite->populateTemplate(array('Time' => $time, 'SiteConfig' => SiteConfig::current_site_config(), 'Link' => Director::absoluteURL($time->Link())));
     $count = count($emails['Name']);
     for ($i = 0; $i < $count; $i++) {
         $name = trim($emails['Name'][$i]);
         $email = trim($emails['Email'][$i]);
         if (!$name || !$email) {
             continue;
         }
         $regod = DataObject::get_one('EventRegistration', sprintf('"Email" = \'%s\' AND "TimeID" = \'%d\'', Convert::raw2sql($email), $time->ID));
         if ($regod) {
             $sent->push(new ArrayData(array('Name' => $name, 'Email' => $email, 'Sent' => false, 'Reason' => 'Already registered')));
             continue;
         }
         $invited = DataObject::get_one('EventInvitation', sprintf('"Email" = \'%s\' AND "TimeID" = \'%d\'', Convert::raw2sql($email), $time->ID));
         if ($invited) {
             $sent->push(new ArrayData(array('Name' => $name, 'Email' => $email, 'Sent' => false, 'Reason' => 'Already invited')));
             continue;
         }
         $invitation = new EventInvitation();
         $invitation->Name = $name;
         $invitation->Email = $email;
         $invitation->TimeID = $time->ID;
         $invitation->EventID = $time->EventID;
         $invitation->write();
         $_invite = clone $invite;
         $_invite->setTo($email);
         $_invite->populateTemplate(array('Name' => $name));
         $_invite->send();
         $sent->push(new ArrayData(array('Name' => $name, 'Email' => $email, 'Sent' => true)));
     }
     Requirements::clear();
     $controller = $this->customise(array('Result' => $sent));
     return $controller->renderWith('EventInvitationField_invite');
 }