Index: wp-admin/admin.php
===================================================================
--- wp-admin/admin.php	(revision 10339)
+++ wp-admin/admin.php	(working copy)
@@ -97,7 +97,10 @@
 
 	exit();
 } else if (isset($_GET['import'])) {
-
+	wp_enqueue_script('swfupload-swfobject');
+	wp_enqueue_script('swfupload-queue');
+	wp_enqueue_script('swfupload-handlers');
+	wp_admin_css('media');
 	$importer = $_GET['import'];
 
 	if ( ! current_user_can('import') )
@@ -108,10 +111,8 @@
 	}
 
 	// Allow plugins to define importers as well
-	if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2]))
-	{
-		if (! file_exists(ABSPATH . "wp-admin/import/$importer.php"))
-		{
+	if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2])) {
+		if (! file_exists(ABSPATH . "wp-admin/import/$importer.php")) {
 			wp_die(__('Cannot load importer.'));
 		}
 		include(ABSPATH . "wp-admin/import/$importer.php");
Index: wp-admin/import/livejournal.php
===================================================================
--- wp-admin/import/livejournal.php	(revision 10339)
+++ wp-admin/import/livejournal.php	(working copy)
@@ -35,8 +35,20 @@
 
 	function greet() {
 		echo '<div class="narrow">';
-		echo '<p>'.__('Howdy! Upload your LiveJournal XML export file and we&#8217;ll import the posts into this blog.').'</p>';
-		echo '<p>'.__('Choose a LiveJournal XML file to upload, then click Upload file and import.').'</p>';
+		echo '<p>'.__('Howdy! Let\'s get your LiveJournal posts imported into this blog.').'</p>';
+		echo '<ol>';
+		echo '<li>'.__('Use the <a href="http://www.livejournal.com/export.bml" target="_blank">LiveJournal Export Journal tool</a> to export all of your posts. You will need to export each month separately, and save the files to your computer. Use these options when exporting:');
+			echo '<ul>';
+			echo '<li>'.__('<strong>Export what:</strong> Journal entries').'</li>';
+			echo '<li>'.__('<strong>Select month:</strong> yyyy: (each year) - mm: (each month) [LJ only allows you to export one month at a time, so you should go through each month of each year that you have posts for and create a separate export file.]').'</li>';
+			echo '<li>'.__('<strong>Format:</strong> XML').'</li>';
+			echo '<li>'.__('<strong>Header:</strong> Checked').'</li>';
+			echo '<li>'.__('<strong>Encoding:</strong> Unicode (UTF-8)').'</li>';
+			echo '<li>'.__('<strong>Do not translate between encodings:</strong> Unchecked').'</li>';
+			echo '<li>'.__('<strong>Fields:</strong> Check All').'</li>';
+			echo '</ul></li>';
+		echo '<li>'.__('Come back here when you\'re done and upload each file using the form below to import the entries into this blog.').'</li>';
+		echo '</ol>';
 		wp_import_upload_form("admin.php?import=livejournal&amp;step=1");
 		echo '</div>';
 	}
@@ -74,6 +86,14 @@
 			$post_content = preg_replace_callback('|<(/?[A-Z]+)|', create_function('$match', 'return "<" . strtolower($match[1]);'), $post_content);
 			$post_content = str_replace('<br>', '<br />', $post_content);
 			$post_content = str_replace('<hr>', '<hr />', $post_content);
+			// Links to other LJ users
+			$post_content = preg_replace('|<lj\s+user\s*=\s*["\']([\w-]+)["\']>|', '<a href="http://$1.livejournal.com/" class="lj-user">$1</a>', $post_content);
+			// lj-cut ==> <!--more-->
+			$post_content = str_replace(array('<lj-cut>', '</lj-cut>'), array('<!--more-->', ''), $post_content);
+			// Remove all but the first <!--more-->
+			$first = strpos($post_content, '<!--more-->');
+			$post_content = str_replace(substr($post_content, $first + 1), str_replace('<!--more-->', '', substr($post_content, $first + 1)), $post_content);
+			
 			$post_content = $wpdb->escape($post_content);
 
 			$post_author = $current_user->ID;
Index: wp-admin/import/rss.php
===================================================================
--- wp-admin/import/rss.php	(revision 10339)
+++ wp-admin/import/rss.php	(working copy)
@@ -118,9 +118,9 @@
 		echo '<ol>';
 
 		foreach ($this->posts as $post) {
-			echo "<li>".__('Importing post...');
-
+			echo "<li>";
 			extract($post);
+			printf(__('Importing post <em>%s</em>...'), stripslashes($post_title));
 
 			if ($post_id = post_exists($post_title, $post_content, $post_date)) {
 				_e('Post already imported');
Index: wp-admin/includes/import.php
===================================================================
--- wp-admin/includes/import.php	(revision 10339)
+++ wp-admin/includes/import.php	(working copy)
@@ -59,28 +59,34 @@
  * @return array
  */
 function wp_import_handle_upload() {
-	$overrides = array( 'test_form' => false, 'test_type' => false );
-	$_FILES['import']['name'] .= '.import';
-	$file = wp_handle_upload( $_FILES['import'], $overrides );
+	if (!empty($_FILES['import'])) {
+		// Handle upload of file and storage as attachment
+		$overrides = array( 'test_form' => false, 'test_type' => false );
+		$_FILES['import']['name'] .= '.import';
+		$file = wp_handle_upload( $_FILES['import'], $overrides );
 
-	if ( isset( $file['error'] ) )
-		return $file;
+		if ( isset( $file['error'] ) )
+			return $file;
 
-	$url = $file['url'];
-	$type = $file['type'];
-	$file = addslashes( $file['file'] );
-	$filename = basename( $file );
+		$url = $file['url'];
+		$type = $file['type'];
+		$file = addslashes( $file['file'] );
+		$filename = basename( $file );
 
-	// Construct the object array
-	$object = array( 'post_title' => $filename,
-		'post_content' => $url,
-		'post_mime_type' => $type,
-		'guid' => $url
-	);
+		// Construct the object array
+		$object = array( 'post_title' => $filename,
+			'post_content' => $url,
+			'post_mime_type' => $type,
+			'guid' => $url
+		);
 
-	// Save the data
-	$id = wp_insert_attachment( $object, $file );
-
+		// Save the data
+		$id = wp_insert_attachment( $object, $file );
+	} else {
+		// Populate details based on ID passed in from async upload
+		$id = $_REQUEST['attachment_id'];
+		$file = get_attached_file($id);
+	}
 	return array( 'file' => $file, 'id' => $id );
 }
 
Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 10339)
+++ wp-admin/includes/template.php	(working copy)
@@ -2693,18 +2693,92 @@
 function wp_import_upload_form( $action ) {
 	$bytes = apply_filters( 'import_upload_size_limit', wp_max_upload_size() );
 	$size = wp_convert_bytes_to_hr( $bytes );
+	
+	// If Mac and mod_security, no Flash. :(
+	$flash = true;
+	if ( false !== strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'mac') && apache_mod_loaded('mod_security') )
+		$flash = false;
+
+	if (isset($_REQUEST['flash']) && '0' == $_REQUEST['flash'])
+		$flash = false;
+
+	$flash = apply_filters('import_flash_uploader', $flash);
 ?>
+
 <form enctype="multipart/form-data" id="import-upload-form" method="post" action="<?php echo attribute_escape($action) ?>">
-<p>
-<?php wp_nonce_field('import-upload'); ?>
-<label for="upload"><?php _e( 'Choose a file from your computer:' ); ?></label> (<?php printf( __('Maximum size: %s' ), $size ); ?>)
-<input type="file" id="upload" name="import" size="25" />
-<input type="hidden" name="action" value="save" />
-<input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" />
-</p>
-<p class="submit">
-<input type="submit" class="button" value="<?php _e( 'Upload file and import' ); ?>" />
-</p>
+
+<?php if ( $flash ) : ?>
+<script type="text/javascript">
+<!--
+SWFUpload.onload = function() {
+	post_id = 0;
+	import_nonce = '<?php echo wp_create_nonce('import-upload'); ?>';
+	swfu = new SWFUpload({
+			button_text: '<span class="button"><?php _e('Choose File'); ?></span>',
+			button_text_style: '.button { text-align: center; font-weight: bold; font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana,sans-serif; }',
+			button_height: "24",
+			button_width: "132",
+			button_image_url: '<?php echo includes_url('images/upload.png'); ?>',
+			button_placeholder_id: "flash-browse-button",
+			upload_url : "<?php echo attribute_escape( admin_url('async-upload.php') ); ?>",
+			flash_url : "<?php echo includes_url('js/swfupload/swfupload.swf'); ?>",
+			file_post_name: "async-upload",
+			file_types: "<?php echo apply_filters('import_upload_file_glob', '*.*'); ?>",
+			file_upload_limit: 1,
+			post_params : {
+				"auth_cookie" : "<?php if ( is_ssl() ) echo $_COOKIE[SECURE_AUTH_COOKIE]; else echo $_COOKIE[AUTH_COOKIE]; ?>",
+				"_wpnonce" : "<?php echo wp_create_nonce('media-form'); ?>",
+				"short" : "true",
+			},
+			file_size_limit : "<?php echo $bytes; ?>b",
+			file_dialog_start_handler : fileDialogStart,
+			file_queued_handler : fileQueued,
+			upload_start_handler : uploadStart,
+			upload_progress_handler : uploadProgress,
+			upload_error_handler : uploadError,
+			upload_success_handler : importUploadSuccess,
+			upload_complete_handler : uploadComplete,
+			file_queue_error_handler : fileQueueError,
+			file_dialog_complete_handler : fileDialogComplete,
+			swfupload_pre_load_handler: swfuploadPreLoad,
+			swfupload_load_failed_handler: swfuploadLoadFailed,
+			custom_settings : {
+				degraded_element_id : "html-upload-ui", // id of the element displayed when swfupload is unavailable
+				swfupload_element_id : "flash-upload-ui" // id of the element displayed when swfupload is available
+			},
+			debug: false
+		});
+};
+//-->
+</script>
+
+<div id="flash-upload-ui">
+<?php do_action('pre-flash-import-upload-ui'); ?>
+	<div id="flash-upload-msg"><?php _e( 'Click the button to choose a file to import' ); ?> <div id="flash-browse-button"></div></div>
+	<?php media_upload_flash_bypass() ?>
+	<div id="media-items"></div>
+<?php do_action('post-flash-import-upload-ui'); ?>
+</div>
+<div id="media-upload-error"></div>
+<?php endif; // $flash ?>
+
+<div id="html-upload-ui">
+<?php do_action('pre-html-import-upload-ui'); ?>
+	<p id="async-upload-wrap">
+		<?php wp_nonce_field('import-upload'); ?>
+		<label for="upload"><?php _e( 'Choose a file from your computer:' ); ?></label> (<?php printf( __('Maximum size: %s' ), $size ); ?>)
+		<input type="file" id="upload" name="import" size="25" />
+		<input type="hidden" name="action" value="save" />
+		<input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" />
+	</p>
+	<?php media_upload_html_bypass() ?>
+	<p class="submit">
+		<input type="submit" class="button" value="Upload &amp; Import" />
+	</p>
+	
+<?php do_action('post-html-import-upload-ui'); ?>
+</div>
+
 </form>
 <?php
 }
Index: wp-admin/wp-admin.css
===================================================================
--- wp-admin/wp-admin.css	(revision 10339)
+++ wp-admin/wp-admin.css	(working copy)
@@ -2940,3 +2940,8 @@
 	line-height: 1;
 	padding-left: 25px;
 }
+
+ol {
+	list-style-type: decimal;
+	margin-left: 2em;
+}
Index: wp-includes/js/swfupload/handlers.dev.js
===================================================================
--- wp-includes/js/swfupload/handlers.dev.js	(revision 10340)
+++ wp-includes/js/swfupload/handlers.dev.js	(working copy)
@@ -285,3 +285,21 @@
 	});
 }
 })(jQuery);
+
+// Success handler for the import tools instance of the uploader
+function importUploadSuccess(fileObj, serverData) {
+	// if async-upload returned an error message, place it in the media item div and return
+	if ( serverData.match('media-upload-error') ) {
+		jQuery('#media-item-' + fileObj.id).html(serverData);
+		return;
+	}
+	
+	// Remove progress bar
+	jQuery('#media-item-' + fileObj.id + ' .progress').remove();
+	
+	// Add the link to go to the next step, indicating which attachment is the data file
+	jQuery('#media-item-' + fileObj.id).append('<a href="' + document.location.href + '&step=1&action=save&attachment_id=' + serverData + '&_wpnonce=' + import_nonce + '&_wp_http_referer=' + escape(document.location.href) + '" class="describe-toggle-on">' + swfuploadL10n.import_continue + '</a>');
+	
+	// Remove the upload button to prevent them from trying to upload more
+	jQuery('#flash-upload-msg').remove()
+}
Index: wp-includes/js/swfupload/handlers.js
===================================================================
--- wp-includes/js/swfupload/handlers.js	(revision 10340)
+++ wp-includes/js/swfupload/handlers.js	(working copy)
@@ -1 +1 @@
-function fileDialogStart(){jQuery("#media-upload-error").empty()}function fileQueued(a){jQuery(".media-blank").remove();if(jQuery(".type-form #media-items>*").length==1&&jQuery("#media-items .hidden").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery("#media-items").append('<div id="media-item-'+a.id+'" class="media-item child-of-'+post_id+'"><div class="progress"><div class="bar"></div></div><div class="filename original">'+a.name+"</div></div>");jQuery("#media-item-"+a.id+" .progress").show();jQuery("#insert-gallery").attr("disabled","disabled")}function uploadStart(a){return true}function uploadProgress(c,a,b){jQuery("#media-item-"+c.id+" .bar").width(620*a/b);if(a==b){jQuery("#media-item-"+c.id+" .bar").html('<strong class="crunching">'+swfuploadL10n.crunching+"</strong>")}}function prepareMediaItem(b,a){jQuery("#media-item-"+b.id+" .bar").remove();jQuery("#media-item-"+b.id+" .progress").hide();var c=(typeof shortform=="undefined")?1:2;if(isNaN(a)||!a){jQuery("#media-item-"+b.id).append(a);prepareMediaItemInit(b)}else{jQuery("#media-item-"+b.id).load("async-upload.php",{attachment_id:a,fetch:c},function(){prepareMediaItemInit(b);updateMediaForm()})}}function prepareMediaItemInit(a){jQuery("#media-item-"+a.id+" .thumbnail").clone().attr("className","pinkynail toggle").prependTo("#media-item-"+a.id);jQuery("#media-item-"+a.id+" .filename.original").replaceWith(jQuery("#media-item-"+a.id+" .filename.new"));jQuery("#media-item-"+a.id+" a.toggle").bind("click",function(){jQuery(this).siblings(".slidetoggle").slideToggle(150,function(){var b=jQuery(this).offset();window.scrollTo(0,b.top-36)});jQuery(this).parent().eq(0).children(".toggle").toggle();jQuery(this).siblings("a.toggle").focus();return false});jQuery("#media-item-"+a.id+" a.delete").bind("click",function(){jQuery.ajax({url:"admin-ajax.php",type:"post",success:deleteSuccess,error:deleteError,id:a.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"delete-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")}});return false});jQuery("#media-item-"+a.id+".startopen").removeClass("startopen").slideToggle(500).parent().eq(0).children(".toggle").toggle()}function itemAjaxError(c,b){var a=jQuery("#media-item-error"+c);a.html('<div class="file-error"><button type="button" id="dismiss-'+c+'" class="button dismiss">'+swfuploadL10n.dismiss+"</button>"+b+"</div>");jQuery("#dismiss-"+c).click(function(){jQuery(this).parents(".file-error").slideUp(200,function(){jQuery(this).empty()})})}function deleteSuccess(b,c){if(b=="-1"){return itemAjaxError(this.id,"You do not have permission. Has your session expired?")}if(b=="0"){return itemAjaxError(this.id,"Could not be deleted. Has it been deleted already?")}var a=jQuery("#media-item-"+this.id);if(type=jQuery("#type-of-"+this.id).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-1)}if(a.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-1)}if(jQuery(".type-form #media-items>*").length==1&&jQuery("#media-items .hidden").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery("#media-item-"+this.id+" .filename:empty").remove();jQuery("#media-item-"+this.id+" .filename").append(' <span class="file-error">'+swfuploadL10n.deleted+"</span>").siblings("a.toggle").remove();jQuery("#media-item-"+this.id).children(".describe").css({backgroundColor:"#fff"}).end().animate({backgroundColor:"#ffc0c0"},{queue:false,duration:50}).animate({minHeight:0,height:36},400,null,function(){jQuery(this).children(".describe").remove()}).animate({backgroundColor:"#fff"},400).animate({height:0},800,null,function(){jQuery(this).remove();updateMediaForm()});return}function deleteError(c,b,a){}function updateMediaForm(){storeState();if(jQuery(".type-form #media-items>*").length==1){jQuery("#media-items .slidetoggle").slideDown(500).parent().eq(0).children(".toggle").toggle();jQuery(".type-form .slidetoggle").siblings().addClass("hidden")}if(jQuery("#media-items>*").not(".media-blank").length>0){jQuery(".savebutton").show()}else{jQuery(".savebutton").hide()}if(jQuery("#media-items>*").length>1){jQuery(".insert-gallery").show()}else{jQuery(".insert-gallery").hide()}}function uploadSuccess(b,a){if(a.match("media-upload-error")){jQuery("#media-item-"+b.id).html(a);return}prepareMediaItem(b,a);updateMediaForm();if(jQuery("#media-item-"+b.id).hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(1*jQuery("#attachments-count").text()+1)}}function uploadComplete(a){if(swfu.getStats().files_queued==0){jQuery("#insert-gallery").attr("disabled","")}}function wpQueueError(a){jQuery("#media-upload-error").show().text(a)}function wpFileError(b,a){jQuery("#media-item-"+b.id+" .filename").after('<div class="file-error"><button type="button" id="dismiss-'+b.id+'" class="button dismiss">'+swfuploadL10n.dismiss+"</button>"+a+"</div>").siblings(".toggle").remove();jQuery("#dismiss-"+b.id).click(function(){jQuery(this).parents(".media-item").slideUp(200,function(){jQuery(this).remove()})})}function fileQueueError(c,a,b){if(a==SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){wpQueueError(swfuploadL10n.queue_limit_exceeded)}else{if(a==SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT){fileQueued(c);wpFileError(c,swfuploadL10n.file_exceeds_size_limit)}else{if(a==SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE){fileQueued(c);wpFileError(c,swfuploadL10n.zero_byte_file)}else{if(a==SWFUpload.QUEUE_ERROR.INVALID_FILETYPE){fileQueued(c);wpFileError(c,swfuploadL10n.invalid_filetype)}else{wpQueueError(swfuploadL10n.default_error)}}}}}function fileDialogComplete(b){try{if(b>0){this.startUpload()}}catch(a){this.debug(a)}}function swfuploadPreLoad(){var a=jQuery("#"+swfu.customSettings.swfupload_element_id).get(0);jQuery("#"+swfu.customSettings.degraded_element_id).hide();if(a&&!a.style.display){a.style.display="block"}}function swfuploadLoadFailed(){jQuery("#"+swfu.customSettings.swfupload_element_id).hide();jQuery("#"+swfu.customSettings.degraded_element_id).show()}function uploadError(c,a,b){if(a==SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL){wpFileError(c,swfuploadL10n.missing_upload_url)}else{if(a==SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED){wpFileError(c,swfuploadL10n.upload_limit_exceeded)}else{wpFileError(c,swfuploadL10n.default_error)}}if(a==SWFUpload.UPLOAD_ERROR.HTTP_ERROR){wpQueueError(swfuploadL10n.http_error)}else{if(a==SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED){wpQueueError(swfuploadL10n.upload_failed)}else{if(a==SWFUpload.UPLOAD_ERROR.IO_ERROR){wpQueueError(swfuploadL10n.io_error)}else{if(a==SWFUpload.UPLOAD_ERROR.SECURITY_ERROR){wpQueueError(swfuploadL10n.security_error)}else{if(a==SWFUpload.UPLOAD_ERROR.FILE_CANCELLED){wpQueueError(swfuploadL10n.security_error)}}}}}}var storeState;(function(a){storeState=function(){var c=getUserSetting("align")||"",b=getUserSetting("imgsize")||"";a('tr.align input[type="radio"]').click(function(){setUserSetting("align",a(this).val())}).filter(function(){if(a(this).val()==c){return true}return false}).attr("checked","checked");a('tr.image-size input[type="radio"]').click(function(){setUserSetting("imgsize",a(this).val())}).filter(function(){if(a(this).attr("disabled")||a(this).val()!=b){return false}return true}).attr("checked","checked");a("tr.url button").click(function(){var d=this.className||"";d=d.replace(/.*?(url[^ '"]+).*/,"$1");if(d){setUserSetting("urlbutton",d)}a(this).siblings(".urlfield").val(a(this).attr("title"))});a("tr.url .urlfield").each(function(){var d=getUserSetting("urlbutton");a(this).val(a(this).siblings("button."+d).attr("title"))})}})(jQuery);
\ No newline at end of file
+function fileDialogStart(){jQuery("#media-upload-error").empty()}function fileQueued(a){jQuery(".media-blank").remove();if(jQuery(".type-form #media-items>*").length==1&&jQuery("#media-items .hidden").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery("#media-items").append('<div id="media-item-'+a.id+'" class="media-item child-of-'+post_id+'"><div class="progress"><div class="bar"></div></div><div class="filename original">'+a.name+"</div></div>");jQuery("#media-item-"+a.id+" .progress").show();jQuery("#insert-gallery").attr("disabled","disabled")}function uploadStart(a){return true}function uploadProgress(c,a,b){jQuery("#media-item-"+c.id+" .bar").width(620*a/b);if(a==b){jQuery("#media-item-"+c.id+" .bar").html('<strong class="crunching">'+swfuploadL10n.crunching+"</strong>")}}function prepareMediaItem(b,a){jQuery("#media-item-"+b.id+" .bar").remove();jQuery("#media-item-"+b.id+" .progress").hide();var c=(typeof shortform=="undefined")?1:2;if(isNaN(a)||!a){jQuery("#media-item-"+b.id).append(a);prepareMediaItemInit(b)}else{jQuery("#media-item-"+b.id).load("async-upload.php",{attachment_id:a,fetch:c},function(){prepareMediaItemInit(b);updateMediaForm()})}}function prepareMediaItemInit(a){jQuery("#media-item-"+a.id+" .thumbnail").clone().attr("className","pinkynail toggle").prependTo("#media-item-"+a.id);jQuery("#media-item-"+a.id+" .filename.original").replaceWith(jQuery("#media-item-"+a.id+" .filename.new"));jQuery("#media-item-"+a.id+" a.toggle").bind("click",function(){jQuery(this).siblings(".slidetoggle").slideToggle(150,function(){var b=jQuery(this).offset();window.scrollTo(0,b.top-36)});jQuery(this).parent().eq(0).children(".toggle").toggle();jQuery(this).siblings("a.toggle").focus();return false});jQuery("#media-item-"+a.id+" a.delete").bind("click",function(){jQuery.ajax({url:"admin-ajax.php",type:"post",success:deleteSuccess,error:deleteError,id:a.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"delete-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")}});return false});jQuery("#media-item-"+a.id+".startopen").removeClass("startopen").slideToggle(500).parent().eq(0).children(".toggle").toggle()}function itemAjaxError(c,b){var a=jQuery("#media-item-error"+c);a.html('<div class="file-error"><button type="button" id="dismiss-'+c+'" class="button dismiss">'+swfuploadL10n.dismiss+"</button>"+b+"</div>");jQuery("#dismiss-"+c).click(function(){jQuery(this).parents(".file-error").slideUp(200,function(){jQuery(this).empty()})})}function deleteSuccess(b,c){if(b=="-1"){return itemAjaxError(this.id,"You do not have permission. Has your session expired?")}if(b=="0"){return itemAjaxError(this.id,"Could not be deleted. Has it been deleted already?")}var a=jQuery("#media-item-"+this.id);if(type=jQuery("#type-of-"+this.id).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-1)}if(a.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-1)}if(jQuery(".type-form #media-items>*").length==1&&jQuery("#media-items .hidden").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery("#media-item-"+this.id+" .filename:empty").remove();jQuery("#media-item-"+this.id+" .filename").append(' <span class="file-error">'+swfuploadL10n.deleted+"</span>").siblings("a.toggle").remove();jQuery("#media-item-"+this.id).children(".describe").css({backgroundColor:"#fff"}).end().animate({backgroundColor:"#ffc0c0"},{queue:false,duration:50}).animate({minHeight:0,height:36},400,null,function(){jQuery(this).children(".describe").remove()}).animate({backgroundColor:"#fff"},400).animate({height:0},800,null,function(){jQuery(this).remove();updateMediaForm()});return}function deleteError(c,b,a){}function updateMediaForm(){storeState();if(jQuery(".type-form #media-items>*").length==1){jQuery("#media-items .slidetoggle").slideDown(500).parent().eq(0).children(".toggle").toggle();jQuery(".type-form .slidetoggle").siblings().addClass("hidden")}if(jQuery("#media-items>*").not(".media-blank").length>0){jQuery(".savebutton").show()}else{jQuery(".savebutton").hide()}if(jQuery("#media-items>*").length>1){jQuery(".insert-gallery").show()}else{jQuery(".insert-gallery").hide()}}function uploadSuccess(b,a){if(a.match("media-upload-error")){jQuery("#media-item-"+b.id).html(a);return}prepareMediaItem(b,a);updateMediaForm();if(jQuery("#media-item-"+b.id).hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(1*jQuery("#attachments-count").text()+1)}}function uploadComplete(a){if(swfu.getStats().files_queued==0){jQuery("#insert-gallery").attr("disabled","")}}function wpQueueError(a){jQuery("#media-upload-error").show().text(a)}function wpFileError(b,a){jQuery("#media-item-"+b.id+" .filename").after('<div class="file-error"><button type="button" id="dismiss-'+b.id+'" class="button dismiss">'+swfuploadL10n.dismiss+"</button>"+a+"</div>").siblings(".toggle").remove();jQuery("#dismiss-"+b.id).click(function(){jQuery(this).parents(".media-item").slideUp(200,function(){jQuery(this).remove()})})}function fileQueueError(c,a,b){if(a==SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){wpQueueError(swfuploadL10n.queue_limit_exceeded)}else{if(a==SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT){fileQueued(c);wpFileError(c,swfuploadL10n.file_exceeds_size_limit)}else{if(a==SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE){fileQueued(c);wpFileError(c,swfuploadL10n.zero_byte_file)}else{if(a==SWFUpload.QUEUE_ERROR.INVALID_FILETYPE){fileQueued(c);wpFileError(c,swfuploadL10n.invalid_filetype)}else{wpQueueError(swfuploadL10n.default_error)}}}}}function fileDialogComplete(b){try{if(b>0){this.startUpload()}}catch(a){this.debug(a)}}function swfuploadPreLoad(){var a=jQuery("#"+swfu.customSettings.swfupload_element_id).get(0);jQuery("#"+swfu.customSettings.degraded_element_id).hide();if(a&&!a.style.display){a.style.display="block"}}function swfuploadLoadFailed(){jQuery("#"+swfu.customSettings.swfupload_element_id).hide();jQuery("#"+swfu.customSettings.degraded_element_id).show()}function uploadError(c,a,b){if(a==SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL){wpFileError(c,swfuploadL10n.missing_upload_url)}else{if(a==SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED){wpFileError(c,swfuploadL10n.upload_limit_exceeded)}else{wpFileError(c,swfuploadL10n.default_error)}}if(a==SWFUpload.UPLOAD_ERROR.HTTP_ERROR){wpQueueError(swfuploadL10n.http_error)}else{if(a==SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED){wpQueueError(swfuploadL10n.upload_failed)}else{if(a==SWFUpload.UPLOAD_ERROR.IO_ERROR){wpQueueError(swfuploadL10n.io_error)}else{if(a==SWFUpload.UPLOAD_ERROR.SECURITY_ERROR){wpQueueError(swfuploadL10n.security_error)}else{if(a==SWFUpload.UPLOAD_ERROR.FILE_CANCELLED){wpQueueError(swfuploadL10n.security_error)}}}}}}var storeState;(function(a){storeState=function(){var c=getUserSetting("align")||"",b=getUserSetting("imgsize")||"";a('tr.align input[type="radio"]').click(function(){setUserSetting("align",a(this).val())}).filter(function(){if(a(this).val()==c){return true}return false}).attr("checked","checked");a('tr.image-size input[type="radio"]').click(function(){setUserSetting("imgsize",a(this).val())}).filter(function(){if(a(this).attr("disabled")||a(this).val()!=b){return false}return true}).attr("checked","checked");a("tr.url button").click(function(){var d=this.className||"";d=d.replace(/.*?(url[^ '"]+).*/,"$1");if(d){setUserSetting("urlbutton",d)}a(this).siblings(".urlfield").val(a(this).attr("title"))});a("tr.url .urlfield").each(function(){var d=getUserSetting("urlbutton");a(this).val(a(this).siblings("button."+d).attr("title"))})}})(jQuery);function importUploadSuccess(b,a){if(a.match("media-upload-error")){jQuery("#media-item-"+b.id).html(a);return}jQuery("#media-item-"+b.id+" .progress").remove();jQuery("#media-item-"+b.id).append('<a href="'+document.location.href+"&step=1&action=save&attachment_id="+a+"&_wpnonce="+import_nonce+"&_wp_http_referer="+escape(document.location.href)+'" class="describe-toggle-on">'+swfuploadL10n.import_continue+"</a>");jQuery("#flash-upload-msg").remove()};
\ No newline at end of file
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 10340)
+++ wp-includes/script-loader.php	(working copy)
@@ -117,7 +117,7 @@
 		$scripts->add( 'swfupload-queue', false, array('swfupload') );
 	}
 
-	$scripts->add( 'swfupload-handlers', "/wp-includes/js/swfupload/handlers$suffix.js", array('swfupload'), '2.2.0-20081201');
+	$scripts->add( 'swfupload-handlers', "/wp-includes/js/swfupload/handlers$suffix.js", array('swfupload'), '2.2.0-20090109');
 	// these error messages came from the sample swfupload js, they might need changing.
 	$scripts->localize( 'swfupload-handlers', 'swfuploadL10n', array(
 			'queue_limit_exceeded' => __('You have attempted to queue too many files.'),
@@ -136,6 +136,7 @@
 			'dismiss' => __('Dismiss'),
 			'crunching' => __('Crunching&hellip;'),
 			'deleted' => __('Deleted'),
+			'import_continue' => __('Continue Import &raquo;'),
 			'l10n_print_after' => 'try{convertEntities(swfuploadL10n);}catch(e){};'
 	) );
 	
