Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.337
diff -u -p -r1.337 form.inc
--- includes/form.inc	24 May 2009 17:39:30 -0000	1.337
+++ includes/form.inc	28 May 2009 12:49:18 -0000
@@ -2356,7 +2356,15 @@ function theme_vertical_tabs($element) {
   drupal_add_js('misc/vertical-tabs.js', array('weight' => JS_DEFAULT - 1));
   drupal_add_css('misc/vertical-tabs.css');
 
-  return '<div class="vertical-tabs-panes">' . $element['#children'] . '</div>';
+  // Make sure not to overwrite classes.
+  if (isset($element['#attributes']['class'])) {
+    $element['#attributes']['class'] = 'vertical-tabs-panes ' . $element['#attributes']['class'];
+  }
+  else {
+    $element['#attributes']['class'] = 'vertical-tabs-panes';
+  }
+
+  return '<div ' . drupal_attributes($element['#attributes']) . '>' . $element['#children'] . '</div>';
 }
 
 /**
Index: misc/vertical-tabs.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/vertical-tabs.js,v
retrieving revision 1.4
diff -u -p -r1.4 vertical-tabs.js
--- misc/vertical-tabs.js	27 Apr 2009 20:19:35 -0000	1.4
+++ misc/vertical-tabs.js	28 May 2009 12:49:18 -0000
@@ -20,7 +20,15 @@ Drupal.behaviors.verticalTabs = {
       var focus;
       // Create the tab column.
       var list = $('<ul class="vertical-tabs-list"></ul>');
-      $(this).wrap('<div class="vertical-tabs clearfix"></div>').before(list);
+      
+      // Propagate the form-meta-element class to the vertical tabs
+      // container, if we have that.
+      var extraClass = '';
+      if ($(this).hasClass('form-meta-element')) {
+        extraClass = ' form-meta-element';
+        $(this).removeClass('form-meta-element');
+      }
+      $(this).wrap('<div class="vertical-tabs clearfix' + extraClass + '"></div>').before(list);
 
       // Transform each fieldset into a tab.
       $('> fieldset', this).each(function () {
Index: modules/node/node.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.css,v
retrieving revision 1.7
diff -u -p -r1.7 node.css
--- modules/node/node.css	30 Mar 2009 03:15:40 -0000	1.7
+++ modules/node/node.css	28 May 2009 12:49:18 -0000
@@ -43,3 +43,27 @@ td.revision-current {
   display: inline;
 }
 
+#node-form-components-menu {
+  float: right;
+  width: 20%;
+  text-align: right;
+}
+#node-form-components-menu a {
+  font-weight: bold;
+}
+#node-form-components-menu a.link-disabled {
+  color: #cdcdcd;
+}
+#node-form .node-form {
+  float: left;
+  width: 80%;
+}
+#node-form-buttons {
+  margin-top: 0.5em;
+  float: right;
+}
+#node-form-buttons input {
+  display: block;
+  margin: 0.5em 0;
+  width: 120px;
+}
Index: modules/node/node.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.js,v
retrieving revision 1.4
diff -u -p -r1.4 node.js
--- modules/node/node.js	27 Apr 2009 20:19:37 -0000	1.4
+++ modules/node/node.js	28 May 2009 12:49:18 -0000
@@ -32,4 +32,42 @@ Drupal.behaviors.nodeFieldsetSummaries =
   }
 };
 
+Drupal.behaviors.nodeEditMeta = {
+  attach: function (context) {
+
+    // Add node components menu area for content/meta links and buttons.
+    $('#node-form .node-form').before('<div id="node-form-components-menu"><a href="" id="show-node-content-edit">' + Drupal.t('Content') + '</a> | <a href="" id="show-node-meta-edit">' + Drupal.t('Meta') + '</a><div id="node-form-buttons"></div></div>');
+    
+    // Move buttons to the form components menu area.
+    $('#node-form-components-menu #node-form-buttons').append($('#node-form .form-submit'));
+    
+    $('#node-form .node-form .standard').after('<div id="node-meta-elements"></div>');
+    $('#node-meta-elements').append($('.form-meta-element'));
+    
+    // Add click functionality to show and hide meta elements.
+    $('#node-form-components-menu a').click(function() { 
+      switch ($(this).attr('id')) {
+        case 'show-node-content-edit':
+          $('#node-meta-elements').hide();
+          $('#node-form .node-form .standard').show();
+          $('#show-node-content-edit').addClass('link-disabled');
+          $('#show-node-meta-edit').removeClass('link-disabled');
+          break;
+        case 'show-node-meta-edit':
+          $('#node-meta-elements').show();
+          $('#node-form .node-form .standard').hide();
+          $('#show-node-meta-edit').addClass('link-disabled');
+          $('#show-node-content-edit').removeClass('link-disabled');
+          break;
+      }
+      // Avoid default click action to fire.
+      return false; 
+    });
+    
+    // Hide the meta elements by default.
+    $('#node-meta-elements').hide();
+    $('#show-node-content-edit').addClass('link-disabled');
+  }
+};
+
 })(jQuery);
Index: modules/node/node.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v
retrieving revision 1.66
diff -u -p -r1.66 node.pages.inc
--- modules/node/node.pages.inc	25 May 2009 15:39:12 -0000	1.66
+++ modules/node/node.pages.inc	28 May 2009 12:49:18 -0000
@@ -156,6 +156,7 @@ function node_form(&$form_state, $node) 
 
   $form['additional_settings'] = array(
     '#type' => 'vertical_tabs',
+    '#attributes' => array('class' => 'form-meta-element'), 
   );
 
   // Add a log field if the "Create new revision" option is checked, or if the
