diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/components/date.inc webform/components/date.inc
--- webform.orig/components/date.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/components/date.inc	2013-02-19 17:59:27.280306220 +0200
@@ -119,6 +119,10 @@
 function _webform_render_date($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
+  $default = $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'];
+
+  _web_form_setup_textfield($component, $default);
+
   $element = array(
     '#type' => 'date',
     '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
@@ -129,7 +133,7 @@
     '#start_date' => trim($component['extra']['start_date']),
     '#end_date' => trim($component['extra']['end_date']),
     '#year_textfield' => $component['extra']['year_textfield'],
-    '#default_value' => $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'],
+    '#default_value' => $default,
     '#timezone' => $component['extra']['timezone'],
     '#process' => array('webform_expand_date'),
     '#theme' => 'webform_date',
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/components/email.inc webform/components/email.inc
--- webform.orig/components/email.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/components/email.inc	2013-02-19 17:57:34.828890454 +0200
@@ -114,11 +114,15 @@
   global $user;
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
+  $default = $filter ? _webform_filter_values($component['value'], $node) : $component['value'];
+
+  _web_form_setup_textfield($component, $default);
+
   $element = array(
     '#type' => 'webform_email',
     '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
-    '#default_value' => $filter ? _webform_filter_values($component['value'], $node) : $component['value'],
+    '#default_value' => $default,
     '#required' => $component['mandatory'],
     '#weight' => $component['weight'],
     '#description' => $filter ? _webform_filter_descriptions($component['extra']['description'], $node) : $component['extra']['description'],
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/components/number.inc webform/components/number.inc
--- webform.orig/components/number.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/components/number.inc	2013-02-19 17:57:14.732280797 +0200
@@ -250,10 +250,14 @@
 function _webform_render_number($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
+  $default = $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'];
+
+  _web_form_setup_textfield($component, $default);
+
   $element = array(
     '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
-    '#default_value' => $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'],
+    '#default_value' => $default,
     '#required' => $component['mandatory'],
     '#weight' => $component['weight'],
     '#field_prefix' => empty($component['extra']['field_prefix']) ? NULL : ($filter ? _webform_filter_xss($component['extra']['field_prefix']) : $component['extra']['field_prefix']),
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/components/textarea.inc webform/components/textarea.inc
--- webform.orig/components/textarea.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/components/textarea.inc	2013-02-19 18:01:24.007861733 +0200
@@ -100,11 +100,15 @@
 function _webform_render_textarea($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
+  $default = $filter ? _webform_filter_values($component['value'], $node) : $component['value'];
+
+  _web_form_setup_textfield($component, $default);
+
   $element = array(
     '#type' => 'textarea',
     '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
-    '#default_value' => $filter ? _webform_filter_values($component['value'], $node) : $component['value'],
+    '#default_value' => $default,
     '#required' => $component['mandatory'],
     '#weight' => $component['weight'],
     '#description' => $filter ? _webform_filter_descriptions($component['extra']['description'], $node) : $component['extra']['description'],
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/components/textfield.inc webform/components/textfield.inc
--- webform.orig/components/textfield.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/components/textfield.inc	2013-02-19 18:19:30.108919654 +0200
@@ -124,11 +124,15 @@
 function _webform_render_textfield($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
+  $default = $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'];
+
+  _web_form_setup_textfield($component, $default);
+
   $element = array(
     '#type' => 'textfield',
     '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
-    '#default_value' => $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'],
+    '#default_value' => $default,
     '#required' => $component['mandatory'],
     '#weight' => $component['weight'],
     '#field_prefix' => empty($component['extra']['field_prefix']) ? NULL : ($filter ? _webform_filter_xss($component['extra']['field_prefix']) : $component['extra']['field_prefix']),
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/components/time.inc webform/components/time.inc
--- webform.orig/components/time.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/components/time.inc	2013-02-19 17:59:25.432249924 +0200
@@ -100,6 +100,10 @@
 function _webform_render_time($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
 
+  $default = $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'];
+
+  _web_form_setup_textfield($component, $default);
+
   $element = array(
     '#type' => 'webform_time',
     '#title' => $filter ? _webform_filter_xss($component['name']) : $component['name'],
@@ -110,7 +114,7 @@
     '#element_validate' => array('webform_validate_time'),
     '#hourformat' => $component['extra']['hourformat'],
     '#minuteincrements' => $component['extra']['minuteincrements'],
-    '#default_value' => $filter ? _webform_filter_values($component['value'], $node, NULL, NULL, FALSE) : $component['value'],
+    '#default_value' => $default,
     '#timezone' => $component['extra']['timezone'],
     '#process' => array('webform_expand_time'),
     '#theme' => 'webform_time',
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/includes/webform.components.inc webform/includes/webform.components.inc
--- webform.orig/includes/webform.components.inc	2012-09-15 09:42:49.000000000 +0300
+++ webform/includes/webform.components.inc	2013-02-19 15:39:53.392569856 +0200
@@ -422,6 +422,7 @@
         '#options' => array(
           'before' => t('Above'),
           'inline' => t('Inline'),
+          'inside' => t('Inside'),
           'none' => t('None'),
         ),
         '#description' => t('Determines the placement of the component\'s label.'),
diff '--exclude=*~' '--exclude=*.b[ac]k' --exclude .svn --exclude .libs --exclude .deps --exclude autom4te.cache -Naur webform.orig/webform.module webform/webform.module
--- webform.orig/webform.module	2012-09-15 09:42:49.000000000 +0300
+++ webform/webform.module	2013-02-19 19:13:15.271187102 +0200
@@ -2528,6 +2528,12 @@
  * a different property to ensure that validation has occurred.
  */
 function _webform_client_form_validate(&$elements, &$form_state, $form_id = NULL, $input_values = NULL) {
+  // TODO: Validate out the default values when using Inside labels
+  //var_dump($form_state["build_info"]["args"][0]->webform['components'][1]['extra']['title_display']);
+  //if($elements["#node"]["webform"]['components'][1]['title_display'] == 'inside')
+  //$form_state['values']
+  // $form_state["build_info"]["args"][0]->webform[1]['title_display']
+
   // Webform-specific enhancement, only validate the field if it was used in
   // this submission. This both skips validation on the field and sets the value
   // of the field to NULL, preventing any dangerous input.
@@ -3025,6 +3031,7 @@
 
     case 'none':
     case 'attribute':
+    case 'inside':
       // Output no label and no required marker, only the children.
       $output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
       break;
@@ -3999,3 +4006,16 @@
 
   return $form_info;
 }
+
+/**
+ * An internal function.
+ */
+function _web_form_setup_textfield(&$component, &$default) {
+  if($component['extra']['title_display'] == 'inside') {
+    if($default == "") {
+      $default = $component['name'];
+      $component['extra']['attributes']['onfocus'] = "if(this.value==this.defaultValue) this.value=''";
+      $component['extra']['attributes']['onblur'] = "if(this.value=='') this.value=this.defaultValue";
+    }
+  }
+}
\ No newline at end of file
