function to_json($load)
 {
     $complex_data = parent::to_json($load);
     $groups_data = array();
     $values_data = array();
     foreach ($this->groups as $group) {
         $groups_data[] = $group->to_json(false);
     }
     foreach ($this->values as $fields) {
         $group = $this->get_group_by_name($fields['type']);
         unset($fields['type']);
         $data = array('name' => $group->get_name(), 'label' => $group->get_label(), 'fields' => array());
         foreach ($fields as $index => $field) {
             $data['fields'][] = $field->to_json(false);
         }
         $values_data[] = $data;
     }
     $complex_data = array_merge($complex_data, array('layout' => $this->layout, 'labels' => $this->labels, 'min' => $this->get_min(), 'max' => $this->get_max(), 'multiple_groups' => count($groups_data) > 1, 'groups' => $groups_data, 'value' => $values_data));
     return $complex_data;
 }
 function to_json($load)
 {
     $field_data = parent::to_json($load);
     $field_data = array_merge($field_data, array('html' => $this->field_html));
     return $field_data;
 }