/**
  * Store a newly created resource in storage.
  * @access  public
  * @return Redirect
  */
 public function store()
 {
     // input data
     $data = Input::except('_token', 'search');
     // validation rules
     $rules = $this->getValidationRules();
     // validate data using rules
     $validator = Validator::make($data, $rules);
     if ($validator->fails()) {
         if (!$data['aou_list_id']) {
             $flashMessage = 'No sighting selected.';
         }
         return Redirect::to('/admin/trips/' . $data['trip_id'] . '/sightings')->withErrors($validator);
     } else {
         try {
             $sighting = new Sighting();
             $sighting->fill($data)->save();
             $flashMessage = 'Added sighting.';
         } catch (Exception $e) {
             $errorMessage = $e->getMessage();
             // most likely error is duplicate sighting; UNIQUE constraint violation
             if (stripos($errorMessage, 'duplicate entry') > 0) {
                 $errorMessage = 'Duplicate sighting.';
             }
             $flashMessage = $errorMessage;
         }
         return Redirect::to('/admin/trips/' . $data['trip_id'] . '/sightings')->with('flashMessage', $flashMessage);
     }
 }