Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 15922)
+++ wp-includes/post.php	(working copy)
@@ -5001,59 +5001,54 @@
  * @param array $args Arguments.
  * @param string $post_type Post type.
  */
-function wp_quickpress_form( $args = array(), $post_type = 'post'){
-	global $post_ID;
+function wp_quickpress_form( $args = array() ){
 
+    if (! isset( $args['post'] ) )
+        $post = null;
+    else
+        $post = $args['post'];
+
+    if (! isset( $args['post_id'] ) ){
+        $args['post_id'] = null;
+    }
+    if (! isset( $args['post_type'] ) ){
+        $args['post_type']  = null;
+    }
+
+
 	$fields = array(
 		'title' => array(
 			'capability' => '', // Capability to check before outputing field
-			'output' => '<h4 id="%s-title"><label for="title">'. __('Title') .'</label></h4>
+			'output' => '<h4 id="%1$s-title"><label for="title">'. __('Title') .'</label></h4>
 		<div class="input-text-wrap">
-			<input type="text" name="post_title" id="%s-title" tabindex="%d" autocomplete="off" value="'. esc_attr( $post->post_title ).'" />
+			<input type="text" name="post_title" id="%1$s-title" autocomplete="off" value="'. esc_attr( $post->post_title ).'" />
 		</div>'
 		),
-		'media_buttons' => array(
-			'capability' => 'upload_files',
-			'output' => '<div id="%s-media-buttons" class="hide-if-no-js">'. get_media_buttons() .'</div>',
-		),
 		'content' => array(
 			'capability' => '',
-			'output' => '<h4 id="%s-content-label"><label for="content">'. __('Content') .'</label></h4>
+			'output' => '<h4 id="%1$s-content-label"><label for="content">'. __('Content') .'</label></h4>
 		<div class="textarea-wrap">
-			<textarea name="content" id="%s-content" class="mceEditor" rows="3" cols="15" tabindex="%d">'. $post->post_content.'</textarea>
+			<textarea name="content" id="%1$s-content" class="mceEditor" rows="3" cols="15" >'. $post->post_content.'</textarea>
 		</div>
-			'."     <script type='text/javascript'>edCanvas = document.getElementById('content');edInsertContent = null;</script>
-		"
-
+		'
 		),
-		'tags' => array(
-			'capability' =>'',
-			'output' => '
-			<h4><label for="%s-tags-input">'. __('Tags') .'</label></h4>
-			<div class="input-text-wrap">
-				<input type="text" name="%s-tags_input" id="tags-input" tabindex="%d" value="'. get_tags_to_edit( $post->ID ) .'" />
-			</div>
-'
-		),
-
 	);
 
 	$hidden_fields = array(
-		'action' => '<input type="hidden" name="action" id="quickpost-action" value="'.$post_type.'-quickpress-save" />',
-		'post_id' => '<input type="hidden" name="quickpress_post_ID" value="'. $post_ID .'" />',
-		'post_type' => '<input type="hidden" name="post_type" value="'.$post_type.'" />',
+		'action' => '<input type="hidden" name="action" id="quickpost-action" value="'.$args['post_type'] .'-quickpress-save" />',
+		'post_id' => '<input type="hidden" name="quickpress_post_ID" value="'. $args['post_id']  .'" />',
+		'post_type' => '<input type="hidden" name="post_type" value="'. $args['post_type'] .'" />',
 	);
 
 	$submit_fields = array(
-		'save' => '<input type="submit" name="save" id="save-post" class="button" tabindex="%s" value="'.  esc_attr('Save Draft') .'" />',
+		'save' => '<input type="submit" name="save" id="save-post" class="button" value="'.  esc_attr('Save Draft') .'" />',
 		'reset' => '<input type="reset" tabindex="%s" value="'. esc_attr( 'Reset' ).'" class="button" />',
 	);
 
 	$publishing_action = current_user_can('publish_posts') ? esc_attr('Publish') : esc_attr('Submit for Review');
 
 	$publishing_fields = array(
-	'submit' => '<input type="submit" name="publish" id="publish" accesskey="p" tabindex="%s" class="button-primary" value="' . $publishing_action . '" />',
-	/*'test' => '<input type="submit" name="publish" id="publish" accesskey="p" tabindex="%n" class="button-primary" value="'. esc_attr('Publish') .'" />', */
+	'submit' => '<input type="submit" name="publish" id="publish" accesskey="p" class="button-primary" value="' . $publishing_action . '" />',
 
 	);
 
@@ -5072,30 +5067,31 @@
 		'publish_action_id' => 'publishing-action',
 		'hidden_and_submit_fields_container' => 'p',
 		'hidden_and_submit_fields_container_class' => 'submit',
-	);
+        'post_type' => 'post',
+        'post' => null,
+        'post_id' => null
+);
 
 	$args = wp_parse_args($args, $defaults);
 
-	$tabindex =  apply_filters( 'quickpress_tabindex_start', $args['tabindex_start'], $args['form_id']  );
-
 	if ( current_user_can( $args['default_cap'] ) ): ?>
 		<?php do_action('quickpress_form_before_form', $args['form_id'] ); ?>
 		<form name="post" action="<?php echo $args['action'] ?>" method="post" id="<?php echo $args['form_id']; ?>">
-			<?php do_action('quickpress_form_before_fields', $args['form_id']);
+			<?php do_action('quickpress_form_before_fields', $args);
 
-			$fields = apply_filters( 'quickpress_fields',  $args['fields'], $args['form_id'] );
+			$fields = apply_filters( 'quickpress_fields',  $args['fields'], $args );
 			foreach ($fields as $title => $field){
 				if ( empty( $field['capability'] ) || current_user_can( $field['capability'] ) ){
-					printf( $field['output'], $args['form_id'], $args['form_id'], $tabindex );
-					$tabindex++;
-				}
+					printf( $field['output'], $args['form_id'] );
+				    do_action('quickpress_form_field_after', $title, $args);
+                }
 			}
 			//Hidden Fields
-			do_action('quickpress_form_after_fields', $args['form_id'] );
+			do_action('quickpress_form_after_fields', $args );
 
 			echo "<{$args['hidden_and_submit_fields_container']} class='{$args['hidden_and_submit_fields_container_class']}'>";
 
-			$hidden_fields = apply_filters( 'quickpress_hidden_fields', $args['hidden_fields'] , $args['form_id'] );
+			$hidden_fields = apply_filters( 'quickpress_hidden_fields', $args['hidden_fields'] , $args );
 
 			foreach( $hidden_fields as $hidden_field )
 				echo $hidden_field;
@@ -5105,32 +5101,27 @@
 
 			// submit
 			foreach( $args['submit_fields'] as $submit_field )
-				printf( $submit_field, $tabindex++ );
+				echo  $submit_field;
 
 			// publish
 			echo "<{$args['publish_action_container']} id='{$args['publish_action_id']}'>";
 
-			$publishing_fields = apply_filters( 'quickpress_publishing_fields', $args['publishing_fields'] , $args['form_id'] );
+			$publishing_fields = apply_filters( 'quickpress_publishing_fields', $args['publishing_fields'] , $args );
 
-			foreach( $publishing_fields as $publishing_field) {
-				printf( $publishing_field, $tabindex );
-					$tabindex++;
-			}
+			foreach( $publishing_fields as $publishing_field)
+				echo  $publishing_field;
+			
 
-			if ($args['ajax'] == true)
-				echo '<img class="waiting" src="'. esc_url( admin_url( 'images/wpspin_light.gif' ) ) .'" />';
-
 			echo "</{$args['publish_action_container']}>";
 			echo "<br class='clear' />";
-			do_action( 'quickpress_form_after_submit_fields', $args['form_id']);
+			do_action( 'quickpress_form_after_submit_fields', $args);
 
 			echo "</{$args['hidden_and_submit_fields_container']}";
-		do_action( 'quickpress_form_after_form_content', $args['form_id']);
+		do_action( 'quickpress_form_after_form_content', $args );
 		echo '</form>';
-		do_action('quickpress_form_after_form', $args['form_id'] );
+		do_action( 'quickpress_form_after_form', $args );
 	else:
-		do_action( 'quickpress_form_no_form', $args['form_id'] );
+		do_action( 'quickpress_form_no_form', $args );
 	endif;
 }
-
 ?>
Index: wp-admin/includes/dashboard.php
===================================================================
--- wp-admin/includes/dashboard.php	(revision 15922)
+++ wp-admin/includes/dashboard.php	(working copy)
@@ -448,53 +448,68 @@
 	}
 
 	$post_ID = (int) $post->ID;
-?>
+    
+    $quickpress_args = array(
+        'post_id' => $post_ID,
+        'post' => $post,
+        'form_id' => 'dashboard_quick-press',
+        'post_type' => 'post',
+   );
 
-	<form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press">
-		<h4 id="quick-post-title"><label for="title"><?php _e('Title') ?></label></h4>
-		<div class="input-text-wrap">
-			<input type="text" name="post_title" id="title" tabindex="1" autocomplete="off" value="<?php echo esc_attr( $post->post_title ); ?>" />
-		</div>
+    wp_quickpress_form( $quickpress_args );
 
-		<?php if ( current_user_can( 'upload_files' ) ) : ?>
-		<div id="media-buttons" class="hide-if-no-js">
-			<?php do_action( 'media_buttons' ); ?>
-		</div>
-		<?php endif; ?>
+	if ( $drafts )
+		wp_dashboard_recent_drafts( $drafts );
+}
 
-		<h4 id="content-label"><label for="content"><?php _e('Content') ?></label></h4>
-		<div class="textarea-wrap">
-			<textarea name="content" id="content" class="mceEditor" rows="3" cols="15" tabindex="2"><?php echo $post->post_content; ?></textarea>
-		</div>
+function _dashboard_quickpress_media_buttons( $title,  $args){
+    if ( ! isset( $args['form_id'] ) || $args['form_id'] != 'dashboard_quick-press' || $title != 'title' )
+        return;
 
-		<script type="text/javascript">edCanvas = document.getElementById('content');edInsertContent = null;</script>
+    echo '<div id="'.$args['form_id'].'-media-buttons" class="hide-if-no-js">'. get_media_buttons() .'</div>';
+}
 
-		<h4><label for="tags-input"><?php _e('Tags') ?></label></h4>
-		<div class="input-text-wrap">
-			<input type="text" name="tags_input" id="tags-input" tabindex="3" value="<?php echo get_tags_to_edit( $post->ID ); ?>" />
-		</div>
+add_action( 'quickpress_form_field_after', '_dashboard_quickpress_media_buttons', 10 , 2 );
 
-		<p class="submit">
-			<input type="hidden" name="action" id="quickpost-action" value="post-quickpress-save" />
-			<input type="hidden" name="quickpress_post_ID" value="<?php echo $post_ID; ?>" />
-			<input type="hidden" name="post_type" value="post" />
-			<?php wp_nonce_field('add-post'); ?>
-			<input type="submit" name="save" id="save-post" class="button" tabindex="4" value="<?php esc_attr_e('Save Draft'); ?>" />
-			<input type="reset" value="<?php esc_attr_e( 'Reset' ); ?>" class="button" />
-			<span id="publishing-action">
-				<input type="submit" name="publish" id="publish" accesskey="p" tabindex="5" class="button-primary" value="<?php current_user_can('publish_posts') ? esc_attr_e('Publish') : esc_attr_e('Submit for Review'); ?>" />
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" />
-			</span>
-			<br class="clear" />
-		</p>
 
-	</form>
+function _dashboard_quickpress_publish_actions( $fields,  $args ) {
+    if ( ! isset( $args['form_id'] ) || $args['form_id'] != 'dashboard_quick-press' )
+           return $fields;
+    $ajax_field = array('ajax' => '<img class="waiting" src="'. esc_url( admin_url( 'images/wpspin_light.gif' ) ) .'" />' );
 
-<?php
-	if ( $drafts )
-		wp_dashboard_recent_drafts( $drafts );
+    return array_merge( $ajax_field , $fields);
+    }
+   
+add_filter('quickpress_publishing_fields' , '_dashboard_quickpress_publish_actions', 10, 2);
+
+function _dashboard_quickpress_non_hierarchical_taxonomy( $taxonomy_name , $args ){
+if (! taxonomy_exists( $taxonomy_name ) )
+        return;
+
+    $taxonomy = get_taxonomy($taxonomy_name);
+
+    $taxonomy_short_name = $taxonomy->query_var;
+    $taxonomy_title = $taxonomy->label;
+    
+    echo '<h4><label for="'.$args['form_id'].'-'.$taxonomy_short_name.'-input">'. __($taxonomy_title) .'</label></h4>
+          <div class="input-text-wrap"> 
+          <input type="text" name="'.$args['form_id'].'-'.$taxonomy_short_name.'_input" id="'.$taxonomy_short_name.'-input" value="" /> 
+          </div> ';
+
 }
 
+function _dashboard_quickpress_post_tags($title, $args){
+    if ( ! isset( $args['form_id'] ) || $args['form_id'] != 'dashboard_quick-press' || $title != 'content' )
+        return;
+    _dashboard_quickpress_non_hierarchical_taxonomy( 'post_tag' , $args );
+
+}
+
+add_action( 'quickpress_form_field_after' , '_dashboard_quickpress_post_tags' , 10, 2);
+
+
+
+
 function wp_dashboard_quick_press() {
 	echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
 }
Index: wp-admin/js/dashboard.dev.js
===================================================================
--- wp-admin/js/dashboard.dev.js	(revision 15922)
+++ wp-admin/js/dashboard.dev.js	(working copy)
@@ -47,7 +47,7 @@
 	/* QuickPress */
 	quickPressLoad = function() {
 		var act = $('#quickpost-action'), t;
-		t = $('#quick-press').submit( function() {
+		t = $('#dashboard_quick-press').submit( function() {
 			$('#dashboard_quick_press #publishing-action img.waiting').css('visibility', 'visible');
 			$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').attr('disabled','disabled');
 
Index: wp-admin/css/dashboard.dev.css
===================================================================
--- wp-admin/css/dashboard.dev.css	(revision 15922)
+++ wp-admin/css/dashboard.dev.css	(working copy)
@@ -262,7 +262,7 @@
 
 /* QuickPress */
 
-#dashboard_quick_press h4 {
+#dashboard_quick-press h4 {
 	font-family: Verdana, Arial, "Bitstream Vera Sans", sans-serif;
 	float: left;
 	width: 5.5em;
@@ -273,8 +273,8 @@
 	font-size: 12px;
 }
 
-#dashboard_quick_press h4 label {
-	margin-right: 10px;
+#dashboard_quick-press h4 label {
+	margin-right: 8px;
 }
 
 #dashboard_quick_press .input-text-wrap,
@@ -282,13 +282,29 @@
 	margin: 0 0 1em 5em;
 }
 
-#dashboard_quick_press #media-buttons {
+#dashboard_quick_press #dashboard_quick-press-media-buttons {
 	margin: 0 0 .5em 5em;
 	padding: 0 0 0 10px;
 	font-size: 11px;
 }
 
-#dashboard_quick_press #media-buttons a {
+#dashboard_quick-press-media-buttons { 
+    cursor: default; 
+    padding: 8px 8px 0; 
+} 
+                                 
+#dashboard_quick-press-media-buttons a { 
+    cursor: pointer; 
+    padding: 0 0 5px 10px; 
+} 
+                                                                 
+                                                                    #dashboard_quick-press-media-buttons img, 
+                                                                        { 
+                                                                                        vertical-align: middle; 
+                                                                        } 
+
+
+#dashboard_quick-press #dashboard_quick-press-media-buttons a {
 	vertical-align: bottom;
 }
 
