public function get_field_stats($form_id)
 {
     $fields = RM_DBManager::get_fields_filtered_by_types($form_id, array('Select', 'Checkbox', 'Radio', 'Country'));
     $stat_arr = array();
     if (is_array($fields) || is_object($fields)) {
         foreach ($fields as $field) {
             $res = array();
             $tmp_obj = new stdClass();
             $vals = maybe_unserialize($field->field_value);
             $tmp_obj->label = $field->field_label;
             $tmp_obj->total_sub = 0;
             switch ($field->field_type) {
                 case 'Checkbox':
                     $temp = RM_DBManager::get('SUBMISSION_FIELDS', array('field_id' => $field->field_id), array('%d'), 'col', 0, 999999, "value");
                     if (!$temp) {
                         break;
                     }
                     foreach ($vals as $val) {
                         $res[$val] = 0;
                     }
                     $other_option_submission = 0;
                     foreach ($temp as $single_sub) {
                         if ($single_sub == NULL) {
                             continue;
                         }
                         $single_sub = maybe_unserialize($single_sub);
                         foreach ($single_sub as $f_v) {
                             if (isset($res[$f_v])) {
                                 $res[$f_v] += 1;
                             } else {
                                 $other_option_submission++;
                             }
                         }
                     }
                     $res['Other'] = $other_option_submission;
                     //IMPORTANT: Checkbox is a multiple value type submission,
                     //hence we can't just add up the submissions of individual option to get the total submissions.
                     $tmp_obj->total_sub = RM_DBManager::count('SUBMISSION_FIELDS', array('field_id' => $field->field_id));
                     break;
                 case 'Country':
                     $temp = RM_DBManager::count_multiple('SUBMISSION_FIELDS', "value", array('field_id' => $field->field_id));
                     if (!$temp) {
                         break;
                     }
                     foreach ($temp as $single_sub) {
                         $res[$single_sub->value] = (int) $single_sub->count;
                         $tmp_obj->total_sub += (int) $single_sub->count;
                     }
                     //Compensate for the cases when Country field was not submitted (blank values).
                     if (isset($res[''])) {
                         $tmp_obj->total_sub -= $res[''];
                         //We dont need this in stat, unset it.
                         unset($res['']);
                     }
                     break;
                 case 'Radio':
                 case 'Select':
                     if ($field->field_type == 'Select') {
                         $vals = explode(',', $field->field_value);
                     }
                     $temp = RM_DBManager::count_multiple('SUBMISSION_FIELDS', "value", array('field_id' => $field->field_id));
                     if (!$temp) {
                         break;
                     }
                     foreach ($temp as $single_sub) {
                         if (in_array($single_sub->value, $vals)) {
                             $res[$single_sub->value] = (int) $single_sub->count;
                             $tmp_obj->total_sub += (int) $single_sub->count;
                         }
                     }
                     break;
             }
             $tmp_obj->sub_stat = $res;
             $stat_arr[] = $tmp_obj;
         }
     }
     return $stat_arr;
 }