diff --git a/salesforce_entityform.install b/salesforce_entityform.install
index b4eff58ab..a62e4e61f 100644
--- a/salesforce_entityform.install
+++ b/salesforce_entityform.install
@@ -74,4 +74,22 @@ function salesforce_entityform_schema() {
  */
 function salesforce_entityform_uninstall() {
   db_query("DROP TABLE IF EXISTS {sf_entityform_options}");
+
+  // Remove variables.
+  $variables = array(
+    'salesforce_entityform_type',
+    'salesforce_entityform_orgid',
+    'salesforce_entityform_oid',
+    'salesforce_entityform_url',
+    'salesforce_entityform_debug',
+    'salesforce_entityform_debug_email',
+    'salesforce_entityform_Campaign_ID',
+    'salesforce_entityform_retURL',
+    'salesforce_entityform_recordType',
+    'salesforce_entityform_lead_source',
+    'sf_ef_http_request',
+  );
+  foreach ($variables as $variable) {
+    variable_del($variable);
+  }
 }
diff --git a/salesforce_entityform.module b/salesforce_entityform.module
index daa7effd0..7218202cc 100644
--- a/salesforce_entityform.module
+++ b/salesforce_entityform.module
@@ -65,6 +65,9 @@ function salesforce_entityform_menu() {
  * Add salesforce details to the database.
  */
 function salesforce_entityform_form_settings($form, &$form_state) {
+  $form = array();
+
+  // Get default values.
   $salesforce_entityform_oid = variable_get('salesforce_entityform_oid', '');
   $salesforce_entityform_url = variable_get('salesforce_entityform_url', 'https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8');
   $salesforce_entityform_debug = variable_get('salesforce_entityform_debug', FALSE);
@@ -74,79 +77,126 @@ function salesforce_entityform_form_settings($form, &$form_state) {
   $salesforce_entityform_recordType = variable_get('salesforce_entityform_recordType', NULL);
   $salesforce_entityform_lead_source = variable_get('salesforce_entityform_lead_source', '');
   $salesforce_entityform_http_request = variable_get('sf_ef_http_request', 'curl');
-  $description = <<<EOT
-      <p>Entityform Fields To Salesforce Fields Mapping Table <br />Required Fields are: Salesforce OID and Salesforce URL</p>
-EOT;
-  $form = array();
-  $form['salesfromce_settings']['description'] = array(
-    '#type' => 'markup',
-    '#value' => check_plain($description),
+
+  $form['salesforce'] = array(
+    '#type' => 'container',
+    '#theme_wrappers' => array('container'),
+    '#attributes' => array(
+      'id' => 'salesforce-settings-container',
+    ),
   );
-  $form['salesfromce_settings'] = array(
+
+  $form['salesforce']['settings'] = array(
     '#type' => 'fieldset',
     '#title' => t('Salesforce Settings'),
     '#collapsible' => TRUE,
     '#collapsed' => FALSE,
   );
-  $form['salesfromce_settings']['salesforce_entityform_oid'] = array(
+
+  $salesforce_entityform_type = variable_get('salesforce_entityform_type', 'web_to_lead');
+  $form['salesforce']['settings']['salesforce_entityform_type'] = array(
+    '#type' => 'select',
+    '#title' => t('Salesforce form type'),
+    '#default_value' => $salesforce_entityform_type,
+    '#options' => array(
+      'web_to_lead' => t('Web-to-Lead'),
+      'web_to_case' => t('Web-to-Case'),
+    ),
+    '#ajax' => array(
+      'callback' => '_salesforce_entityform_form_settings_type_ajax_callback',
+      'wrapper' => 'salesforce-settings-container',
+    ),
+    '#required' => TRUE,
+  );
+
+  // Get currently selected salesforce entityfrom type.
+  $current_type = !empty($form_state['values']['salesforce_entityform_type']) ? $form_state['values']['salesforce_entityform_type'] : $salesforce_entityform_type;
+
+  $form['salesforce']['settings']['salesforce_entityform_oid'] = array(
     '#type' => 'textfield',
     '#title' => t('Salesforce OID'),
     '#description' => t('The OID value (shorthand for Organizational Wide Default) is your instance of Salesforce.com. That doesn’t show up in very many places, but if you navigate to Setup > Administration Setup > Company Profile > Company Information – you’ll see your OID listed as a field on that page as well.'),
     '#default_value' => $salesforce_entityform_oid,
-    '#size' => 15,
+    '#size' => 20,
     '#required' => TRUE,
+    '#access' => $current_type == 'web_to_lead',
   );
-  $form['salesfromce_settings']['salesforce_entityform_url'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_orgid'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Salesforce ORGID'),
+    '#description' => t('The ORGID value.'),
+    '#default_value' => variable_get('salesforce_entityform_orgid', ''),
+    '#size' => 20,
+    '#required' => TRUE,
+    '#access' => $current_type == 'web_to_case',
+  );
+
+  $form['salesforce']['settings']['salesforce_entityform_url'] = array(
     '#type' => 'textfield',
     '#title' => t('Salesforce URL'),
     '#default_value' => $salesforce_entityform_url,
     '#size' => 70,
     '#required' => TRUE,
   );
-  $form['salesfromce_settings']['salesforce_entityform_debug'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_debug'] = array(
     '#type' => 'checkbox',
     '#title' => t('<strong>DEBUG MODE</strong>'),
     '#default_value' => $salesforce_entityform_debug,
     '#description' => t('Check to enable debug mode'),
   );
-  $form['salesfromce_settings']['salesforce_entityform_debug_email'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_debug_email'] = array(
     '#type' => 'textfield',
     '#title' => t('<strong>Debug Email field</strong>'),
     '#default_value' => $salesforce_entityform_debug_email,
     '#states' => array('visible' => array(':input[name="salesforce_entityform_debug"]' => array('checked' => TRUE))),
     '#description' => t('Enter the Debug Email'),
   );
-  $form['salesfromce_settings']['salesforce_entityform_Campaign_ID'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_Campaign_ID'] = array(
     '#type' => 'textfield',
     '#title' => t('<strong>Campaign ID</strong>'),
     '#default_value' => $salesforce_entityform_Campaign_ID,
-    '#description' => t('Optional: Set the Campaign ID'),
+    '#description' => t('Set the Campaign ID'),
   );
-  $form['salesfromce_settings']['salesforce_entityform_retURL'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_retURL'] = array(
     '#type' => 'textfield',
     '#title' => t('<strong>Return URL</strong>'),
     '#default_value' => $salesforce_entityform_retURL,
-    '#description' => t('Optional: Set the Return URL'),
+    '#description' => t('Set the Return URL'),
+    '#required' => $current_type == 'web_to_case',
   );
-  $form['salesfromce_settings']['salesforce_entityform_recordType'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_recordType'] = array(
     '#type' => 'textfield',
     '#title' => t('<strong>Record Type</strong>'),
     '#default_value' => $salesforce_entityform_recordType,
-    '#description' => t('Optional: Set the Record Type'),
+    '#description' => t('Set the Record Type'),
   );
-  $form['salesfromce_settings']['salesforce_entityform_lead_source'] = array(
+
+  $form['salesforce']['settings']['salesforce_entityform_lead_source'] = array(
     '#type' => 'textfield',
     '#title' => t('<strong>Lead Source </strong>'),
     '#default_value' => $salesforce_entityform_lead_source,
-    '#description' => t('Optional: Lead Source Field'),
+    '#description' => t('Lead Source Field'),
+    '#states' => array(
+      'visible' => array(
+        ':input[name="salesforce_entityform_type"]' => array('value' => 'web_to_lead'),
+      ),
+    ),
   );
-  $form['salesfromce_settings']['sf_ef_http_request'] = array(
+
+  $form['salesforce']['settings']['sf_ef_http_request'] = array(
     '#type' => 'select',
     '#title' => t('<strong>Request Type</strong>'),
     '#default_value' => $salesforce_entityform_http_request,
     '#options' => array('drupal_http_request' => t("Drupal HTTP"), 'curl' => 'CURL'),
     '#description' => t('Optional: Set the Request format.'),
   );
+
   return system_settings_form($form);
 }
 
@@ -327,14 +377,26 @@ function salesforce_entityform_multivalue($value, $entityform, $field = array())
 function salesforce_entityform_hidden_fields() {
   // @TODO looking for community feedback whether to deactivate the fallback position of leadsource as node title or page title.
   $val = array();
-  $data['oid'] = variable_get('salesforce_entityform_oid', '');
+
+  $data['type'] = variable_get('salesforce_entityform_type', 'web-to-lead');
+  switch ($data['type']) {
+    case 'web_to_load':
+      $data['oid'] = variable_get('salesforce_entityform_oid', '');
+      $data['lead_source'] = variable_get('salesforce_entityform_lead_source', '');
+      break;
+
+    case 'web_to_case':
+      $data['orgid'] = variable_get('salesforce_entityform_oid', '');
+      break;
+  }
+
+  $data['orgid'] = variable_get('salesforce_entityform_orgid', '');
   $data['debug'] = variable_get('salesforce_entityform_debug', FALSE);
   $data['debugEmail'] = ($data['debug'] != '') ? variable_get('salesforce_entityform_debug_email', NULL) : '';
   $data['Campaign_ID'] = variable_get('salesforce_entityform_Campaign_ID', NULL);
   $data['retURL'] = variable_get('salesforce_entityform_retURL', NULL);
   $data['recordType'] = variable_get('salesforce_entityform_recordType', NULL);
   $data['submit'] = 'submit';
-  $data['lead_source'] = variable_get('salesforce_entityform_lead_source', '');
 
   foreach ($data as $key => $value) {
     if ($value != '') {
@@ -420,3 +482,13 @@ function salesforce_entityform_cron() {
   }
 
 }
+
+/**
+ * AJAX callback for salesforce form type change.
+ *
+ * @see salesforce_entityform_form_settings()
+ */
+function _salesforce_entityform_form_settings_type_ajax_callback($form, &$form_state) {
+  $form_state['rebuild'] = TRUE;
+  return $form['salesforce'];
+}
