TRUE,
    '#process' => array('expand_file_upload_combo'),
    '#element_validate' => array('file_upload_combo_validate'),
  );
  
  $type['sequence_combo'] = array(
    '#input' => TRUE,
    '#process' => array('expand_sequence_combo'),
    '#element_validate' => array('sequence_combo_validate'),
  );
  return $type;
}
/**
 * Upload File and keep track of previously uploaded files
 * Form element description
 */
function expand_file_upload_combo($element, $edit, $form_state, $complete_form) {
  // set the default values for each field
  if (empty($element['#value'])) {
    $element['#value'] = array(
      'items' => '',
      'items_file' => '',
      'file_path' => '',
    );
  }
  $element['#tree'] = TRUE;
  // add items text area element
  $parents = $element['#parents'];
  $parents[] = 'items';
  $element['items'] = array(
    '#type' => 'textarea',
    '#default_value' => $element['#value']['items'],
  );
  
  // add file upload element
  $parents = $element['#parents'];
  $parents[] = 'items_file';
  $element['items_file'] = array(
    '#type' => 'file',
    '#title' =>  'File upload',
    '#default_value' => $element['#value']['items_file'],
  );
  // add hidden elelment
  $parents = $element['#parents'];
  $parents[] = 'file_path';
  $element['file_path'] = array(
    '#type' => 'hidden',
    '#default_value' => $element['#value']['file_path'],
  );
  return $element;
}
/**
 * Form element description
 */
function expand_sequence_combo($element, $edit, $form_state, $complete_form) {
 
  // set the default values for each field
  if (empty($element['#value'])) {
    $element['#value'] = array(
      'upstream' => '',
      'downstream' => '',
    );
  }
  
  $element['#tree'] = TRUE;
  // add the upstream box
  $parents = $element['#parents'];
  $parents[] = 'upstream';
  $element['upstream'] = array(
     '#type' => 'textfield',
     '#title' => t('Get Upstream Bases'),
     '#description' => t('Specify the number of upstream bases to include in the sequnce'),
     '#default_value' => $element['#value']['upstream'],
  );
  // add the downstream box
  $parents = $element['#parents'];
  $parents[] = 'downstream';
  $element['downstream'] = array(
     '#type' => 'textfield',
     '#prefix' => '
',
     '#title' => t('Get Downstream Bases'),
     '#description' => t('Specify the number of downstream bases to include in the sequnce'),
     '#default_value' => $element['#value']['downstream'],     
  );
  return $element;
}
/**
 * Theme the file upload combo form element
 */
function theme_file_upload_combo($element) {
  return theme('form_element', $element, '