Index: .hgtags
===================================================================
--- .hgtags	(revision 1280)
+++ .hgtags	(revision 1219)
@@ -12,2 +12,3 @@
 6fce226121140735a51a8f447c80f1dacd2974ea 2.4.4
 514d5121a12586b7ff320924d44028b677a01020 2.4.4
+baf879af43beea9764d920c2facd7226e90c5cf3 2.5.1
Index: admin/auth.php
===================================================================
--- admin/auth.php	(revision 1310)
+++ admin/auth.php	(revision 1179)
@@ -265,5 +265,4 @@
   <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />
   <meta name="GOOGLEBOT" content="NOSNIPPET" />
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title><?php echo html::escapeHTML(DC_VENDOR_NAME); ?></title>
   
@@ -395,5 +394,5 @@
 		__('Remember my ID on this computer').'</label></p>'.
 		
-		'<p><input class="add button" type="submit" value="'.__('log in').'" /></p>';
+		'<p><input type="submit" value="'.__('log in').'" /></p>';
 		
 		if (!empty($_REQUEST['blog'])) {
Index: admin/blog.php
===================================================================
--- admin/blog.php	(revision 1334)
+++ admin/blog.php	(revision 1277)
@@ -69,15 +69,9 @@
 	dcPage::open(__('New blog'),dcPage::jsConfirmClose('blog-form'));
 	
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Blogs') => 'blogs.php',
-			'<span class="page-title">'.__('New blog').'</span>' => ''
-		));
+	echo
+	'<h2><a href="blogs.php">'.__('Blogs').'</a> &rsaquo; <span class="page-title">'.__('New blog').'</span></h2>'.
 	
-	echo
 	'<form action="blog.php" method="post" id="blog-form" class="fieldset">'.
 	
-	$core->formNonce().
 	'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').' '.
 	form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</label></p>'.
@@ -94,5 +88,7 @@
 	form::textarea('blog_desc',60,5,html::escapeHTML($blog_desc)).'</p>'.
 	
-	'<p><input type="submit" accesskey="s" value="'.__('Create').'" /></p>'.
+	'<p><input type="submit" accesskey="s" value="'.__('Create').'" />'.
+	$core->formNonce().
+	'</p>'.
 	'</form>';
 
Index: admin/blog_del.php
===================================================================
--- admin/blog_del.php	(revision 1334)
+++ admin/blog_del.php	(revision 1288)
@@ -53,12 +53,6 @@
 if (!$core->error->flag())
 {
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Blogs') => 'blogs.php',
-			'<span class="page-title">'.__('Delete a blog').'</span>' => ''
-		));
-
 	echo
+	'<h2 class="page-title">'.__('Delete a blog').'</h2>'.
 	'<p class="message">'.__('Warning').'</p>'.
 	'<p>'.sprintf(__('You are about to delete the blog %s. Every entry, comment and category will be deleted.'),
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 1334)
+++ admin/blog_pref.php	(revision 1179)
@@ -273,18 +273,7 @@
 if ($blog_id)
 {
-	if ($standalone) {
-		dcPage::breadcrumb(
-			array(
-				html::escapeHTML($blog_name) => '',
-				'<span class="page-title">'.__('Blog settings').'</span>' => ''
-			));
-	} else {
-		dcPage::breadcrumb(
-			array(
-				__('System') => '',
-				__('Blogs') => 'blogs.php',
-				'<span class="page-title">'.__('Blog settings').' : '.html::escapeHTML($blog_name).'</span>' => ''
-			));
-	}
+	echo '<h2>'.(!$standalone ? '<a href="blogs.php">'.__('Blogs').'</a> &rsaquo; ' : '').
+	html::escapeHTML($blog_name).' &rsaquo; <span class="page-title">'.
+	__('Blog settings').'</span></h2>';
 	
 	if (!empty($_GET['add'])) {
Index: admin/blog_theme.php
===================================================================
--- admin/blog_theme.php	(revision 1334)
+++ admin/blog_theme.php	(revision 1263)
@@ -215,9 +215,6 @@
 if (!$theme_conf_mode)
 {
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blog appearance').'</span>' => ''
-		));
+	echo
+	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Blog appearance').'</span></h2>';
 	
 	if (!empty($_GET['upd'])) {
@@ -333,13 +330,7 @@
 	$theme_name = $core->themes->moduleInfo($core->blog->settings->system->theme,'name');
 	$core->themes->loadModuleL10Nresources($core->blog->settings->system->theme,$_lang);
-
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			__('Blog appearance') => 'blog_theme.php',
-			'<span class="page-title">'.__('Theme configuration').'</span>' => ''
-		));
-
-	echo
+	echo
+	'<h2>'.html::escapeHTML($core->blog->name).
+	' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Theme configuration').'</span></h2>'.
 	'<p><a class="back" href="blog_theme.php">'.__('back').'</a></p>';
 	
Index: admin/blogs.php
===================================================================
--- admin/blogs.php	(revision 1334)
+++ admin/blogs.php	(revision 1179)
@@ -79,9 +79,5 @@
 }
 
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('List of blogs').'</span>' => ''
-	));
+echo '<h2 class="page-title">'.__('List of blogs').'</h2>';
 
 if (!$core->error->flag())
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 1334)
+++ admin/categories.php	(revision 1179)
@@ -89,9 +89,5 @@
 }
 
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Categories').'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Categories').'</span></h2>';
 
 $rs = $core->blog->getCategories(array('post_type'=>'post'));
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 1334)
+++ admin/category.php	(revision 1179)
@@ -167,15 +167,17 @@
 }
 
-$elements = array(
-	html::escapeHTML($core->blog->name) => '',
-	__('Categories') => 'categories.php'
-	);
-if ($cat_id) {
+echo
+'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="categories.php">'.
+__('Categories').'</a> &rsaquo; ';
+
+if ($cat_id)
+{
 	while($parents->fetch()) {
-		$elements[html::escapeHTML($parents->cat_title)] = 'category.php?id='.$parents->cat_id;
-	}
-}
-$elements['<span class="page-title">'.$title.'</span>'] = '';
-dcPage::breadcrumb($elements);
+		echo '<a href="category.php?id='.$parents->cat_id.'">'.html::escapeHTML($parents->cat_title).'</a>';
+		echo " &rsaquo; ";
+	}
+}
+
+echo '<span class="page-title">'.$title.'</span></h2>';
 
 echo
Index: admin/comment.php
===================================================================
--- admin/comment.php	(revision 1334)
+++ admin/comment.php	(revision 1179)
@@ -184,11 +184,8 @@
 	}
 	
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			html::escapeHTML($post_title) => $core->getPostAdminURL($post_type,$post_id).'&amp;co=1#c'.$comment_id,
-			'<span class="page-title">'.__('Edit comment').'</span>' => ''
-		));
-
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.
+		$core->getPostAdminURL($post_type,$post_id).'&amp;co=1#c'.$comment_id.'"> '.
+		$post_title.'</a> &rsaquo; <span class="page-title">'.__('Edit comment').'</span></h2>';
+		
 	echo
 	'<form action="comment.php" method="post" id="comment-form">'.
Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 1334)
+++ admin/comments.php	(revision 1179)
@@ -171,9 +171,5 @@
 dcPage::open(__('Comments and trackbacks'),$starting_script);
 
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Comments and trackbacks').'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Comments and trackbacks').'</span></h2>';
 
 if (!$core->error->flag())
Index: admin/index.php
===================================================================
--- admin/index.php	(revision 1340)
+++ admin/index.php	(revision 1247)
@@ -59,7 +59,7 @@
 if (!$core->auth->user_prefs->dashboard->prefExists('quickentry')) {
 	if (!$core->auth->user_prefs->dashboard->prefExists('quickentry',true)) {
-		$core->auth->user_prefs->dashboard->put('quickentry',true,'boolean','',null,true);
-	}
-	$core->auth->user_prefs->dashboard->put('quickentry',true,'boolean');
+		$core->auth->user_prefs->dashboard->put('quickentry',false,'boolean','',null,true);
+	}
+	$core->auth->user_prefs->dashboard->put('quickentry',false,'boolean');
 }
 
@@ -196,9 +196,5 @@
 );
 
-dcPage::breadcrumb(
-	array(
-	'<span class="page-title">'.__('Dashboard').' : '.html::escapeHTML($core->blog->name).'</span>' => ''
-	),
-	false);
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Dashboard').'</span></h2>';
 
 if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->blog_count > 1) {
Index: admin/install/index.php
===================================================================
--- admin/install/index.php	(revision 1280)
+++ admin/install/index.php	(revision 1247)
@@ -190,5 +190,5 @@
 		$core->auth->user_prefs->dashboard->put('doclinks',true,'boolean','',null,true);
 		$core->auth->user_prefs->dashboard->put('dcnews',true,'boolean','',null,true);
-		$core->auth->user_prefs->dashboard->put('quickentry',true,'boolean','',null,true);
+		$core->auth->user_prefs->dashboard->put('quickentry',false,'boolean','',null,true);
 
 		# Add accessibility options
Index: admin/js/_media.js
===================================================================
--- admin/js/_media.js	(revision 1325)
+++ admin/js/_media.js	(revision 1234)
@@ -2,25 +2,4 @@
 	if ($('#fileupload').length==0) {
 		return;
-	}
-
-	function enableButton(button) {
-		button.prop('disabled',false).removeClass('disabled');
-	}
-
-	function disableButton(button) {
-		button.prop('disabled',true).addClass('disabled');
-	}
-
-	function displayMessageInQueue(n) {
-		var msg = '';
-		if (n==1) {
-			msg = dotclear.jsUpload.msg.file_in_queue;
-		} else if (n>1) {
-			msg = dotclear.jsUpload.msg.files_in_queue;
-			msg = msg.replace(/%d/,n);
-		} else {
-			msg = dotclear.jsUpload.msg.no_file_in_queue;
-		}
-		$('.queue-message','#fileupload').html(msg);
 	}
 
@@ -31,16 +10,6 @@
 	});
 
-	$('.button.cancel', '#fileupload .fileupload-buttonbar').click(function(e) {
-		$('.button.cancel','#fileupload .fileupload-buttonbar').hide();
-		disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
-		displayMessageInQueue(0);
-	});
-
-	$('.cancel').live('click', function(e) {
-		if ($('.fileupload-ctrl .files .template-upload', '#fileupload').length==0) {
-			$('.button.cancel','#fileupload .fileupload-buttonbar').hide();
-			disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
-		}
-		displayMessageInQueue($('.files .template-upload','#fileupload').length);
+	$('.button.cancel', '#fileupload').click(function(e) {
+		$('.button.cancel, .button.start','#fileupload .fileupload-buttonbar').hide();
 	});
 
@@ -59,8 +28,5 @@
 		disabled: true
 	}).bind('fileuploadadd', function(e, data) {
-		$('.button.cancel','#fileupload .fileupload-buttonbar').show();
-		enableButton($('.button.start','#fileupload .fileupload-buttonbar'));
-	}).bind('fileuploadadded', function(e, data) {
-		displayMessageInQueue($('.files .template-upload','#fileupload').length);
+		$('.button.cancel, .button.start', '#fileupload .fileupload-buttonbar').show();
 	}).bind('fileuploaddone', function(e, data) {
 		if (data.result.files[0].html !==undefined) {
@@ -69,12 +35,10 @@
 		$('.button.clean','#fileupload').show();
 	}).bind('fileuploadalways', function(e, data) {
-		displayMessageInQueue($('.files .template-upload','#fileupload').length);
-		if ($('.fileupload-ctrl .files .template-upload','#fileupload').length==0) {
-			$('.button.cancel','#fileupload .fileupload-buttonbar').hide();
-			disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
-		}
+	    if ($('.fileupload-ctrl .files .template-upload', '#fileupload').length==0) {
+		$('.button.start, .button.cancel','#fileupload .fileupload-buttonbar').hide();
+	    }
 	});
 
-	var $container = $('#fileupload').parent().parent();
+	var $container = $('#add-file-f').parent().parent();
 	var $msg,label;
 
@@ -83,6 +47,4 @@
 		label = dotclear.jsUpload.msg.choose_files;
 		$('#fileupload').fileupload({disabled:false});
-		displayMessageInQueue(0);
-		disableButton($('.button.start','#fileupload .fileupload-buttonbar'));
 	} else {
 		$msg = dotclear.msg.enhanced_uploader_activate;
@@ -99,17 +61,13 @@
 			// We must remove files in table
 			$('.files .upload-file', '#fileupload').remove();
-			$('.button.cancel,.button.clean','#fileupload .fileupload-buttonbar').hide();
+			$('.button.cancel, .button.start','#fileupload .fileupload-buttonbar').hide();
+			$('.button.start','#fileupload').show();
 			$('#fileupload').fileupload({disabled:true});
-			$('.queue-message','#fileupload').html('').hide();
 		} else {
 			$msg = dotclear.msg.enhanced_uploader_disable;
 			label = dotclear.jsUpload.msg.choose_files;
 			$('#upfile').attr('multiple', true);
-			var startButton = $('.button.start','#fileupload .fileupload-buttonbar');
-			disableButton(startButton);
-			startButton.show();
+			$('.button.start','#fileupload').hide();
 			$('#fileupload').fileupload({disabled:false});
-			$('.queue-message','#fileupload').show();
-			displayMessageInQueue(0);
 		}
 		$(this).find('a').text($msg);
@@ -117,5 +75,5 @@
 
 		$container.toggleClass('enhanced_uploader');
-	}).appendTo($('#fileupload'));
+	}).appendTo($('#add-file-f'));
 
 	// Replace remove links by a POST on hidden form
Index: admin/js/_post.js
===================================================================
--- admin/js/_post.js	(revision 1280)
+++ admin/js/_post.js	(revision 1256)
@@ -79,7 +79,15 @@
 		// Get document format and prepare toolbars
 		var formatField = $('#post_format').get(0);
+		var last_post_format = $(formatField).val();
 		$(formatField).change(function() {
-			excerptTb.switchMode(this.value);
-			contentTb.switchMode(this.value);
+			// Confirm post format change
+			if(window.confirm(dotclear.msg.confirm_change_post_format_noconvert)){
+				excerptTb.switchMode(this.value);
+				contentTb.switchMode(this.value);
+				last_post_format = $(this).val();
+			}else{
+				// Restore last format if change cancelled
+				$(this).val(last_post_format);
+			}
 		});
 		
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 1303)
+++ admin/js/common.js	(revision 1140)
@@ -153,5 +153,4 @@
 			}
 		}
-		$('p#help-button span').text($('#content').hasClass('with-help') ? dotclear.msg.help_hide : dotclear.msg.help);
 		sizeBox();
 		return false;
@@ -197,5 +196,5 @@
 	sizeBox();
 
-	var img = $('<p id="help-button"><span>'+dotclear.msg.help+'</span></p>');
+	var img = $('<span id="help-button">'+dotclear.msg.help+'</span>');
 	var select = $();
 	img.click(function() { return toggle(); });
Index: admin/js/jquery/jquery.pageTabs.js
===================================================================
--- admin/js/jquery/jquery.pageTabs.js	(revision 1280)
+++ admin/js/jquery/jquery.pageTabs.js	(revision 1223)
@@ -39,9 +39,10 @@
 				li = document.createElement('li');
 				a = document.createElement('a');
-				a.appendChild(document.createTextNode(this.title));
+				$(a).html(this.title);
 				this.title = '';
 				a.href = '#';
 				a.fn = This.showDiv;
 				a.index = this.id || i;
+				li.id = "part-tabs-"+a.index;
 				a.obj = This;
 				jQuery(a).click(function() { this.fn.call(this.obj,this.index); return false; });
Index: admin/js/jsUpload/jquery.fileupload-process.js
===================================================================
--- admin/js/jsUpload/jquery.fileupload-process.js	(revision 1320)
+++ admin/js/jsUpload/jquery.fileupload-process.js	(revision 1144)
@@ -1,4 +1,4 @@
 /*
- * jQuery File Upload Processing Plugin 1.2.2
+ * jQuery File Upload Processing Plugin 1.1
  * https://github.com/blueimp/jQuery-File-Upload
  *
@@ -99,18 +99,12 @@
             var processQueue = [];
             $.each(options.processQueue, function () {
-                var settings = {},
-                    action = this.action,
-                    prefix = this.prefix === true ? action : this.prefix;
+                var settings = {};
                 $.each(this, function (key, value) {
                     if ($.type(value) === 'string' &&
                             value.charAt(0) === '@') {
-                        settings[key] = options[
-                            value.slice(1) || (prefix ? prefix +
-                                key.charAt(0).toUpperCase() + key.slice(1) : key)
-                        ];
+                        settings[key] = options[value.slice(1)];
                     } else {
                         settings[key] = value;
                     }
-
                 });
                 processQueue.push(settings);
@@ -134,5 +128,5 @@
                     this._trigger('processstart');
                 }
-                $.each(data.files, function (index) {
+                $.each(data.files, function (index, file) {
                     var opts = index ? $.extend({}, options) : options,
                         func = function () {
Index: admin/js/jsUpload/jquery.fileupload-ui.js
===================================================================
--- admin/js/jsUpload/jquery.fileupload-ui.js	(revision 1320)
+++ admin/js/jsUpload/jquery.fileupload-ui.js	(revision 1206)
@@ -1,4 +1,4 @@
 /*
- * jQuery File Upload User Interface Plugin 8.7.1
+ * jQuery File Upload User Interface Plugin 8.2.1
  * https://github.com/blueimp/jQuery-File-Upload
  *
@@ -20,7 +20,5 @@
             'jquery',
             'tmpl',
-            './jquery.fileupload-image',
-            './jquery.fileupload-audio',
-            './jquery.fileupload-video',
+            './jquery.fileupload-resize',
             './jquery.fileupload-validate'
         ], factory);
@@ -106,7 +104,19 @@
                     );
                 });
+
+            /*
+             *  
+             *  Activation du bouton si un fichier trouvé
+             */
+                var fileUploadButtonBar = that.element.find('.fileupload-buttonbar');
+                fileUploadButtonBar.find('.start').prop('disabled', false);
+                fileUploadButtonBar.find('.start').removeClass('disabled');
+             /*
+             *
+             */
             },
             // Callback for the start of each file upload request:
             send: function (e, data) {
+                $(this).find('.start').hide();
                 var that = $(this).data('blueimp-fileupload') ||
                         $(this).data('fileupload');
@@ -130,4 +140,5 @@
             // Callback for successful uploads:
             done: function (e, data) {
+
                 var that = $(this).data('blueimp-fileupload') ||
                         $(this).data('fileupload'),
@@ -140,6 +151,6 @@
                     data.context.each(function (index) {
                         var file = files[index] ||
-                                {error: 'Empty file upload result'};
-                        deferred = that._addFinishedDeferreds();
+                                {error: 'Empty file upload result'},
+                            deferred = that._addFinishedDeferreds();
                         that._transition($(this)).done(
                             function () {
@@ -160,7 +171,6 @@
                     });
                 } else {
-                    template = that._renderDownload(files)[
-                        that.options.prependFiles ? 'prependTo' : 'appendTo'
-                    ](that.options.filesContainer);
+                    template = that._renderDownload(files)
+                        .appendTo(that.options.filesContainer);
                     that._forceReflow(template);
                     deferred = that._addFinishedDeferreds();
@@ -217,7 +227,6 @@
                     });
                 } else if (data.errorThrown !== 'abort') {
-                    data.context = that._renderUpload(data.files)[
-                        that.options.prependFiles ? 'prependTo' : 'appendTo'
-                    ](that.options.filesContainer)
+                    data.context = that._renderUpload(data.files)
+                        .appendTo(that.options.filesContainer)
                         .data('data', data);
                     that._forceReflow(data.context);
@@ -272,9 +281,12 @@
             // Callback for uploads start, equivalent to the global ajaxStart event:
             start: function (e) {
+                $(this).find('.start').hide();
                 var that = $(this).data('blueimp-fileupload') ||
-                        $(this).data('fileupload');
+                $(this).data('fileupload');
                 that._resetFinishedDeferreds();
                 that._transition($(this).find('.fileupload-progress')).done(
+
                     function () {
+
                         that._trigger('started', e);
                     }
@@ -283,4 +295,5 @@
             // Callback for uploads stop, equivalent to the global ajaxStop event:
             stop: function (e) {
+                $(this).find('.start').show();
                 var that = $(this).data('blueimp-fileupload') ||
                         $(this).data('fileupload'),
@@ -299,4 +312,17 @@
                     }
                 );
+            /*
+             *  Recherche des fichers restants à uploader
+             *  Désactivation du bouton si plus rien
+             */
+             var filesList = that.options.filesContainer;
+             if(filesList.find('.start').size() == 0) {
+                var fileUploadButtonBar = that.element.find('.fileupload-buttonbar');
+                fileUploadButtonBar.find('.start').prop('disabled', true);
+                fileUploadButtonBar.find('.start').addClass('disabled');
+             }
+            /*
+             *
+             */
             },
             processstart: function () {
@@ -309,6 +335,7 @@
             destroy: function (e, data) {
                 var that = $(this).data('blueimp-fileupload') ||
-                        $(this).data('fileupload'),
-                    removeNode = function () {
+                        $(this).data('fileupload');
+                if (data.url) {
+                    $.ajax(data).done(function () {
                         that._transition(data.context).done(
                             function () {
@@ -317,9 +344,5 @@
                             }
                         );
-                    };
-                if (data.url) {
-                    $.ajax(data).done(removeNode);
-                } else {
-                    removeNode();
+                    });
                 }
             }
@@ -614,7 +637,4 @@
             this._super();
             this._resetFinishedDeferreds();
-            if (!$.support.fileInput) {
-                this._disableFileInputButton();
-            }
         },
 
Index: admin/js/jsUpload/jquery.fileupload.js
===================================================================
--- admin/js/jsUpload/jquery.fileupload.js	(revision 1320)
+++ admin/js/jsUpload/jquery.fileupload.js	(revision 1144)
@@ -1,4 +1,4 @@
 /*
- * jQuery File Upload Plugin 5.32.2
+ * jQuery File Upload Plugin 5.31.1
  * https://github.com/blueimp/jQuery-File-Upload
  *
@@ -11,5 +11,5 @@
 
 /*jslint nomen: true, unparam: true, regexp: true */
-/*global define, window, document, location, File, Blob, FormData */
+/*global define, window, document, File, Blob, FormData, location */
 
 (function (factory) {
@@ -28,16 +28,4 @@
     'use strict';
 
-    // Detect file input support, based on
-    // http://viljamis.com/blog/2012/file-upload-support-on-mobile/
-    $.support.fileInput = !(new RegExp(
-        // Handle devices which give false positives for the feature detection:
-        '(Android (1\\.[0156]|2\\.[01]))' +
-            '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
-            '|(w(eb)?OSBrowser)|(webOS)' +
-            '|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
-    ).test(window.navigator.userAgent) ||
-        // Feature detection for all other devices:
-        $('<input type="file">').prop('disabled'));
-
     // The FileReader API is not actually used, but works as feature detection,
     // as e.g. Safari supports XHR file uploads via the FormData API,
@@ -45,8 +33,4 @@
     $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);
     $.support.xhrFormDataFileUpload = !!window.FormData;
-
-    // Detect support for Blob slicing (required for chunked uploads):
-    $.support.blobSlice = window.Blob && (Blob.prototype.slice ||
-        Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
 
     // The fileupload widget listens for change events on file input fields defined
@@ -161,14 +145,11 @@
             // widget (via file input selection, drag & drop, paste or add API call).
             // If the singleFileUploads option is enabled, this callback will be
-            // called once for each file in the selection for XHR file uploads, else
+            // called once for each file in the selection for XHR file uplaods, else
             // once for each file selection.
-            //
             // The upload starts when the submit method is invoked on the data parameter.
             // The data object contains a files property holding the added files
-            // and allows you to override plugin options as well as define ajax settings.
-            //
+            // and allows to override plugin options as well as define ajax settings.
             // Listeners for this callback can also be bound the following way:
             // .bind('fileuploadadd', func);
-            //
             // data.submit() returns a Promise object and allows to attach additional
             // handlers using jQuery's Deferred callbacks:
@@ -252,9 +233,4 @@
             'forceIframeTransport'
         ],
-
-        _blobSlice: $.support.blobSlice && function () {
-            var slice = this.slice || this.webkitSlice || this.mozSlice;
-            return slice.apply(this, arguments);
-        },
 
         _BitrateTimer: function () {
@@ -404,9 +380,7 @@
                 options.headers['Content-Range'] = options.contentRange;
             }
-            if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
+            if (!multipart) {
                 options.headers['Content-Disposition'] = 'attachment; filename="' +
                     encodeURI(file.name) + '"';
-            }
-            if (!multipart) {
                 options.contentType = file.type;
                 options.data = options.blob || file;
@@ -441,4 +415,6 @@
                     }
                     if (options.blob) {
+                        options.headers['Content-Disposition'] = 'attachment; filename="' +
+                            encodeURI(file.name) + '"';
                         formData.append(paramName, options.blob, file.name);
                     } else {
@@ -464,5 +440,4 @@
 
         _initIframeSettings: function (options) {
-            var targetHost = $('<a></a>').prop('href', options.url).prop('host');
             // Setting the dataType to iframe enables the iframe transport:
             options.dataType = 'iframe ' + (options.dataType || '');
@@ -470,5 +445,6 @@
             options.formData = this._getFormData(options);
             // Add redirect url to form data on cross-domain uploads:
-            if (options.redirect && targetHost && targetHost !== location.host) {
+            if (options.redirect && $('<a></a>').prop('href', options.url)
+                    .prop('host') !== location.host) {
                 options.formData.push({
                     name: options.redirectParamName || 'redirect',
@@ -652,11 +628,10 @@
         // upload requests:
         _chunkedUpload: function (options, testOnly) {
-            options.uploadedBytes = options.uploadedBytes || 0;
             var that = this,
                 file = options.files[0],
                 fs = file.size,
-                ub = options.uploadedBytes,
+                ub = options.uploadedBytes = options.uploadedBytes || 0,
                 mcs = options.maxChunkSize || fs,
-                slice = this._blobSlice,
+                slice = file.slice || file.webkitSlice || file.mozSlice,
                 dfd = $.Deferred(),
                 promise = dfd.promise(),
@@ -876,6 +851,5 @@
                     pipe = slot.pipe(send);
                 } else {
-                    this._sequence = this._sequence.pipe(send, send);
-                    pipe = this._sequence;
+                    pipe = (this._sequence = this._sequence.pipe(send, send));
                 }
                 // Return the piped Promise object, enhanced with an abort method,
@@ -1127,7 +1101,7 @@
 
         _onDrop: function (e) {
-            e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
             var that = this,
-                dataTransfer = e.dataTransfer,
+                dataTransfer = e.dataTransfer = e.originalEvent &&
+                    e.originalEvent.dataTransfer,
                 data = {};
             if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
@@ -1143,6 +1117,6 @@
 
         _onDragOver: function (e) {
-            e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
-            var dataTransfer = e.dataTransfer;
+            var dataTransfer = e.dataTransfer = e.originalEvent &&
+                e.originalEvent.dataTransfer;
             if (dataTransfer) {
                 if (this._trigger('dragover', e) === false) {
@@ -1166,9 +1140,7 @@
                 });
             }
-            if ($.support.fileInput) {
-                this._on(this.options.fileInput, {
-                    change: this._onChange
-                });
-            }
+            this._on(this.options.fileInput, {
+                change: this._onChange
+            });
         },
 
@@ -1304,8 +1276,4 @@
                                 return;
                             }
-                            if (!files.length) {
-                                dfd.reject();
-                                return;
-                            }
                             data.files = files;
                             jqXHR = that._onSend(null, data).then(
Index: admin/js/jsUpload/jquery.iframe-transport.js
===================================================================
--- admin/js/jsUpload/jquery.iframe-transport.js	(revision 1320)
+++ admin/js/jsUpload/jquery.iframe-transport.js	(revision 1144)
@@ -1,4 +1,4 @@
 /*
- * jQuery Iframe Transport Plugin 1.7
+ * jQuery Iframe Transport Plugin 1.6.2
  * https://github.com/blueimp/jQuery-File-Upload
  *
@@ -171,13 +171,5 @@
 
     // The iframe transport returns the iframe content document as response.
-    // The following adds converters from iframe to text, json, html, xml
-    // and script.
-    // Please note that the Content-Type for JSON responses has to be text/plain
-    // or text/html, if the browser doesn't include application/json in the
-    // Accept header, else IE will show a download dialog.
-    // The Content-Type for XML responses on the other hand has to be always
-    // application/xml or text/xml, so IE properly parses the XML response.
-    // See also
-    // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
+    // The following adds converters from iframe to text, json, html, and script:
     $.ajaxSetup({
         converters: {
@@ -191,10 +183,4 @@
                 return iframe && $(iframe[0].body).html();
             },
-            'iframe xml': function (iframe) {
-                var xmlDoc = iframe && iframe[0];
-                return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :
-                        $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
-                            $(xmlDoc.body).html());
-            },
             'iframe script': function (iframe) {
                 return iframe && $.globalEval($(iframe[0].body).text());
Index: admin/langs.php
===================================================================
--- admin/langs.php	(revision 1334)
+++ admin/langs.php	(revision 1179)
@@ -132,9 +132,6 @@
 );
 
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('Languages management').'</span>' => ''
-	));
+echo
+'<h2 class="page-title">'.__('Languages management').'</h2>';
 
 if (!empty($_GET['removed'])) {
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 1334)
+++ admin/media.php	(revision 1234)
@@ -205,10 +205,5 @@
 	call_user_func($open_f,__('Media manager'));
 	
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			__('Media manager') => '',
-			'<span class="page-title">'.__('confirm removal').'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Media manager').' &rsaquo; <span class="page-title">'.__('confirm removal').'</span></h2>';
 	
 	echo
@@ -261,25 +256,13 @@
 }
 
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; ';
 if (!isset($core->media)) {
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Media manager').'</span>' => ''
-		));
+	echo '<span class="page-title">'.__('Media manager').'</span></h2>';
 } else {
 	$breadcrumb = $core->media->breadCrumb(html::escapeURL($page_url).'&amp;d=%s','<span class="page-title">%s</span>');
 	if ($breadcrumb == '') {
-		dcPage::breadcrumb(
-			array(
-				html::escapeHTML($core->blog->name) => '',
-				'<span class="page-title">'.__('Media manager').'</span>' => ''
-			));
+		echo '<span class="page-title">'.__('Media manager').'</span></h2>';
 	} else {
-		dcPage::breadcrumb(
-			array(
-				html::escapeHTML($core->blog->name) => '',
-				__('Media manager') => html::escapeURL($page_url.'&d='),
-				$breadcrumb => ''
-			));
+		echo '<a href="'.html::escapeURL($page_url.'&d=').'">'.__('Media manager').'</a>'.' / '.$breadcrumb.'</h2>';
 	}
 }
@@ -352,10 +335,10 @@
 
 	echo
+	'<form id="fileupload" action="'.html::escapeURL($page_url).'" method="POST" enctype="multipart/form-data">'.
 	'<fieldset id="add-file-f"><legend>'.__('Add files').'</legend>'.
 	'<p>'.__('Please take care to publish media that you own and that are not protected by copyright.').'</p>'.
-	' <form id="fileupload" action="'.html::escapeURL($page_url).'" method="POST" enctype="multipart/form-data">'.
-	'<div>'.form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE).
-	$core->formNonce().'</div>'.
-	'<div class="fileupload-ctrl"><div class="queue-message"></div><div class="files"></div></div>';
+	form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE).
+	$core->formNonce().
+	'<div class="fileupload-ctrl"><div class="files"></div></div>';
 
 	echo
@@ -386,5 +369,5 @@
 
 	echo
-	'<div>'.form::hidden(array('d'),$d).'</div>'.
+	form::hidden(array('d'),$d).
 	'</fieldset>'.
 	'</form>'.
@@ -445,7 +428,9 @@
 	$class = 'media-item media-col-'.($i%2);
 	
+	$alt = (!$f->d ? sprintf(__('Media details of %s'),$fname) : 
+		sprintf(__('Go to %s folder'),($fname == '..' ? __('parent') : $fname)));
 	$res =
 	'<div class="'.$class.'"><a class="media-icon media-link" href="'.$link.'">'.
-	'<img src="'.$f->media_icon.'" alt="" /></a>'.
+	'<img src="'.$f->media_icon.'" alt="'.$alt.'" /></a>'.
 	'<ul>'.
 	'<li><a class="media-link" href="'.$link.'">'.$fname.'</a></li>';
Index: admin/media_item.php
===================================================================
--- admin/media_item.php	(revision 1334)
+++ admin/media_item.php	(revision 1179)
@@ -190,10 +190,7 @@
 }
 
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Media manager') => html::escapeURL($media_page_url),
-		$core->media->breadCrumb(html::escapeURL($media_page_url).'&amp;d=%s').'<span class="page-title">'.$file->basename.'</span>' => ''
-	));
+echo '<h2><a href="'.html::escapeURL($media_page_url).'">'.__('Media manager').'</a>'.
+' / '.$core->media->breadCrumb(html::escapeURL($media_page_url).'&amp;d=%s').
+'<span class="page-title">'.$file->basename.'</span></h2>';
 
 # Insertion popup
Index: admin/plugin.php
===================================================================
--- admin/plugin.php	(revision 1334)
+++ admin/plugin.php	(revision 1179)
@@ -83,10 +83,6 @@
 	call_user_func($open_f,__('Plugin not found'));
 	
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('Plugin not found').'</span>' => ''
-		));
-
+	echo '<h2 class="page-title">'.__('Plugin not found').'</h2>';
+	
 	echo '<p>'.__('The plugin you reached does not exist or does not have an admin page.').'</p>';
 	
Index: admin/plugins.php
===================================================================
--- admin/plugins.php	(revision 1334)
+++ admin/plugins.php	(revision 1271)
@@ -194,9 +194,6 @@
 );
 
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('Plugins management').'</span>' => ''
-	));
+echo
+'<h2 class="page-title">'.__('Plugins management').'</h2>';
 
 if (!empty($_GET['removed'])) {
@@ -236,4 +233,5 @@
 		'<a href="plugin.php?p=daInstaller">'.__('DotAddict.org Installer').'</a>'));
 
+echo '<p>';
 if ($is_writable) {
 	echo __('To install or upgrade a plugin you generally just need to upload it '.
@@ -390,4 +388,9 @@
 echo '</div>';
 
+if ($core->plugins->moduleExists('daInstaller')) {
+	echo '<p><a href="plugin.php?p=daInstaller" class="multi-part">'.__('DotAddict.org Installer').'</a></p>';
+}
+
+
 # --BEHAVIOR-- pluginsToolsTabs
 $core->callBehavior('pluginsToolsTabs',$core);
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 1335)
+++ admin/post.php	(revision 1288)
@@ -334,4 +334,5 @@
 }
 
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.'<a href="posts.php">'.__('Entries').'</a> &rsaquo; <span class="page-title">';
 if ($post_id) {
 	switch ($post_status) {
@@ -352,21 +353,18 @@
 	}
 	$edit_entry_str = __('Edit entry &ldquo;%s&rdquo;');
-	$page_title_edit = sprintf($edit_entry_str, html::escapeHTML($post_title)).' '.$img_status;
-}
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Entries') => 'posts.php',
-		'<span class="page-title">'.($post_id ? $page_title_edit : $page_title).'</span>' => ''
-	));
+	echo sprintf($edit_entry_str, html::escapeHTML($post_title)).' '.$img_status;
+} else {
+	echo $page_title;
+}
+echo	'</span></h2>';
 
 if ($post_id && $post->post_status == 1) {
-	echo '<p><a class="preview_link" href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this entry on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
+	echo '<p><a href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this entry on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
 }
 if ($post_id)
 {
-	echo '<p class="nav_prevnext">';
+	echo '<p>';
 	if ($prev_link) { echo $prev_link; }
-	if ($next_link && $prev_link) { echo ' | '; }
+	if ($next_link && $prev_link) { echo ' - '; }
 	if ($next_link) { echo $next_link; }
 	
@@ -388,5 +386,5 @@
 if ($can_edit_post)
 {
-	echo '<div class="multi-part" title="'.($post_id ? __('Edit entry') : __('New entry')).'" id="edit-entry">';
+	echo '<div class="multi-part" title="'.__('Edit entry').'" id="edit-entry">';
 	echo '<form action="post.php" method="post" id="entry-form">';
 	echo '<div id="entry-wrapper">';
@@ -394,7 +392,7 @@
 	
 	echo
-	'<p class="col"><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label>'.
+	'<p class="col"><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
 	form::field('post_title',20,255,html::escapeHTML($post_title),'maximal').
-	'</p>'.
+	'</label></p>'.
 	
 	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
@@ -407,5 +405,5 @@
 	'</p>'.
 	
-	'<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').'</label>'.
+	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
 	form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
 	'</p>';
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 1334)
+++ admin/posts.php	(revision 1179)
@@ -249,11 +249,6 @@
 if (!$core->error->flag())
 {
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Entries').'</span>' => ''
-		));
-
-	echo
+	echo 
+	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Entries').'</span></h2>'.
 	'<p class="top-add"><a class="button add" href="post.php">'.__('New entry').'</a></p>';
 	
Index: admin/posts_actions.php
===================================================================
--- admin/posts_actions.php	(revision 1179)
+++ admin/posts_actions.php	(revision 1345)
@@ -16,4 +16,5 @@
 
 $params = array();
+$action = '';
 
 /* Actions
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 1334)
+++ admin/preferences.php	(revision 1179)
@@ -370,9 +370,5 @@
 }
 
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.$page_title.'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 
 # User profile
Index: admin/search.php
===================================================================
--- admin/search.php	(revision 1334)
+++ admin/search.php	(revision 1276)
@@ -72,17 +72,12 @@
 dcPage::open(__('Search'),$starting_scripts);
 
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Search').'</span>' => ''
-	));
-
 echo
+'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Search').'</span></h2>'.
 '<form action="search.php" method="get">'.
 '<div class="fieldset"><h3>'.__('Search options').'</h3>'.
 '<p><label for="q">'.__('Query:').' </label>'.form::field('q',30,255,html::escapeHTML($q)).'</p>'.
-'<p><label for="qtype1" class="classic">'.form::radio(array('qtype','qtype1'),'p',$qtype == 'p').' '.__('Search in entries').'</label> '.
-'<label for="qtype2" class="classic">'.form::radio(array('qtype','qtype2'),'c',$qtype == 'c').' '.__('Search in comments').'</label></p>'.
-'</p><input type="submit" value="'.__('Search').'" /></p>'.
+'<p><label for="qtype1" class="classic">'.form::radio(array('qtype','qtype1'),'p',$qtype == 'p').' '.__('Search entries').'</label> '.
+'<label for="qtype2" class="classic">'.form::radio(array('qtype','qtype2'),'c',$qtype == 'c').' '.__('Search comments').'</label></p>'.
+'<p><input type="submit" value="'.__('Search').'" /></p>'.
 '</div>'.
 '</form>';
Index: admin/style/date-picker.css
===================================================================
--- admin/style/date-picker.css	(revision 1330)
+++ admin/style/date-picker.css	(revision 0)
@@ -1,35 +1,35 @@
 .date-picker {
-	border-collapse: collapse;
-	background: #fff;
-	color: #fff;
+	border-collapse : collapse;
+	background : #fff;
+	color : #fff;
 	border: 1px solid #666;
-	border-width: 1px 2px 2px 1px;
+	border-width : 1px 2px 2px 1px;
 }
 .date-picker th {
-	border: none;
-	color: #000;
-	text-align: center;
+	border : none;
+	color : #000;
+	text-align : center;
 }
 .date-picker td {
-	border: 1px solid #666;
-	text-align: center;
+	border : 1px solid #666;
+	text-align : center;
 	padding : 4px 6px;
 }
 th.date-picker-month {
-	text-align: left;
+	text-align : left;
 }
 th.date-picker-year {
-	text-align: right;
+	text-align : right;
 }
 .date-picker-control, th.date-picker-control {
-	color: #06c;
-	cursor: pointer;
+	color : #06c;
+	cursor : pointer;
 }
 .date-picker-day, .date-picker-today {
-	color: #000;
-	background: #eee;
-	cursor: pointer;
+	color : #000;
+	background : #eee;
+	cursor : pointer;
 }
 .date-picker-today {
-	background: #ccc;
+	background : #ccc;
 }
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 1344)
+++ admin/style/default.css	(revision 1179)
@@ -13,13 +13,13 @@
 
 /* ------------------------------------------------------------------ html */
-html {
-	font-size: 62.5%;
-}
 body {
-	font: 1.2rem/1.5 Arial,Helvetica,sans-serif;
+	font: 75%/1.5em Helvetica,Arial,sans-serif;
 	color: #333;
+	background: #f5f5f5;
+	margin: 0;
+	padding: 0;
+}
+body.auth {
 	background: #fff;
-	margin: 0;
-	padding: 0;
 }
 
@@ -36,29 +36,19 @@
 }
 
-h1, h2, h3, .as_h3, h4, h5, h6, p {
+h1, h2, h3, h4, h5, h6, p {
 	margin-top: 0;
-	margin-bottom: 1rem;
+	margin-bottom: 0.6em;
 }
 h2 {
 	color: #666;
-	font-size: 1.8rem;
-	padding: 0 0 1.8rem;
-	font-weight: normal;
-}
-h2 a:link, h2 a:visited {
-	color: #666;
-	border-color: #000;
+	font-size: 1.4em;
+	padding: 4px 0;
 }
 .page-title {
 	color: #d30e60;
 }
-#content > h2 {
-	padding: 0 1.8rem .6rem;
-	margin: 0 -1.8rem 1rem;
-	background: #fff url(bg_h2.png) repeat-x center bottom;
-}
-h3, .as_h3 {
-	color: #575859;
-	font-size: 1.4rem;
+h3 {
+	color: #333;
+	font-size: 1.2em;
 }
 p, div.p {
@@ -67,5 +57,5 @@
 hr {
 	height: 1px;
-	border-width: 1px 0 0;
+	border-width: 1px 0 0 0;
 	border-color: #999;
 	border-style: solid;
@@ -93,34 +83,29 @@
 #header {
 	background: #575859;
+	height: 3em;
 	position: relative;
-	border-bottom: 4px solid #A2CBE9;
-	width: 100%;
 }
 #prelude {
-	line-height: 1.9;
-	margin: 0;
-	padding: 0;
+	background: #575859;
+	line-height: 1.5em;
+	margin: 0;
+	padding: 0 1.7em 0 1em;
 	overflow: hidden;
 	position: absolute;
-	top: 3em;
+	top: 1.2em;
 	left: 0;
-	background: #A2CBE9;
-	width: 14.5em;
 	}
 #prelude li {
 	list-style-type: none;
-	margin: 0;
+	margin: 0 1em 0 0;
 	background:transparent;
-}
+	}
 #prelude li a {
-	padding-left: 1.6rem;
-	background: #A2CBE9;
-	color: #000;
-	border-bottom-color: #A2CBE9;
-}
+	color:#fff;
+	}
 #top {
 	margin: 0;
 	padding: 0;
-	width: 14.5em;
+	width: 13em;
 	float: left;
 }
@@ -128,38 +113,38 @@
 	padding: 0;
 	margin: 0;
-	height: 3.6rem;
+	height: 3em;
 	text-indent: -1000px;
+	background: transparent url(dc_logo.png) no-repeat 0 50%;
 }
 #top h1 a {
 	position: absolute;
-	top: 0;
+	top: 3px;
 	left: 0;
-	width: 17.4rem;
-	height: 3.6rem;
+	width: 130px;
+	height: 60px;
 	border: none;
+	outline: none;
 	color: #fff;
 }
-#top h1 a:link {
-	background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px;
-}
-#top h1 a:hover, #top h1 a:focus {
-	background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 -94px;	
-}
 #info-boxes {
-	font-size: 1em;
-	line-height: 3em;
+	background: #575859;
+	font-size: .95em;
+	height: 3em;
 }
 #info-box1 {
 	margin: 0;
-	padding: 0 3px 0 1.8rem;
+	padding: .5em 3px 4px 0;
 	color: #fff;
-	display: inline-block;
+	float: left;
+	background: #575859;
 }
 #info-box2 {
-	margin: 0;
-	padding: 0 1.3em 0 0;
+	margin: .1em 0 0 0;
+	padding: .5em 1.3em 4px 0;
 	color: #fff;
 	float: right;
 	text-align: right;
+	background: #575859;
+	height: 2em;
 }
 #info-box1 p {
@@ -168,5 +153,5 @@
 }
 #info-box1 select {
-	width: 14.5em;
+	width: 15em;
 }
 #info-box1 a img, #info-box2 a img {
@@ -174,5 +159,6 @@
 	padding-left: .3em;
 	}
-#info-boxes a {
+#info-box1 a, #info-box2 a {
+	background: #575859;
 	font-weight: bold;
 	color: #fff;
@@ -187,15 +173,15 @@
 }
 #info-box2 a.active {
-	border-bottom-color: #fff;
+	border-bottom-color: #f5f5f5;
 	margin: 0;
 	padding: 1.2em .5em;
-	background-color: #fff;
+	background-color: #f5f5f5;
 	color: #333;
 	font-weight: bold;
 }
 #info-box2 span {
-	color: #999;
-}
-/* main blocks */
+	color: #575859;
+}
+/* prelude */
 #wrapper {
 	width: 100%;
@@ -204,12 +190,13 @@
 	width: 100%;
 	float: right;
-	margin-left: -14.5em;
+	margin-left: -13em;
 	margin-top: 0;
-	background: #fff url(bg_menu.png);
 }
 #content {
-	margin: 0 0 0 14.5em;
-	padding: .9rem 1.8rem 1.8rem;
+	margin: 1.5em 1.5em .5em 13em;
+	padding: 1em;
 	background: #fff;
+	border-radius: .5em;
+	border: 1px solid #ddd;
 }
 	/* Micro clearfix thx to Nicolas Gallagher */
@@ -252,6 +239,6 @@
 /* -------------------------------------------------------------- layout - onglets */
 .part-tabs ul {
-	padding: .5em 0 .3em 1rem;
-	border-bottom: 1px solid #ccc;
+	padding: .3em 0 1px 1em;
+	border-bottom: 1px solid #999;
 }
 .part-tabs li {
@@ -261,12 +248,16 @@
 }
 .part-tabs li a {
-	padding: .5em 1em;
+	padding: .3em 0.5em;
 	margin-right: .5em;
-	border: 1px solid #ccc;
+	border: 1px solid #999;
 	border-bottom: none;
-	background: #efefef;
+	background: #dfdfdf;
 	text-decoration: none;
+	border-top-left-radius: .3em;
+	border-top-right-radius: .3em;
 	color: #000;
-	background-color:#ededed;
+}
+.part-tabs li.part-tabs-link a {
+	background: #ffe;
 }
 .part-tabs li a:hover, .part-tabs li a:focus {
@@ -277,30 +268,25 @@
 .part-tabs li.part-tabs-active a {
 	background: #fff;
-	border: 1px solid #d30e60;
-	color: #d30e60;
+	border-bottom: 1px solid #fff;
+	color: #000;
 	font-weight: bold;
-	border-bottom-color: #fff;
 }
 /* ------------------------------------------------------------------ main-menu */
 #main-menu {
-	width: 14.5em;
-	float: left;
-	margin:0;
-	padding-top: .5em;
-	padding-bottom: 1em;
-	background: #f7f7f7;
+	width: 13em;
+	float: left;
+	margin-top: 1.2em;
+	margin-bottom: .5em;
 }
 #main-menu h3 {
-	margin: 0;
-	padding: 1.2rem 0 1rem 2.2rem;
-	text-indent: -1.6rem;
+	margin: 0 0 0.5em;
+	padding: .5em 0 0 .5em;
+	text-transform: uppercase;
 	color: #666;
-	font-size: 1.4rem;
-}
-#main-menu h3 img[alt="cacher"] {
-	vertical-align: top;
+	font-size: 1.1em;
 }
 #main-menu ul {
-	margin: 0 0 1.8rem 0;
+	font-size: .95em;
+	margin: 0 0 1em 0;
 	padding: 0;
 	list-style: none;
@@ -309,85 +295,57 @@
 	display: block;
 	margin: 0.5em 0 0;
-	padding: .3rem 0 0 30px;
+	padding: .2em 0 0 32px;
 	background-repeat: no-repeat;
-	background-position: 8px .3em;
+	background-position: 12px .4em;
 }
 #main-menu a {
-	color: #333;
-	border-bottom-color: #ccc;
+	font-weight: bold;
 }
 #main-menu .active a {
 	border-bottom: none;
-	color: #d30e60;
+	color: #333;
 }
 #main-menu .active {
-	font-weight: bolder;
-}
-#search-menu {
-	padding: .3rem .4rem 0;
-	font-size: 100%
-}
-#search-menu p {
-	display: inline-block;
-	border: 1px solid #999;
-	border-radius: .6em;
-	position: relative;
-	height: 2rem;
-	overflow: hidden;
-}
-#search-menu #q {
-	width: 12rem;
-	border-bottom-left-radius: .6em;
-	border-top-left-radius: .6em;
-	background: transparent url(search.png) no-repeat 4px center;
-	text-indent: 18px;
-	height: 2rem;
-	padding: 0 2px; 
-	border: none;
-}
-#search-menu input[type="submit"] {
-	padding: 0 0.3rem;
-	background: #dfdfdf;
-	border-color: #999;
-	color: #666;
-	border-bottom-right-radius: .6em;
-	border-top-right-radius: .6em;
-	border-top-left-radius: 0;
-	border-bottom-left-radius: 0;
-	text-shadow: none;
-	height: 2rem;
-	border: none;
-	border-left: 1px solid #aaa;
-	font-size: 1rem;
-}
-#search-menu input[type="submit"]:hover,
-#search-menu input[type="submit"]:focus {
-	background: #575859;
-	color: #fff;
-}
-#favorites-menu, #blog-menu, #system-menu, #plugins-menu {
-	border-bottom: 1px dashed #A2CBE9;
+	background-color: #fff;
+	padding: .4em 0 .1em 32px;
+	background-position: 12px .4em;
+	border-top: 1px solid #ddd;
+	border-bottom: 1px solid #ddd;
+	margin-right: -1px;
+}
+#favorites-menu {
+	margin: 0 0 2em;
 }
 #favorites-menu h3 {
-	color: #000;
-	font-variant: small-caps;
+	color: #333;
+	text-transform: none;
 }
 #favorites-menu a {
 	color: #333;
+}
+#favorites-menu .active {
+	background-color: transparent;
+	border: none;
+}
+#favorites-menu .active a {
+	font-weight: bold;
+	color: #666;
 }
 /* ------------------------------------------------------------------ footer */
 #footer {
 	clear: both;
-	padding: .6rem 1.2rem .6rem 0;
+	padding: .75em .75em 0 0;
 	text-align: right;
-	border-top: .1rem solid #ccc;
 }
 #footer p {
 	margin: 0;
 	padding: 0 1em;
-	font-size: 1em;
+	text-align: center;
+	font-size: 1.1em;
+}
+#footer a {
 }
 #footer p span.credit {
-	font-size: 1rem;
+	font-size: .85em;
 	font-weight: normal;
 }
@@ -397,21 +355,17 @@
 	width: 18em;
 	margin: 1.5em auto 0;
-	font-size: 1.4rem;
+	font-size: 1.1em;
 }
 #login-screen h1 {
 	text-indent: -2000px;
-	background: transparent url(dc_logos/w-dotclear240.png) no-repeat top left;
-	height: 66px;
+	background: transparent url(dotclear-logo2.png) no-repeat top left;
+	height: 50px;
 	margin-bottom: .5em;
-	margin-left: 0;
+	margin-left: .5em;
 }
 #login-screen fieldset, #login-screen .fieldset {
-	border: 1px solid #A8DC26;
+	border: 1px solid #999;
 	padding: 1em 1em 0 1em;
 	border-radius: 4px;
-	background: #fff;
-}
-#login-screen legend {
-	border: 1px solid #A8DC26;
 }
 #login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit] {
@@ -419,6 +373,6 @@
 }
 #login-screen #issue {
-	margin-left: 1.5rem;
-	font-size: 1.2rem;
+	margin-left: 1em;
+	font-size: 1em;
 }
 #login-screen #issue strong {font-weight: normal;}
@@ -445,5 +399,5 @@
 	width: 210px;
 	text-align: center;
-	margin: 2em 0;
+	margin: 2em 0 0 0;
 	display:inline-block;
 }
@@ -522,6 +476,5 @@
 }
 #entry-content {
-	margin-right: 19em;
-	margin-left: 1.2rem;
+	margin-right: 18em;
 }
 #entry-sidebar {
@@ -823,21 +776,22 @@
 /* ------------------------------------------------------------------ contextual help */
 #help {
-	margin-top: 4em;
+	margin-top: 2em;
 	background: #f5f5f5;
 	z-index: 100;
 }
 #help-button {
-	background: transparent url(../images/page_help.png) no-repeat 6px center;
-	position: absolute;
-	top: 3.6rem;
+	position: fixed;
+	top: 3.2em;
 	right: 0px;
-	padding: 0 2rem 0 3rem;
 	cursor: pointer;
-	color: #2373A8;
-	line-height: 4.2rem;
-}
-#help-button span {
-	padding: .6rem 0 .1rem 0;
-	border-bottom: 1px solid #2373A8;
+	background: #fc3;
+	border: 1px solid #dde;
+	border-right: none;
+	font-size: 1.1em;
+	font-weight: bold;
+	text-transform: capitalize;
+	padding: .33em .75em .33em 1em;
+	border-radius: 1em 0 0 1em;
+	color: #444;
 }
 .help-box {
@@ -849,21 +803,13 @@
 }
 #content.with-help #help-button {
-	right: 28.2rem;
-	background-color: #f5f5f5;
-	position: fixed;
-	border-top: 2px solid #FFD478;
-	border-left: 2px solid #FFD478;
-	border-bottom: 2px solid #FFD478;
-	border-bottom-left-radius: 1rem;
-	border-top-left-radius: 1rem;
+	right: 282px;
 }
 #content.with-help #help {
 	display: block;
 	position: absolute;
-	top: 3.6rem;
+	top: 40px;
 	right: 0;
-	width: 28rem;
-	border-left: 2px solid #FFD478;
-	border-top: 2px solid #FFD478;
+	width: 280px;
+	border-left: 2px solid #fc3;
 	margin-top: 0;
 	padding: 10px 0 0 0;
@@ -883,33 +829,23 @@
 /* ------------------------------------------------------------------ popups */
 body.popup #wrapper, body.popup #top {
-	width: 100%;
-	padding: 0;
-}
-body.popup #wrapper {
+	margin-top: -1.5em;
 	float: none;
-	margin:0;
-	display: block;
-}
-body.popup h1, body.popup #top {
-	margin: 0;
-	border-bottom: 1px solid;
-	font-weight: normal;
-	color: #fff;
-	background: #575859;
-	font-size: 1.5em;
-	text-indent: .6rem;
-	line-height: 1.3em;
+}
+body.popup #top h1 {
+	background: transparent;
 }
 body.popup #main {
-	margin-bottom: 1em 0;
+	margin-left: -35px;
+	margin-bottom: 1em;
 }
 body.popup #content {
-	margin: 0;
-	padding: .6rem 0 !important;
-}
-body.popup #content h2 {
-	margin: 0 0 1em;
+	margin-left: 35px;
+	margin-left: 2em;  /* 3.2 */
+}
+body.popup #footer {
+	display: none; /* 3.2 */
 }
 body.popup #footer p {
+	margin-left: 35px;
 	border: none;
 }
@@ -923,6 +859,6 @@
 }
 p.error, p.message, p.static-msg {
-	padding-top: 1rem;
-	padding-bottom: 1rem;
+	padding-top: 1em;
+	padding-bottom: 1em;
 }
 div.error, p.error {
@@ -939,27 +875,4 @@
 	color: #fff;
 }
-#content > .message, #content > .error {
-	margin-right: 14em
-}
-/* ------------------------------------------------------------------ navigation */
-.anchor-nav {
-	background: #575859;
-	color: #fff;
-	padding: .4rem 1.2rem;
-	float: right;
-}
-.nav_prevnext {
-	margin-bottom: 2em;
-	color: #ccc;
-}
-.nav_prevnext a, a.back {
-	border: 1px solid #ccc;
-	padding: .2rem .5rem;
-	background-color: #eef;
-}
-a.back:before {
-	content: "\ab\a0";
-}
-
 /* ------------------------------------------------------------------ debug */
 #debug {
@@ -1079,13 +992,14 @@
 -------------------------------------------------------- */
 table {
-	font-size: 1.2rem;
+	font-size: 1em;
 	border-collapse: collapse;
 	margin: 0 0 1em 0;
 }
 tr.line:hover {
-	background: #f3f3f3;
+	background: #ddd;
 }
 caption {
 	color: #333;
+	font-size: 1.2em;
 	font-weight: bold;
 	text-align: left;
@@ -1096,11 +1010,11 @@
 	border-width: 0 0 1px 0;
 	border-style: solid;
-	border-color: #e3e3e3;
-	padding: .4rem .5rem;
+	border-color: #ccc;
+	padding: 3px 5px;
 	vertical-align: top;
 }
 th {
 	text-align: left;
-	border-bottom-color: #aaa;
+	border-bottom-color: #666;
 }
 .noborder td, td.noborder, .noborder th, th.noborder {
@@ -1119,9 +1033,4 @@
 table.settings, table.prefs {
 	width: 80%;
-	border: 1px solid #999;
-	margin-bottom: 3em; 
-}
-table.settings th, table.prefs th {
-	background: #eef;
 }
 table.settings th:first-child, table.prefs th:first-child {
@@ -1137,4 +1046,5 @@
 	width: 40%;
 }
+
 td.status {
 	vertical-align: middle;
@@ -1175,4 +1085,5 @@
 	padding-left: 15px;
 }
+
 /* ----------------------------------------------------------------- FORMS */
 form {
@@ -1190,7 +1101,4 @@
 	background: #f5f5f5;
 }
-.fieldset {
-	background: #eef;
-}
 legend {
 	font-weight: bold;
@@ -1199,5 +1107,5 @@
 	border-style: solid;
 	border-color: #ccc;
-	background: #eef;
+	background: #f5f5f5;
 	margin-bottom: 0.5em;
 }
@@ -1214,5 +1122,5 @@
 	border-width: 1px;
 	border-style: solid;
-	border-color: #666 #ccc #ccc #999;
+	border-color: #000 #ccc #ccc #000;
 }
 input.invalid, textarea.invalid, select.invalid {
@@ -1223,5 +1131,5 @@
 }
 input, textarea, select, option {
-	font: 100% "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
+	font: 1em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
 }
 input[type=text], input[type=password], textarea {
@@ -1229,9 +1137,12 @@
 	margin-right: .3em;
 }
+input[type=checkbox], input[type=radio] {
+	border: none;
+}
 textarea {
 	padding: 2px 0;
 }
-input[type=checkbox], input[type=radio], input[type=file] {
-	border: none;
+
+input[type=checkbox], input[type=radio] {
 	margin: 0;
 	padding: 0;
@@ -1304,5 +1215,5 @@
 	display: inline;
 	position: absolute;
-	left: 14.5em;
+	left: 15em;
 	top: 0;
 }
@@ -1329,4 +1240,10 @@
 
 /* --------------------------------------------------------------- buttons */
+h2 a.button {
+	color: #333;
+	font-weight: normal;
+	font-size: .75em;
+	vertical-align: middle;
+}
 /* commun */
 input[type=submit],
@@ -1334,4 +1251,5 @@
 input[type=button],
 a.button,
+a.back,
 a.submit {
 	display: inline-block;
@@ -1340,5 +1258,5 @@
 	text-align: center;
 	text-decoration: none;
-	padding: .1em .5em;
+	padding: .1em .5em 0 .5em;
 	text-shadow: 0 1px 1px rgba(0,0,0,.3);
 	border-radius: .2em;
@@ -1369,4 +1287,5 @@
 /* suppression et reset */
 a.button,
+a.back,
 input[type=submit].reset,
 input[type=submit].delete {
@@ -1379,8 +1298,10 @@
 	}
 a.button:hover,
+a.back:hover,
 input[type=reset]:hover,
 input[type=submit].reset:hover,
 input[type=submit].delete:hover,
 a.button:focus,
+a.back:focus,
 input[type=reset]:focus,
 input[type=submit].reset:focus,
@@ -1416,30 +1337,17 @@
 	margin-left: 2em;
 }
-.button.add {
-	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9dce2c), color-stop(1, #8cb82b) );
-	background:-moz-linear-gradient( center top, #9dce2c 5%, #8cb82b 100% );
-	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9dce2c', endColorstr='#8cb82b');
-	background-color:#9dce2c;
-	border:1px solid #83c41a;
-	padding:.6rem 1.8rem;
-	text-shadow:1px 1px 0 #689324;
-	color: #000;
-	text-shadow: 1px 1px 0 #BBDB58;
-	font-weight: normal;
-	font-size: 1.4rem;
-}
-.button.add:hover, .button.add:focus {
-	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #8cb82b), color-stop(1, #9dce2c) );
-	background:-moz-linear-gradient( center top, #8cb82b 5%, #9dce2c 100% );
-	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8cb82b', endColorstr='#9dce2c');
-	background-color:#8cb82b;
-	border:1px solid #83c41a;
-}
-.button-add:focus {
-	outline: dotted 1px;
-}
-.button.add:active {
-	position:relative;
-	top:1px;
+a.back:before {
+	content: "\ab\a0";
+}
+a.button.add {
+	border-radius: .5em;
+	margin-bottom: .1em;	
+	background: #2C8FD1 url(../images/add.png) no-repeat 6px center;
+	color: #fff;
+	padding: .2em 16px .2em 30px;
+	border: 1px solid #2373A8;
+}
+a.button.add:hover, a.button.add:focus {
+	background-color: #2373A8;
 }
 
@@ -1476,53 +1384,2 @@
 	color: white;
 }
-
-/* ---------------------------------------------------------------------------
-	Media queries vite fait en attendant la reprise complète du layout
----------------------------------------------------------------------------- */
-@media screen and (max-width: 920px) {
-	#top, #top h1 a {width: 42px !important; height:100%; overflow: hidden;}
-	#top h1 a:link {
-		background: transparent url(dc_logos/b-dotclear120.png) no-repeat -180px 6px; 
-		border-right: 1px solid #ccc;
-	}
-	#top h1 a:hover, #top h1 a:focus {
-		background: url(dc_logos/b-dotclear120.png) no-repeat -180px -94px;
-		border-right: 1px solid #A2CBE9;
-	}
-}
-@media screen and (max-width: 800px) {
-	#top, #info-boxes, #info-box1, #info-box2 {
-		display:inline-block;
-		vertical-align:middle;
-		margin:0;
-		padding:0;
-		line-height: 3.2rem;
-	}
-	#info-box1 select {width: 14rem;}
-	#main-menu, #main, #content, #content h2, #entry-wrapper, #entry-sidebar, #entry-content, .two-cols .col, .two-cols .col:first-child {
-    	display:block;
-    	width: 98%;
-    	margin:0 auto;
-    	padding:0;
-    	float:none;
-    	text-align: left;
-    	clear: both;
-  	}
-  	#content {
-  		width: 100%;
-  		padding-top: .5em;
-  	}
-}
-@media screen and (max-width: 720px) {
-	.smallscreen {display: none;}
-	#help-button {width:20px; overflow: hidden;}
-	#info-box1 {margin-left: 1rem;}
-}
-@media screen and (max-width: 492px) {
-	#header {height:3.6rem;}
-	#wrapper {font-size: 1.6rem;}
-	.page-title, #info-boxes, .media-item {display: inline-block;}
-	div.media-list .media-item {width: 90%; float: none}
-	#info-box1 p.nomobile, label.nomobile {display: none;}
-	#help-button {height:26px; width:26px; background-color: #A2CBE9; padding: 0; margin:0;font-size: 1rem;line-height: 68px}
-}
Index: admin/style/install.css
===================================================================
--- admin/style/install.css	(revision 1330)
+++ admin/style/install.css	(revision 1065)
@@ -6,13 +6,9 @@
 	Please see http://dotclear.net/ for more details.
 */
-html {
-	font-size: 62.5%;
-}
 body.install {
-	font: 1.2rem/1.5 Arial,Helvetica,sans-serif;
-	color: #333;
-	background: #fff;
-	margin: 0;
-	padding: 0;
+	font: 0.875em Helvetica,Arial,sans-serif;
+	color: #000;
+	background-color: #fff;
+	line-height: 1.5em;
 }
 body.install #content {
@@ -26,5 +22,5 @@
 }
 body.install h1,h2 {
-	font-family: arial,Helvetica,sans-serif;
+	font-family: Helvetica,arial,sans-serif;
 }
 body.install h1 {
Index: admin/style/jsUpload/style.css
===================================================================
--- admin/style/jsUpload/style.css	(revision 1325)
+++ admin/style/jsUpload/style.css	(revision 1209)
@@ -76,5 +76,5 @@
 }
 
-.button.clean, .button.cancel, .button.add {
+.button.clean, .button.cancel, .button.add, .enhanced_uploader .fileupload-buttonbar .button.start {
 	display: none;
 }
@@ -170,7 +170,2 @@
 	clear: both;
 }
-
-.queue-message {
-	font-weight: bold;
-	margin: 0 0 1em 16px;
-}
Index: admin/trackbacks.php
===================================================================
--- admin/trackbacks.php	(revision 1334)
+++ admin/trackbacks.php	(revision 1179)
@@ -95,9 +95,5 @@
 }
 
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.$page_title.'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 
 echo '<p><a class="back" href="'.$core->getPostAdminURL($post->post_type,$id).'">'.
Index: admin/update.php
===================================================================
--- admin/update.php	(revision 1334)
+++ admin/update.php	(revision 1287)
@@ -27,5 +27,5 @@
 
 $updater = new dcUpdate(DC_UPDATE_URL,'dotclear',DC_UPDATE_VERSION,DC_TPL_CACHE.'/versions');
-$new_v = $updater->check(DC_VERSION);
+$new_v = $updater->check(DC_VERSION, !empty($_GET['nocache']));
 $zip_file = $new_v ? DC_BACKUP_PATH.'/'.basename($updater->getFileURL()) : '';
 $version_info = $new_v ? $updater->getInfoURL() : '';
@@ -172,9 +172,9 @@
 
 if (!$core->error->flag()) {
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('Dotclear update').'</span>' => ''
-		));
+	echo '<h2>'.__('Dotclear update').'</h2>';
+	
+	if (!empty($_GET['nocache'])) {
+		dcPage::message(__('Manual checking of update done successfully.'));
+	}
 }
 
@@ -184,5 +184,9 @@
 	if (empty($new_v))
 	{
-		echo '<p><strong>'.__('No newer Dotclear version available.').'</strong></p>';
+		echo '<p><strong>'.__('No newer Dotclear version available.').'</strong></p>'.
+		'<form action="'.$p_url.'" method="get">'.
+		'<p><input type="hidden" name="nocache" value="1" />'.
+		'<input type="submit" value="'.__('Force checking update Dotclear').'" /></p>'.
+		'</form>';
 	}
 	else
Index: admin/user.php
===================================================================
--- admin/user.php	(revision 1334)
+++ admin/user.php	(revision 1179)
@@ -15,5 +15,5 @@
 dcPage::checkSuper();
 
-$page_title = __('New user');
+$page_title = __('new user');
 
 $user_id = '';
@@ -185,10 +185,5 @@
 }
 
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		__('Users') => 'users.php',
-		'<span class="page-title">'.$page_title.'</span>' => ''
-	));
+echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 
 if ($user_id == $core->auth->userID()) {
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 1334)
+++ admin/users.php	(revision 1237)
@@ -105,11 +105,6 @@
 	}
 	
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('Users').'</span>' => ''
-		));
-
-	echo
+	echo 
+	'<h2 class="page-title">'.__('Users').'</h2>'.
 	'<p class="top-add"><strong><a class="button add" href="user.php">'.__('Create a new user').'</a></strong></p>';
 	
Index: admin/users_actions.php
===================================================================
--- admin/users_actions.php	(revision 1334)
+++ admin/users_actions.php	(revision 1179)
@@ -177,12 +177,6 @@
 	}
 	
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Users') => 'users.php',
-			'<span class="page-title">'.__('Permissions').'</span>' => ''
-		));
-
-	echo
+	echo 
+	'<h2><a href="users.php">'.__('Users').'</a> &rsaquo; <span class="page-title">'.__('Permissions').'</span></h2>'.
 	'<p>'.sprintf(
 		__('Choose one or more blogs to which you want to give permissions to users %s.'),
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 1340)
+++ inc/admin/lib.dc.page.php	(revision 1256)
@@ -73,9 +73,9 @@
 			}
 			$blog_box =
-			'<p><label for="switchblog" class="classic nomobile">'.
-			__('Blogs:').'</label> '.
+			'<p><label for="switchblog" class="classic">'.
+			__('Blogs:').' '.
 			$core->formNonce().
 			form::combo('switchblog',$blogs,$core->blog->id).
-			'</p>'.
+			'</label></p>'.
 			'<noscript><p><input type="submit" value="'.__('ok').'" /></p></noscript>';
 		}
@@ -93,9 +93,8 @@
 		"<head>\n".
 		'  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n".
+		'  <title>'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.'</title>'."\n".
+
 		'  <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />'."\n".
 		'  <meta name="GOOGLEBOT" content="NOSNIPPET" />'."\n".
-		'  <meta name="viewport" content="width=device-width, initial-scale=1.0" />'."\n".
-		'  <title>'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.'</title>'."\n".
-
 
 		self::jsLoadIE7().
@@ -134,11 +133,11 @@
 		'<form action="index.php" method="post">'.
 		$blog_box.
-		'<p class="nomobile"><a href="'.$core->blog->url.'" onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'.
+		'<p><a href="'.$core->blog->url.'" onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'.
 		'</p></form>'.
 		'</div>'.
 		'<div id="info-box2">'.
-		'<a class="smallscreen'.(preg_match('/index.php$/',$_SERVER['REQUEST_URI']) ? ' active' : '').'" href="index.php">'.__('My dashboard').'</a>'.
-		'<span class="smallscreen"> | </span><a class="smallscreen'.(preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']) ? ' active' : '').'" href="preferences.php">'.__('My preferences').'</a>'.
-		'<span class="smallscreen"> | </span><a href="index.php?logout=1" class="logout">'.sprintf(__('Logout %s'),$core->auth->userID()).' <img src="images/logout.png" alt="" /></a>'.
+		'<a'.(preg_match('/index.php$/',$_SERVER['REQUEST_URI']) ? ' class="active"' : '').' href="index.php">'.__('My dashboard').'</a>'.
+		'<span> | </span><a'.(preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']) ? ' class="active"' : '').' href="preferences.php">'.__('My preferences').'</a>'.
+		'<span> | </span><a href="index.php?logout=1" class="logout">'.sprintf(__('Logout %s'),$core->auth->userID()).' <img src="images/logout.png" alt="" /></a>'.
 		'</div>'.
 		'</div>'.
@@ -177,10 +176,5 @@
 		"</div>\n".		// End of #main
 
-		'<div id="main-menu">'."\n".
-
-		'<form id="search-menu" action="search.php" method="get">'.
-		'<p><label for="q" class="hidden">'.__('Search:').' </label>'.form::field('q',30,255,'').
-		'<input type="submit" value="'.__('OK').'" /></p>'.
-		'</form>';
+		'<div id="main-menu">'."\n";
 
 		foreach ($menu as $k => $v) {
@@ -199,5 +193,5 @@
 		echo
 		'</div>'."\n".		// End of #main-menu
-		'<div id="footer"><a href="http://dotclear.org/" title="'.$text.'"><img src="style/dc_logos/w-dotclear90.png" alt="'.$text.'" /></a></div>'."\n".
+		'<div id="footer"><a href="http://dotclear.org/" title="'.$text.'"><img src="style/dc_logo_footer.png" alt="'.$text.'" /></a></div>'."\n".
 		"</div>\n";		// End of #wrapper
 
@@ -222,5 +216,4 @@
 		'xml:lang="'.$core->auth->getInfo('user_lang').'" '.
 		'lang="'.$core->auth->getInfo('user_lang').'">'."\n".
-		'<meta name="viewport" content="width=device-width, initial-scale=1.0" />'."\n".
 		"<head>\n".
 		'  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n".
@@ -248,5 +241,5 @@
 		'<body id="dotclear-admin" class="popup">'."\n".
 
-		'<div id="top hidden"><h1>'.DC_VENDOR_NAME.'</h1></div>'."\n";
+		'<div id="top"><h1>'.DC_VENDOR_NAME.'</h1></div>'."\n";
 
 		echo
@@ -271,22 +264,4 @@
 		"</div>\n".		// End of #wrapper
 		'</body></html>';
-	}
-
-	public static function breadcrumb($elements=null,$with_home_link=true,$echo=true)
-	{
-		// First item of array elements should be blog's name, System or Plugins
-		$res = '<h2>'.($with_home_link ?
-			'<a class="go_home" href="index.php"><img src="style/dashboard.png" alt="'.__('Go to dashboard').'" /></a>' :
-			'<img src="style/dashboard-alt.png" alt="" />');
-		$index = 0;
-		foreach ($elements as $element => $url) {
-			$res .= ($with_home_link ? ($index == 1 ? ' : ' : ' &rsaquo; ') : ' ').($url ? '<a href="'.$url.'">' : '').$element.($url ? '</a>' : '');
-			$index++;
-		}
-		$res .= '</h2>';
-		if ($echo) {
-			echo $res;
-		}
-		return $res;
 	}
 
@@ -436,7 +411,5 @@
 
 		self::jsVar('dotclear.msg.help',
-			__('Help about this page')).
-		self::jsVar('dotclear.msg.help_hide',
-			__('Hide')).
+			__('help')).
 		self::jsVar('dotclear.msg.no_selection',
 			__('no selection')).
@@ -503,4 +476,6 @@
 		self::jsVar('dotclear.msg.confirm_change_post_format',
 			__('You have unsaved changes. Switch post format will loose these changes. Proceed anyway?')).
+		self::jsVar('dotclear.msg.confirm_change_post_format_noconvert',
+			__("Warning: post format change will not convert existing content. You will need to apply new format by yourself. Proceed anyway?")).
 		self::jsVar('dotclear.msg.load_enhanced_uploader',
 			__('Loading enhanced uploader, please wait.')).
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 1337)
+++ inc/admin/prepend.php	(revision 1179)
@@ -284,5 +284,5 @@
 	# Set menu titles
 	
-	$_menu['System']->title = __('System settings');
+	$_menu['System']->title = __('System');
 	$_menu['Blog']->title = __('Blog');
 	$_menu['Plugins']->title = __('Plugins');
Index: inc/core/class.dc.blog.php
===================================================================
--- inc/core/class.dc.blog.php	(revision 1280)
+++ inc/core/class.dc.blog.php	(revision 1262)
@@ -81,5 +81,5 @@
 			$this->desc = $b->blog_desc;
 			$this->url = $b->blog_url;
-			$this->host = http::getHostFromURL($this->url);
+			$this->host = preg_replace('|^([a-z]{3,}://)(.*?)/.*$|','$1$2',$this->url);
 			$this->creadt = strtotime($b->blog_creadt);
 			$this->upddt = strtotime($b->blog_upddt);
@@ -203,22 +203,26 @@
 	@param	ids		<b>mixed</b>		Comment(s) ID(s)
 	@param	del		<b>boolean</b>		If comment is delete, set this to true
-	*/
-	public function triggerComments($ids,$del=false)
+	@param	affected_posts		<b>mixed</b>		Posts(s) ID(s)
+	*/
+	public function triggerComments($ids, $del=false, $affected_posts=null)
 	{
 		$co_ids = dcUtils::cleanIds($ids);
+		$a_ids = dcUtils::cleanIds($affected_posts);
+		$a_tbs = array();
 		
 		# a) Retrieve posts affected by comments edition
-		$strReq = 
-			'SELECT post_id, comment_trackback '.
-			'FROM '.$this->prefix.'comment '.
-			'WHERE comment_id'.$this->con->in($co_ids).
-			'GROUP BY post_id,comment_trackback';
-		
-		$rs = $this->con->select($strReq);
-		
-		$a_ids = $a_tbs = array();
-		while ($rs->fetch()) {
-			$a_ids[] = (integer) $rs->post_id;
-			$a_tbs[] = (integer) $rs->comment_trackback;
+		if (empty($a_ids)) {
+			$strReq = 
+				'SELECT post_id, comment_trackback '.
+				'FROM '.$this->prefix.'comment '.
+				'WHERE comment_id'.$this->con->in($co_ids).
+				'GROUP BY post_id,comment_trackback';
+			
+			$rs = $this->con->select($strReq);
+			
+			while ($rs->fetch()) {
+				$a_ids[] = (integer) $rs->post_id;
+				$a_tbs[] = (integer) $rs->comment_trackback;
+			}
 		}
 		
@@ -255,4 +259,5 @@
 		{
 			$nb_comment = $nb_trackback = 0;
+			//$cur->nb_comment = $nb_comment;
 			foreach($b_ids as $b_key => $b_id)
 			{
@@ -505,5 +510,11 @@
 		$this->core->callBehavior('coreBeforeCategoryCreate',$this,$cur);
 		
-		$this->categories()->addNode($cur,$parent);
+		$id = $this->categories()->addNode($cur,$parent);
+		# Update category's cursor
+		$rs = $this->getCategory($id);
+		if (!$rs->isEmpty()) {
+			$cur->cat_lft = $rs->cat_lft;
+			$cur->cat_rgt = $rs->cat_rgt;
+		}
 		
 		# --BEHAVIOR-- coreAfterCategoryCreate
@@ -2181,6 +2192,19 @@
 		$co_ids = dcUtils::cleanIds($ids);
 		
-		if (empty($ids)) {
+		if (empty($co_ids)) {
 			throw new Exception(__('No such comment ID'));
+		}
+		
+		# Retrieve posts affected by comments edition
+		$affected_posts = array();
+		$strReq =
+			'SELECT distinct(post_id) '.
+			'FROM '.$this->prefix.'comment '.
+			'WHERE comment_id'.$this->con->in($co_ids);
+		
+		$rs = $this->con->select($strReq);
+		
+		while ($rs->fetch()) {
+			$affected_posts[] = (integer) $rs->post_id;
 		}
 		
@@ -2212,5 +2236,5 @@
 		
 		$this->con->execute($strReq);
-		$this->triggerComments($co_ids,true);
+		$this->triggerComments($co_ids, true, $affected_posts);
 		$this->triggerBlog();
 	}
@@ -2267,6 +2291,8 @@
 		
 		if ($cur->comment_site !== null && $cur->comment_site != '') {
-			if (!preg_match('|^http(s?)://|',$cur->comment_site)) {
+			if (!preg_match('|^http(s?)://|i',$cur->comment_site, $matches)) {
 				$cur->comment_site = 'http://'.$cur->comment_site;
+			}else{
+				$cur->comment_site = strtolower($matches[0]).substr($cur->comment_site, strlen($matches[0]));
 			}
 		}
Index: inc/core/class.dc.media.php
===================================================================
--- inc/core/class.dc.media.php	(revision 1280)
+++ inc/core/class.dc.media.php	(revision 1270)
@@ -497,7 +497,8 @@
 	@param	post_id	<b>integer</b>		Post ID
 	@param	media_id	<b>integer</b>		Optionnal media ID
-	@return	<b>array</b> Array of fileItems
-	*/
-	public function getPostMedia($post_id,$media_id=null)
+	@param	return_rs	<b>boolean</b>		Whether to return a resultset (true) or an array (false, default value).
+	@return	<b>array</b> Array or ResultSet of fileItems
+	*/
+	public function getPostMedia($post_id,$media_id=null,$return_rs=false)
 	{
 		$params = array(
@@ -515,9 +516,9 @@
 			$f = $this->fileRecord($rs);
 			if ($f !== null) {
-				$res[] = $f;
-			}
-		}
-		
-		return $res;
+				$res[] = $return_rs ? new ArrayObject($f) : $f;
+			}
+		}
+		
+		return $return_rs ? staticRecord::newFromArray($res) : $res;
 	}
 	
Index: inc/core/class.dc.update.php
===================================================================
--- inc/core/class.dc.update.php	(revision 1280)
+++ inc/core/class.dc.update.php	(revision 1231)
@@ -32,4 +32,5 @@
 	
 	protected $cache_ttl = '-6 hours';
+	protected $nocache_ttl = '-2 mins';
 	protected $forced_files = array();
 	
@@ -55,9 +56,10 @@
 	 * 
 	 * @param version		string	Current version to compare
+	 * @param nocache		boolean	Force checking
 	 * @return string				Latest version if available
 	 */
-	public function check($version)
-	{
-		$this->getVersionInfo();
+	public function check($version, $nocache=false)
+	{
+		$this->getVersionInfo($nocache);
 		$v = $this->getVersion();
 		if ($v && version_compare($version,$v,'<')) {
@@ -68,8 +70,13 @@
 	}
 	
-	public function getVersionInfo()
-	{
+	public function getVersionInfo($nocache=false)
+	{
+		# Check minimum time without cache (prevents from server flood)
+		if ($nocache && is_readable($this->cache_file) && filemtime($this->cache_file) > strtotime($this->nocache_ttl)) {
+			$nocache = false;
+		}
+		
 		# Check cached file
-		if (is_readable($this->cache_file) && filemtime($this->cache_file) > strtotime($this->cache_ttl))
+		if (is_readable($this->cache_file) && filemtime($this->cache_file) > strtotime($this->cache_ttl) && !$nocache)
 		{
 			$c = @file_get_contents($this->cache_file);
Index: inc/load_plugin_file.php
===================================================================
--- inc/load_plugin_file.php	(revision 1280)
+++ inc/load_plugin_file.php	(revision 1241)
@@ -86,5 +86,5 @@
 }
 
-http::$cache_max_age = 7200;
+http::$cache_max_age = (!defined('DC_CACHE_MAX_AGE') ? 604800 : DC_CACHE_MAX_AGE);
 http::cache(array_merge(array($PF),get_included_files()));
 
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 1279)
+++ inc/prepend.php	(revision 1233)
@@ -123,5 +123,5 @@
 # Constants
 define('DC_ROOT',path::real(dirname(__FILE__).'/..'));
-define('DC_VERSION','2.6-dev');
+define('DC_VERSION','2.5.2-dev');
 define('DC_DIGESTS',dirname(__FILE__).'/digests');
 define('DC_L10N_ROOT',dirname(__FILE__).'/../locales');
Index: inc/public/class.dc.template.php
===================================================================
--- inc/public/class.dc.template.php	(revision 1280)
+++ inc/public/class.dc.template.php	(revision 1249)
@@ -67,4 +67,5 @@
 		$this->addValue('BlogLanguage',array($this,'BlogLanguage'));
 		$this->addValue('BlogThemeURL',array($this,'BlogThemeURL'));
+		$this->addValue('BlogParentThemeURL',array($this,'BlogParentThemeURL'));
 		$this->addValue('BlogUpdateDate',array($this,'BlogUpdateDate'));
 		$this->addValue('BlogID',array($this,'BlogID'));
@@ -839,5 +840,5 @@
 	
 	/*dtd
-	<!ELEMENT tpl:BlogThemeURL - O -- Blog's current Themei URL -->
+	<!ELEMENT tpl:BlogThemeURL - O -- Blog's current Theme URL -->
 	*/
 	public function BlogThemeURL($attr)
@@ -845,4 +846,14 @@
 		$f = $this->getFilters($attr);
 		return '<?php echo '.sprintf($f,'$core->blog->settings->system->themes_url."/".$core->blog->settings->system->theme').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:BlogParentThemeURL - O -- Blog's current Theme's parent URL -->
+	*/
+	public function BlogParentThemeURL($attr)
+	{
+		$f = $this->getFilters($attr);
+		$parent = '$core->themes->moduleInfo($core->blog->settings->system->theme,\'parent\')';
+		return '<?php echo '.sprintf($f,'$core->blog->settings->system->themes_url."/".('."$parent".' ? '."$parent".' : $core->blog->settings->system->theme)').'; ?>';
 	}
     
Index: locales/bn/help/blowupConfig.html
===================================================================
--- locales/bn/help/blowupConfig.html	(revision 1280)
+++ locales/bn/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/ca/help/blowupConfig.html
===================================================================
--- locales/ca/help/blowupConfig.html	(revision 1280)
+++ locales/ca/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/cs/help/blowupConfig.html
===================================================================
--- locales/cs/help/blowupConfig.html	(revision 1280)
+++ locales/cs/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/da/help/blowupConfig.html
===================================================================
--- locales/da/help/blowupConfig.html	(revision 1280)
+++ locales/da/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/de/help/blowupConfig.html
===================================================================
--- locales/de/help/blowupConfig.html	(revision 1280)
+++ locales/de/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>Du kannst ein Bild Deiner Wahl statt des Standardbildes einsetzen.</p>
 
-<p>Wenn Du  "Benutzerdefiniert..." in der Bilderliste ausw&auml;hlst, dann hast Du die M&ouml;glichkeit, Dein eigenes Bild upzuloaden. <strong>Das Dateiformat muss entweder JPG der PNG sein und es muss 800px breit sein.</strong>
+<p>Wenn Du  "Benutzerdefiniert..." in der Bilderliste ausw&auml;hlst, dann hast Du die M&ouml;glichkeit, Dein eigenes Bild upzuloaden. <strong>Das Dateiformat muss entweder JPG der PNG sein und es muss 800px breit sein.</strong></p>
 
 <p>Wenn Du ein JPG-Bild uploadest, dann wird automatisch ein Rahmen um das Bild gesetzt. Dies geschieht nicht bei der Verwendung eines PNG-Bildes und die Transparenz wird ebenfalls beibehalten.</p>
Index: locales/en/main.po
===================================================================
--- locales/en/main.po	(revision 1280)
+++ locales/en/main.po	(revision 1256)
@@ -2154,4 +2154,7 @@
 msgstr ""
 
+msgid "Warning: post format change will not convert existing content. You will need to apply new format by yourself. Proceed anyway?"
+msgstr ""
+
 msgid "Loading enhanced uploader, please wait."
 msgstr ""
Index: locales/en/resources.php
===================================================================
--- locales/en/resources.php	(revision 1343)
+++ locales/en/resources.php	(revision 1179)
@@ -15,9 +15,9 @@
 
 $__resources['doc'] = array(
-	"Dotclear documentation" => 'http://dotclear.org/documentation/2.0',
-	'Dotclear presentation' => 'http://dotclear.org/documentation/2.0/overview/tour',
+	"Dotclear 2 documentation" => 'http://dotclear.org/documentation/2.0',
+	'Dotclear 2 presentation' => 'http://dotclear.org/documentation/2.0/overview/tour',
 	"User manual" => 'http://dotclear.org/documentation/2.0/usage',
 	"Installation and administration guides" => 'http://dotclear.org/documentation/2.0/admin',
-	"Dotclear support forum" => 'http://forum.dotclear.net/'
+	"Dotclear 2 support forum" => 'http://forum.dotclear.net/'
 );
 
Index: locales/eo/help/blowupConfig.html
===================================================================
--- locales/eo/help/blowupConfig.html	(revision 1280)
+++ locales/eo/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/es-ar/help/blowupConfig.html
===================================================================
--- locales/es-ar/help/blowupConfig.html	(revision 1280)
+++ locales/es-ar/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/es/help/blowupConfig.html
===================================================================
--- locales/es/help/blowupConfig.html	(revision 1280)
+++ locales/es/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/eu/help/blowupConfig.html
===================================================================
--- locales/eu/help/blowupConfig.html	(revision 1280)
+++ locales/eu/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/fr/help/blowupConfig.html
===================================================================
--- locales/fr/help/blowupConfig.html	(revision 1280)
+++ locales/fr/help/blowupConfig.html	(revision 1264)
@@ -44,5 +44,5 @@
 <p>En choisissant "Personnalisé..." parmi la liste d'images, vous pourrez
 déposer votre propre image. <strong>Celle-ci doit être au format JPG ou PNG et
-avoir une largeur exacte de 800 pixels.</strong>
+avoir une largeur exacte de 800 pixels.</strong></p>
 
 <p>Si vous déposez une image au format JPG, un cadre sera ajouté autours de
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 1337)
+++ locales/fr/main.po	(revision 1288)
@@ -1038,5 +1038,5 @@
 #, fuzzy, php-format
 msgid "Path <strong>%s</strong> is not writable."
-msgstr "Le répertoire de cache %s n'est pas accessible en écriture."
+msgstr "Le répertoire <strong>%s</strong> n'est pas accessible en écriture."
 
 #, fuzzy
@@ -1123,5 +1123,5 @@
 #, php-format
 msgid "You can change your user language in your <a href=\"%1$s\">preferences</a> or change your blog's main language in your <a href=\"%2$s\">blog settings</a>."
-msgstr "Vous pouvez changer votre langue d'utilisateur dans vos <a href=\"%1$s\">préférences</a> ou changer la langue principale de votre blog dans vos <a href=\"%2$s\">paramètres de blog</a>."
+msgstr "Vous pouvez changer votre langue d'utilisateur dans vos <a href=\"%1$s\">préférences</a> ou changer la langue principale de votre blog dans vos <a href=\"%2$s\">paramètres du blog</a>."
 
 msgid "Installed languages"
@@ -1193,4 +1193,10 @@
 msgstr "Gestionnaire de médias"
 
+msgid "Go to %s folder"
+msgstr "Aller au dossier %s"
+
+msgid "Media details of %s"
+msgstr "Détails du média %s"
+
 msgid "confirm removal"
 msgstr "Confirmer la suppression"
@@ -1484,5 +1490,5 @@
 
 msgid "Plugins"
-msgstr "Plugins"
+msgstr "Extensions"
 
 msgid "Activated plugins"
@@ -1562,5 +1568,5 @@
 
 msgid "Search"
-msgstr "Rechercher"
+msgstr "Recherche"
 
 msgid "cancel"
@@ -1917,9 +1923,9 @@
 msgstr "Requête :"
 
-msgid "Search in entries"
-msgstr "Rechercher dans les billets"
-
-msgid "Search in comments"
-msgstr "Rechercher dans les commentaires"
+msgid "Search entries"
+msgstr "Rechercher des billets"
+
+msgid "Search comments"
+msgstr "Rechercher des commentaires"
 
 msgid "schedule"
@@ -1994,7 +2000,13 @@
 msgstr "Les fichiers suivants de votre installation de Dotclear ne peuvent pas être écrits. Veuillez corriger la situation ou <a href=\"http://fr.dotclear.org/download\">mettre à jour manuellement</a>."
 
+msgid "Manual checking of update done successfully."
+msgstr "Vérification manuelle de mise à jour effectuée avec succès."
+
 msgid "No newer Dotclear version available."
 msgstr "Aucune nouvelle version de Dotclear n'est disponible."
 
+msgid "Force checking update Dotclear"
+msgstr "Forcer la vérification de mise à jour de Dotclear"
+
 #, php-format
 msgid "Dotclear %s is available."
@@ -2052,5 +2064,5 @@
 
 msgid "Mandatory for password recovering procedure."
-msgstr "Indispensable pour la procédure de récupération de mot de passe."
+msgstr "Obligatoire pour la procédure de récupération de mot de passe."
 
 msgid "Password change required to connect"
@@ -2133,9 +2145,9 @@
 #, fuzzy
 msgid "Go to the content"
-msgstr "Voir ce billet sur le site"
+msgstr "Aller au contenu"
 
 #, fuzzy
 msgid "Go to the menu"
-msgstr "Aller sur le site"
+msgstr "Aller au menu"
 
 msgid "Go to site"
@@ -2162,7 +2174,4 @@
 msgstr "Aide"
 
-msgid "Help about this page"
-msgstr "Aide pour cette page"
-
 msgid "uncover"
 msgstr "dévoiler"
@@ -2258,4 +2267,7 @@
 msgstr "Vous avez des modifications non sauvegardées. Changer de format vous fera perdre ces modifications. Continuer ?"
 
+msgid "Warning: post format change will not convert existing content. You will need to apply new format by yourself. Proceed anyway?"
+msgstr "Attention : le changement de syntaxe ne transformera pas les balises des contenus déjà saisis. Pensez à les réadapter après cette opération. Confirmez-vous ce changement de syntaxe ?"
+
 msgid "Loading enhanced uploader, please wait."
 msgstr "Chargement de l'interface avancée."
@@ -2506,5 +2518,5 @@
 #, fuzzy
 msgid "You are not allowed to reset categories order"
-msgstr "Vous n'êtes pas autorisé à supprimer des catégories"
+msgstr "Vous n'êtes pas autorisé à réinitialiser l'ordre des catégories"
 
 msgid "Category URL must be unique."
@@ -2928,17 +2940,2 @@
 msgid "Invalid publication date"
 msgstr "Date de publication invalide"
-
-msgid "System settings"
-msgstr "Réglages système"
-
-msgid "Additional plugins"
-msgstr "Modules complémentaires"
-
-msgid "Personal notes:"
-msgstr "Notes personnelles:"
-
-msgid "New user"
-msgstr "Nouvel utilisateur"
-
-msgid "faut virer ça ça ne sert qu'a contourner le bug corrige en 2.5.2"
-msgstr "Notes personnelles :"
Index: locales/fr/plugins.po
===================================================================
--- locales/fr/plugins.po	(revision 1342)
+++ locales/fr/plugins.po	(revision 1286)
@@ -1024,6 +1024,6 @@
 msgid ""
 "On the other hand, in WordPress, a post can not be uncategorized, and a "
-"default installation has a first category labelised <i>\"Uncategorized\"</i>."
-"If you did not change that category, you can just ignore it while "
+"default installation has a first category labelised <i>\"Uncategorized\"</"
+"i>. If you did not change that category, you can just ignore it while "
 "importing your blog, as Dotclear allows you to actually keep your posts "
 "uncategorized."
@@ -1031,5 +1031,5 @@
 "D'autre part, dans WordPress, un billet ne peut pas être sans catégorie, et "
 "une installation par défaut possède systématiquement une première catégorie "
-"nommée <i>« sans catégorie »</ i>. Si vous n'avez pas changé cette "
+"nommée <i>« sans catégorie »</i>. Si vous n'avez pas changé cette "
 "catégorie, vous pouvez simplement l'ignorer lors de l'importation sur votre "
 "blog, puisque Dotclear vous permet réellement de conserver votre message "
@@ -1131,5 +1131,5 @@
 
 msgid "Vacuum tables"
-msgstr "Vidage des tables"
+msgstr "Optimiser les tables"
 
 msgid "Counters"
@@ -1137,5 +1137,5 @@
 
 msgid "Reset comments and ping counters"
-msgstr "Remet à zéro les compteurs de commentaires et de signalements"
+msgstr "Recalculer les compteurs de commentaires et de signalements"
 
 msgid "Search engine index"
@@ -1146,8 +1146,8 @@
 
 msgid "Index all posts"
-msgstr "Indexation de tous les billets"
+msgstr "Indexer tous les billets"
 
 msgid "Index all comments"
-msgstr "Indexation de tous les commentaires"
+msgstr "Indexer tous les commentaires"
 
 msgid "Vacuum logs"
@@ -1155,5 +1155,5 @@
 
 msgid "Delete all logs"
-msgstr "Suppression de tous les journaux"
+msgstr "Supprimer tous les journaux"
 
 msgid "Empty templates cache directory"
@@ -1161,5 +1161,5 @@
 
 msgid "Empty directory"
-msgstr "Vidage du répertoire"
+msgstr "Vider le répertoire"
 
 msgid "Pages"
@@ -1241,5 +1241,5 @@
 
 msgid "Go to this page on the site"
-msgstr "Voir cette page sur le site"
+msgstr "Aller sur cette page"
 
 msgid "Page status:"
@@ -1913,15 +1913,2 @@
 #~ msgid "The backup file does not appear to be well formed."
 #~ msgstr "Le fichier de sauvegarde semble mal formaté."
-
-msgid "Settings for %s"
-msgstr "Réglages pour %s"
-
-msgid "Settings for %s"
-msgstr "Réglages pour %s"
-
-msgid "User preferences"
-msgstr "Préférences utilisateur"
-
-msgid "Global preferences"
-msgstr "Préférences globales"
-
Index: locales/fr/resources.php
===================================================================
--- locales/fr/resources.php	(revision 1343)
+++ locales/fr/resources.php	(revision 1179)
@@ -15,9 +15,9 @@
 
 $__resources['doc'] = array(
-	"Accueil de l'aide Dotclear" => 'http://fr.dotclear.org/documentation/2.0',
-	'Présentation de Dotclear' => 'http://doc.dotclear.net/2.0/overview/tour',
+	"Accueil de l'aide Dotclear 2" => 'http://doc.dotclear.net/2.0',
+	'Présentation de Dotclear 2' => 'http://doc.dotclear.net/2.0/overview/tour',
 	"Manuel de l'utilisateur" => 'http://doc.dotclear.net/2.0/usage',
 	"Guide d'installation et d'administration" => 'http://doc.dotclear.net/2.0/admin',
-	"Forum de support de Dotclear" => 'http://forum.dotclear.net/'
+	"Forum de support de Dotclear 2" => 'http://forum.dotclear.net/'
 );
 ?>
Index: locales/hu/help/blowupConfig.html
===================================================================
--- locales/hu/help/blowupConfig.html	(revision 1280)
+++ locales/hu/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/it/help/blowupConfig.html
===================================================================
--- locales/it/help/blowupConfig.html	(revision 1280)
+++ locales/it/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/ja/help/blowupConfig.html
===================================================================
--- locales/ja/help/blowupConfig.html	(revision 1280)
+++ locales/ja/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>デフォルトで指定されているものの代わりに、リストからヘッダ画像を選ぶことができます。</p>
 
-<p>画像リストで「カスタム...」を選んだ場合、独自の画像をアップロードすることができます。 <strong>画像ファイルは JPG または PNG フォーマットで、横幅が正確に800ピクセルである必要があります。</strong>
+<p>画像リストで「カスタム...」を選んだ場合、独自の画像をアップロードすることができます。 <strong>画像ファイルは JPG または PNG フォーマットで、横幅が正確に800ピクセルである必要があります。</strong></p>
 
 <p>JPG画像がアップロードされた場合、画像に境界線が付加されます。 PNG画像の場合には付加されず、透過性も維持されます。</p>
Index: locales/ko/help/blowupConfig.html
===================================================================
--- locales/ko/help/blowupConfig.html	(revision 1280)
+++ locales/ko/help/blowupConfig.html	(revision 1264)
@@ -34,5 +34,5 @@
 <p>기본이미지 대신, 목록에 있는 머리글 이미지를 쓰실 수 있습니다.</p>
 
-<p>이미지 목록에서 "개성에 맞게..."를 선택하시면, 당신 자신이 보유한 이미지를 올릴 수 있습니다. <strong>이미지 파일은 JPG나 PNG 포맷이어야하고 폭은 정확히 800px 이어야 합니다.</strong>
+<p>이미지 목록에서 "개성에 맞게..."를 선택하시면, 당신 자신이 보유한 이미지를 올릴 수 있습니다. <strong>이미지 파일은 JPG나 PNG 포맷이어야하고 폭은 정확히 800px 이어야 합니다.</strong></p>
 
 <p>JPG 이미지를 올리실 때는, 윤곽선이 추가됩니다. PNG 이미지의 경우는 해당되지 않습니다. (PNG 이미지의 투명도도 또한 유지됩니다.)</p>
Index: locales/lt/help/blowupConfig.html
===================================================================
--- locales/lt/help/blowupConfig.html	(revision 1280)
+++ locales/lt/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>Du kannst ein Bild Deiner Wahl statt des Standardbildes einsetzen.</p>
 
-<p>Wenn Du  "Benutzerdefiniert..." in der Bilderliste ausw&auml;hlst, dann hast Du die M&ouml;glichkeit, Dein eigenes Bild upzuloaden. <strong>Das Dateiformat muss entweder JPG der PNG sein und es muss 800px breit sein.</strong>
+<p>Wenn Du  "Benutzerdefiniert..." in der Bilderliste ausw&auml;hlst, dann hast Du die M&ouml;glichkeit, Dein eigenes Bild upzuloaden. <strong>Das Dateiformat muss entweder JPG der PNG sein und es muss 800px breit sein.</strong></p>
 
 <p>Wenn Du ein JPG-Bild uploadest, dann wird automatisch ein Rahmen um das Bild gesetzt. Dies geschieht nicht bei der Verwendung eines PNG-Bildes und die Transparenz wird ebenfalls beibehalten.</p>
Index: locales/nl/help/blowupConfig.html
===================================================================
--- locales/nl/help/blowupConfig.html	(revision 1280)
+++ locales/nl/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/oc/help/blowupConfig.html
===================================================================
--- locales/oc/help/blowupConfig.html	(revision 1280)
+++ locales/oc/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/pl/help/blowupConfig.html
===================================================================
--- locales/pl/help/blowupConfig.html	(revision 1280)
+++ locales/pl/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/pt-br/help/blowupConfig.html
===================================================================
--- locales/pt-br/help/blowupConfig.html	(revision 1280)
+++ locales/pt-br/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/pt/help/blowupConfig.html
===================================================================
--- locales/pt/help/blowupConfig.html	(revision 1280)
+++ locales/pt/help/blowupConfig.html	(revision 1264)
@@ -51,5 +51,5 @@
 <br />
 
-<em>NOTA: Uma bordura aparecera a volta da imagem o formato JPG, isto não acontece com as imagem em PNG -é a transparência dos PNGs fica efectiva-</em>
+<em>NOTA: Uma bordura aparecera a volta da imagem o formato JPG, isto não acontece com as imagem em PNG -é a transparência dos PNGs fica efectiva-</em></p>
 
 <h4>Estilos pré-definidos</h4>
Index: locales/ro/help/blowupConfig.html
===================================================================
--- locales/ro/help/blowupConfig.html	(revision 1280)
+++ locales/ro/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/sr/help/blowupConfig.html
===================================================================
--- locales/sr/help/blowupConfig.html	(revision 1280)
+++ locales/sr/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/sv/help/blowupConfig.html
===================================================================
--- locales/sv/help/blowupConfig.html	(revision 1280)
+++ locales/sv/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/te/help/blowupConfig.html
===================================================================
--- locales/te/help/blowupConfig.html	(revision 1280)
+++ locales/te/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/tr/help/blowupConfig.html
===================================================================
--- locales/tr/help/blowupConfig.html	(revision 1280)
+++ locales/tr/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>You can choose a header image among the list to use in place of the default one.</p>
 
-<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
+<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong></p>
 
 <p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
Index: locales/zh-cn/help/blowupConfig.html
===================================================================
--- locales/zh-cn/help/blowupConfig.html	(revision 1280)
+++ locales/zh-cn/help/blowupConfig.html	(revision 1264)
@@ -35,5 +35,5 @@
 <p>您可以从列表中选择一个头部图片来取代默认的。</p>
 
-<p>当您在图片列表中选择“定制...”，您将可以上传自己的图片。<strong>图片必须是 JPG 或者 PNG 格式并且必须精确等于 800 像素宽。</strong>
+<p>当您在图片列表中选择“定制...”，您将可以上传自己的图片。<strong>图片必须是 JPG 或者 PNG 格式并且必须精确等于 800 像素宽。</strong></p>
 
 <p>如果您上传一个 JPG 图片，一个边框将会被添加。而 PNG 图片不会如此(透明特性也会被保留)。</p>
Index: plugins/aboutConfig/_admin.php
===================================================================
--- plugins/aboutConfig/_admin.php	(revision 1294)
+++ plugins/aboutConfig/_admin.php	(revision 1179)
@@ -12,5 +12,5 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$_menu['System']->addItem('about:config','plugin.php?p=aboutConfig','index.php?pf=aboutConfig/icon.png',
+$_menu['Plugins']->addItem('about:config','plugin.php?p=aboutConfig','index.php?pf=aboutConfig/icon.png',
 		preg_match('/plugin.php\?p=aboutConfig(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin());
Index: plugins/aboutConfig/index.php
===================================================================
--- plugins/aboutConfig/index.php	(revision 1341)
+++ plugins/aboutConfig/index.php	(revision 1274)
@@ -86,5 +86,5 @@
 	return
 	'<tr>'.
-	'<td scope="raw"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
+	'<td scope="row"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
 	'<td>'.$s['type'].'</td>'.
@@ -97,5 +97,10 @@
   <title>about:config</title>
   <?php echo dcPage::jsPageTabs($part); ?>
-  <script type="text/javascript">
+  <style type="text/css">
+  table.settings { border: 1px solid #999; margin-bottom: 2em; }
+  table.settings th { background: #f5f5f5; color: #444; padding-top: 0.3em; padding-bottom: 0.3em; }
+  p.anchor-nav {float: right; }
+  </style>
+	<script type="text/javascript">
 	//<![CDATA[
 	$(function() {
@@ -122,17 +127,11 @@
 	dcPage::message(__('Settings definition successfully updated'));
 }
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('about:config').'</span>' => ''
-	));
-?>
-
-<div id="local" class="multi-part" title="<?php echo sprintf(__('Settings for %s'),html::escapeHTML($core->blog->name)); ?>">
-
-
-<?php
-$table_header = '<table class="settings" id="%s"><caption class="as_h3">%s</caption>'.
+?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title">about:config</span></h2>
+
+<div id="local" class="multi-part" title="<?php echo __('blog settings'); ?>">
+
+<?php 
+$table_header = '<table class="settings" id="%s"><caption>%s</caption>'.
 '<thead>'.
 '<tr>'."\n".
Index: plugins/antispam/index.php
===================================================================
--- plugins/antispam/index.php	(revision 1341)
+++ plugins/antispam/index.php	(revision 1274)
@@ -123,10 +123,6 @@
 if ($filter_gui !== false)
 {
-	dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			$page_name => $p_url,
-			'<span class="page-title">'.sprintf(__('%s configuration'),$filter->name).'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_name.'</a>'.
+		' &rsaquo; <span class="page-title">'.sprintf(__('%s configuration'),$filter->name).'</span></h2>';
 
 	echo $filter_gui;
@@ -134,9 +130,5 @@
 else
 {
-	dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.$page_name.'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_name.'</span></h2>';
 
 	# Information
@@ -178,5 +170,5 @@
 	# Filters
 	echo
-	'<form action="'.$p_url.'" method="post" id="filters-form">';
+	'<form action="'.$p_url.'" method="post" class="fieldset" id="filters-form">';
 
 	if (!empty($_GET['upd'])) {
@@ -186,5 +178,5 @@
 	echo
 	'<table class="dragable">'.
-	'<caption class="as_h3">'.__('Available spam filters').'</caption>'.
+	'<caption>'.__('Available spam filters').'</caption>'.
 	'<thead><tr>'.
 	'<th>'.__('Order').'</th>'.
@@ -212,5 +204,5 @@
 		'<td class="nowrap">'.form::checkbox(array('filters_active[]'),$fid,$f->active, '', '', false, 'title="'.__('Active').'"').'</td>'.
 		'<td class="nowrap">'.form::checkbox(array('filters_auto_del[]'),$fid,$f->auto_delete, '', '', false, 'title="'.__('Auto Del.').'"').'</td>'.
-		'<td class="nowrap" scope="raw">'.$f->name.'</td>'.
+		'<td class="nowrap" scope="row">'.$f->name.'</td>'.
 		'<td class="maximal">'.$f->description.'</td>'.
 		'<td class="status">'.$gui_link.'</td>'.
Index: plugins/antispam/style.css
===================================================================
--- plugins/antispam/style.css	(revision 1330)
+++ plugins/antispam/style.css	(revision 0)
@@ -8,4 +8,5 @@
 	margin: 0.5em 0;
 	padding-left: 16px;
+	/*background: url(index.php?pf=antispam/feed.png) no-repeat center left;*/
 	background-color: transparent;
 	background-position: center left;
Index: plugins/attachments/_public.php
===================================================================
--- plugins/attachments/_public.php	(revision 1280)
+++ plugins/attachments/_public.php	(revision 1266)
@@ -40,12 +40,16 @@
 		"<?php\n".
 		'if ($_ctx->posts !== null && $core->media) {'."\n".
-			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
+		'$_ctx->attachments = $core->media->getPostMedia($_ctx->posts->post_id, null, true);'."\n".
 		"?>\n".
 		
-		'<?php foreach ($_ctx->attachments as $attach_i => $attach_f) : '.
-		'$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'.
-		'$_ctx->file_url = $attach_f->file_url; ?>'.
+		'<?php $attach_i = 0; ?>'. // LEGACY
+		'<?php while ($_ctx->attachments->fetch()) : ?>'.
+		
+		'<?php $GLOBALS[\'attach_i\'] = $attach_i; $attach_f = $_ctx->attachments; $GLOBALS[\'attach_f\'] = $attach_f;'. // LEGACY
+		'$_ctx->file_url = $attach_f->file_url; ?>'. // LEGACY
 		$content.
-		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
+		'<?php $attach_i++; ?>'. // LEGACY
+		'<?php endwhile; '.
+		'$_ctx->attachments = null; ?>'.
 		
 		"<?php } ?>\n";
@@ -60,5 +64,5 @@
 	{
 		return
-		"<?php if (\$attach_i == 0) : ?>".
+		"<?php if (\$_ctx->attachments->isStart()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -71,5 +75,5 @@
 	{
 		return
-		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
+		"<?php if (\$_ctx->attachments->isEnd()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -93,15 +97,15 @@
 		if (isset($attr['is_image'])) {
 			$sign = (boolean) $attr['is_image'] ? '' : '!';
-			$if[] = $sign.'$attach_f->media_image';
+			$if[] = $sign.'$_ctx->attachments->media_image';
 		}
 		
 		if (isset($attr['has_thumb'])) {
 			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
-			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
+			$if[] = $sign.'isset($_ctx->attachments->media_thumb[\'sq\'])';
 		}
 		
 		if (isset($attr['is_mp3'])) {
 			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
-			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
+			$if[] = '$_ctx->attachments->type '.$sign.' "audio/mpeg3"';
 		}
 		
@@ -109,7 +113,7 @@
 			$sign = (boolean) $attr['is_flv'] ? '' : '!';
 			$if[] = $sign.
-				'($attach_f->type == "video/x-flv" || '.
-				'$attach_f->type == "video/mp4" || '.
-				'$attach_f->type == "video/x-m4v")';
+				'($_ctx->attachments->type == "video/x-flv" || '.
+				'$_ctx->attachments->type == "video/mp4" || '.
+				'$_ctx->attachments->type == "video/x-m4v")';
 		}
 		
@@ -127,5 +131,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->type').'; ?>';
 	}
 	
@@ -136,5 +140,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_type').'; ?>';
 	}
 	
@@ -145,5 +149,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->basename').'; ?>';
 	}
 	
@@ -158,7 +162,7 @@
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
 		if (!empty($attr['full'])) {
-			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
-		}
-		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
+			return '<?php echo '.sprintf($f,'$_ctx->attachments->size').'; ?>';
+		}
+		return '<?php echo '.sprintf($f,'files::size($_ctx->attachments->size)').'; ?>';
 	}
 	
@@ -169,5 +173,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_title').'; ?>';
 	}
 	
@@ -180,6 +184,6 @@
 		return
 		'<?php '.
-		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
-			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
+		'if (isset($_ctx->attachments->media_thumb[\'sq\'])) {'.
+			'echo '.sprintf($f,'$_ctx->attachments->media_thumb[\'sq\']').';'.
 		'}'.
 		'?>';
@@ -192,5 +196,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->file_url').'; ?>';
 	}
 	
Index: plugins/blogroll/_admin.php
===================================================================
--- plugins/blogroll/_admin.php	(revision 1296)
+++ plugins/blogroll/_admin.php	(revision 1179)
@@ -25,5 +25,5 @@
 }
 
-$_menu['Blog']->addItem(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon-small.png',
+$_menu['Plugins']->addItem(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon-small.png',
                 preg_match('/plugin.php\?p=blogroll(&.*)?$/',$_SERVER['REQUEST_URI']),
                 $core->auth->check('usage,contentadmin',$core->blog->id));
Index: plugins/blogroll/edit.php
===================================================================
--- plugins/blogroll/edit.php	(revision 1339)
+++ plugins/blogroll/edit.php	(revision 1179)
@@ -95,12 +95,4 @@
 
 <body>
-<?php
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => $p_url
-		));
-?>
-
 <?php echo '<p><a href="'.$p_url.'">'.__('Return to blogroll').'</a></p>'; ?>
 
Index: plugins/blogroll/index.php
===================================================================
--- plugins/blogroll/index.php	(revision 1339)
+++ plugins/blogroll/index.php	(revision 1179)
@@ -177,11 +177,5 @@
 
 <body>
-<?php
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => ''
-		));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title"><?php echo __('Blogroll'); ?></span></h2>
 
 <?php
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 1339)
+++ plugins/blowupConfig/index.php	(revision 1179)
@@ -221,12 +221,7 @@
 <body>
 <?php
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Blowup configuration').'</span>' => ''
-	));
-
-echo
+echo
+'<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Blowup configuration').'</span></h2>'.
 '<p><a class="back" href="blog_theme.php">'.__('back').'</a></p>';
 
Index: plugins/daInstaller/index.php
===================================================================
--- plugins/daInstaller/index.php	(revision 1339)
+++ plugins/daInstaller/index.php	(revision 1237)
@@ -255,13 +255,6 @@
 '</head>'.
 '<body>'.
-infoMessages();
-
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('DotAddict.org Installer').'</span>' => ''
-	));
-
-echo
+infoMessages().
+'<h2 class="page-title">'.__('DotAddict.org Installer').'</h2>'.
 '<p>'.__('Install and update your extensions live from DotAddict.org').'</p>';
 
Index: plugins/importExport/inc/class.dc.import.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.import.flat.php	(revision 1298)
+++ plugins/importExport/inc/class.dc.import.flat.php	(revision 939)
@@ -184,12 +184,12 @@
 		'<p>'.sprintf(__('This will import a single blog backup as new content in the current blog: %s.'),html::escapeHTML($this->core->blog->name)).'</p>'.
 		
-		'<p><label for="up_single_file" class="classic">'.__('Upload a backup file').
-		' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.' </label>'.
-		' <input type="file" id="up_single_file" name="up_single_file" size="20" />'.
+		'<p><label for="up_single_file">'.__('Upload a backup file').
+		' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.'</label>'.
+		'<input type="file" id="up_single_file" name="up_single_file" size="20" />'.
 		'</p>';
 		
 		if ($has_files) {
 			echo 
-			'<p><label for="public_single_file" class="classic">'.__('or pick up a local file in your public directory').' '.
+			'<p><label for="public_single_file">'.__('or pick up a local file in your public directory').' '.
 			form::combo('public_single_file',$public_files).
 			'</label></p>';
@@ -211,8 +211,8 @@
 			'<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data" id="formfull">'.
 			'<fieldset><legend>'.__('Multiple blogs').'</legend>'.
-			'<p class="warning">'.__('This will reset all the content of your database, except users.').'</p>'.
-			
-			'<p><label for="up_full_file" class="classic">'.__('Upload a backup file').' '.
-			' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.' </label>'.
+			'<p>'.__('This will reset all the content of your database, except users.').'</p>'.
+			
+			'<p><label for="up_full_file">'.__('Upload a backup file').
+			' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.'</label>'.
 			'<input type="file" id="up_full_file" name="up_full_file" size="20" />'.
 			'</p>';
@@ -220,5 +220,5 @@
 			if ($has_files) {
 				echo 
-				'<p><label for="public_full_file" class="classic">'.__('or pick up a local file in your public directory').' </label>'.
+				'<p><label for="public_full_file">'.__('or pick up a local file in your public directory').'</label>'.
 				form::combo('public_full_file',$public_files).
 				'</p>';
Index: plugins/importExport/index.php
===================================================================
--- plugins/importExport/index.php	(revision 1339)
+++ plugins/importExport/index.php	(revision 840)
@@ -74,12 +74,7 @@
 
 if ($type && $module !== null) {
-	dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			$title => $p_url,
-			'<span class="page-title">'.html::escapeHTML($module->name).'</span>' => ''
-		));
-
 	echo
+	'<h2><a href="'.$p_url.'">'.$title.'</a>'.
+	' &rsaquo; <span class="page-title">'.html::escapeHTML($module->name).'</span></h2>'.
 	'<div id="ie-gui">';
 	
@@ -89,11 +84,6 @@
 }
 else {
-	dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.$title.'</span>' => ''
-		));
-
 	echo
+	'<h2 class="page-title">'.$title.'</h2>'.
 	'<h3>'.__('Import').'</h3>'.listImportExportModules($core,$modules['import']).
 	'<h3>'.__('Export').'</h3>'.listImportExportModules($core,$modules['export']);
Index: plugins/maintenance/index.php
===================================================================
--- plugins/maintenance/index.php	(revision 1339)
+++ plugins/maintenance/index.php	(revision 1179)
@@ -69,11 +69,5 @@
 
 <body>
-<?php
-	dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.__('Maintenance').'</span>' => ''
-		));
-?>
+<h2 class="page-title"><?php echo __('Maintenance'); ?></h2>
 
 <?php
Index: plugins/maintenance/locales/fr/help/maintenance.html
===================================================================
--- plugins/maintenance/locales/fr/help/maintenance.html	(revision 1280)
+++ plugins/maintenance/locales/fr/help/maintenance.html	(revision 1272)
@@ -10,8 +10,8 @@
 <dl>
   <dt>Optimiser l'espace de la base de données</dt>
-  <dd>Au fur at à mesure des suppressions ou modifications dans vos billets, les tables de la 
+  <dd>Au fur et à mesure des suppressions ou modifications dans vos billets, les tables de la 
   base de données se fragmentent. L'opération d'optimisation permet de compacter celles-ci.<br />
   Cette opération n'a aucun impact sur l'intégrité de vos données.<br />
-  Il est fortement conseillé d'optimiser la base de données avant tout export de blog</dd>
+  Il est fortement conseillé d'optimiser la base de données avant tout export de blog.</dd>
   
   <dt>Compteurs</dt>
Index: plugins/pages/list.php
===================================================================
--- plugins/pages/list.php	(revision 1339)
+++ plugins/pages/list.php	(revision 1179)
@@ -177,11 +177,5 @@
 <body>
 <?php
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Pages').'</span>' => ''
-	));
-
-echo
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Pages').'</span></h2>'.
 '<p class="top-add"><a class="button add" href="'.$p_url.'&amp;act=page">'.__('New page').'</a></p>';
 
Index: plugins/pages/page.php
===================================================================
--- plugins/pages/page.php	(revision 1339)
+++ plugins/pages/page.php	(revision 1239)
@@ -302,4 +302,5 @@
   dcPage::jsToolBar().
   dcPage::jsModal().
+  dcPage::jsMetaEditor().
   dcPage::jsLoad('js/_post.js').
   dcPage::jsConfirmClose('entry-form','comment-form').
@@ -338,34 +339,29 @@
 }
 
-if ($post_id) {
-	switch ($post_status) {
-		case 1:
-			$img_status = sprintf($img_status_pattern,__('published'),'check-on.png');
-			break;
-		case 0:
-			$img_status = sprintf($img_status_pattern,__('unpublished'),'check-off.png');
-			break;
-		case -1:
-			$img_status = sprintf($img_status_pattern,__('scheduled'),'scheduled.png');
-			break;
-		case -2:
-			$img_status = sprintf($img_status_pattern,__('pending'),'check-wrn.png');
-			break;
-		default:
-			$img_status = '';
-	}
-	$edit_entry_title = ' &ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
-} else {
-	$edit_entry_title = '';
-}
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Pages') => $p_url,
-		'<span class="page-title">'.$page_title.$edit_entry_title.'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="'.$p_url.'">'.__('Pages').'</a> &rsaquo; <span class="page-title">'.$page_title; 
+	if ($post_id) {
+		switch ($post_status) {
+			case 1:
+				$img_status = sprintf($img_status_pattern,__('published'),'check-on.png');
+				break;
+			case 0:
+				$img_status = sprintf($img_status_pattern,__('unpublished'),'check-off.png');
+				break;
+			case -1:
+				$img_status = sprintf($img_status_pattern,__('scheduled'),'scheduled.png');
+				break;
+			case -2:
+				$img_status = sprintf($img_status_pattern,__('pending'),'check-wrn.png');
+				break;
+			default:
+				$img_status = '';
+		}
+		echo ' &ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
+	}
+echo	'</span></h2>';
 
 if ($post_id && $post->post_status == 1) {
-	echo '<p><a class="preview_link" href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this page on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
+	echo '<p><a href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this page on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
 }
 
@@ -374,7 +370,7 @@
 if ($post_id)
 {
-	echo '<p class="nav_prevnext">';
+	echo '<p>';
 	if ($prev_link) { echo $prev_link; }
-	if ($next_link && $prev_link) { echo ' | '; }
+	if ($next_link && $prev_link) { echo ' - '; }
 	if ($next_link) { echo $next_link; }
 	
Index: plugins/pings/index.php
===================================================================
--- plugins/pings/index.php	(revision 1339)
+++ plugins/pings/index.php	(revision 1179)
@@ -51,10 +51,5 @@
 <body>
 <?php
-
-dcPage::breadcrumb(
-	array(
-		__('Plugins') => '',
-		'<span class="page-title">'.__('Pings configuration').'</span>' => ''
-	));
+echo '<h2 class="page-title">'.__('Pings configuration').'</h2>';
 
 if (!empty($_GET['up'])) {
Index: plugins/simpleMenu/_admin.php
===================================================================
--- plugins/simpleMenu/_admin.php	(revision 1292)
+++ plugins/simpleMenu/_admin.php	(revision 1179)
@@ -25,5 +25,5 @@
 }
 
-$_menu['Blog']->addItem(__('Simple menu'),'plugin.php?p=simpleMenu','index.php?pf=simpleMenu/icon-small.png',
+$_menu['Plugins']->addItem(__('Simple menu'),'plugin.php?p=simpleMenu','index.php?pf=simpleMenu/icon-small.png',
                 preg_match('/plugin.php\?p=simpleMenu(&.*)?$/',$_SERVER['REQUEST_URI']),
                 $core->auth->check('usage,contentadmin',$core->blog->id));
Index: plugins/simpleMenu/index.php
===================================================================
--- plugins/simpleMenu/index.php	(revision 1339)
+++ plugins/simpleMenu/index.php	(revision 1273)
@@ -384,15 +384,10 @@
 {
 	// Formulaire d'ajout d'un item
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			$page_title => $p_url,
-			'<span class="page-title">'.__('Add item').'</span>' => ''
-		));
-
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_title.'</a> &rsaquo; <span class="page-title">'.__('Add item').'</span></h2>';
+	
 	switch ($step) {
 		case 1:
 			// Selection du type d'item
-			echo '<form id="additem" action="'.$p_url.'&add=2" method="post">';
+			echo '<form id="additem" action="'.$p_url.'&amp;add=2" method="post">';
 			echo '<fieldset><legend>'.__('Select type').'</legend>';
 			echo '<p class="field"><label for="item_type" class="classic">'.__('Type of item menu:').'</label>'.form::combo('item_type',$items_combo,'').'</p>';
@@ -404,5 +399,5 @@
 			if ($items[$item_type][1]) {
 				// Choix à faire
-				echo '<form id="additem" action="'.$p_url.'&add=3" method="post">';
+				echo '<form id="additem" action="'.$p_url.'&amp;add=3" method="post">';
 				echo '<fieldset><legend>'.$item_type_label.'</legend>';
 				switch ($item_type) {
@@ -441,5 +436,5 @@
 		case 3:
 			// Libellé et description
-			echo '<form id="additem" action="'.$p_url.'&add=4" method="post">';
+			echo '<form id="additem" action="'.$p_url.'&amp;add=4" method="post">';
 			echo '<fieldset><legend>'.$item_type_label.($item_select_label != '' ? ' ('.$item_select_label.')' : '').'</legend>';
 			echo '<p class="field"><label for="item_label" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.
@@ -459,14 +454,10 @@
 // Liste des items
 if (!$step) {
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.$page_title.'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 }
 
 if (!$step) {
-	echo '<form id="menuitemsappend" action="'.$p_url.'&add=1" method="post">';
-	echo '<p class="top-add">'.$core->formNonce().'<input class="button add" type="submit" name="appendaction" value="'.__('Add an item').'" /></p>';
+	echo '<form id="menuitemsappend" action="'.$p_url.'&amp;add=1" method="post">';
+	echo '<p>'.$core->formNonce().'<input class="add" type="submit" name="appendaction" value="'.__('Add an item').'" /></p>';
 	echo '</form>';
 }
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 1280)
+++ plugins/tags/_admin.php	(revision 1239)
@@ -23,4 +23,6 @@
 $core->addBehavior('adminAfterPostUpdate',array('tagsBehaviors','setTags'));
 
+$core->addBehavior('adminPageHeaders',array('tagsBehaviors','pageHeaders'));
+
 $core->addBehavior('adminPostHeaders',array('tagsBehaviors','postHeaders'));
 $core->addBehavior('adminPostsActionsHeaders',array('tagsBehaviors','postsActionsHeaders'));
@@ -99,4 +101,33 @@
 			}
 		}
+	}
+
+	public static function pageHeaders()
+	{
+		$tag_url = $GLOBALS['core']->blog->url.$GLOBALS['core']->url->getURLFor('tag');
+		
+		$opts = $GLOBALS['core']->auth->getOptions();
+		$type = isset($opts['tag_list_format']) ? $opts['tag_list_format'] : 'more';
+		
+		return 
+		'<script type="text/javascript" src="index.php?pf=tags/js/jquery.autocomplete.js"></script>'.
+		'<script type="text/javascript" src="index.php?pf=tags/js/page.js"></script>'.
+		'<script type="text/javascript">'."\n".
+		"//<![CDATA[\n".
+		"metaEditor.prototype.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag=';\n".
+		"metaEditor.prototype.meta_type = '".html::escapeJS($type)."';\n".
+		"metaEditor.prototype.text_confirm_remove = '".html::escapeJS(__('Are you sure you want to remove this %s?'))."';\n".
+		"metaEditor.prototype.text_add_meta = '".html::escapeJS(__('Add a %s to this entry'))."';\n".
+		"metaEditor.prototype.text_choose = '".html::escapeJS(__('Choose from list'))."';\n".
+		"metaEditor.prototype.text_all = '".html::escapeJS(__('all'))."';\n".
+		"metaEditor.prototype.text_separation = '';\n".
+		"jsToolBar.prototype.elements.tag.title = '".html::escapeJS(__('Tag'))."';\n".
+		"jsToolBar.prototype.elements.tag.url = '".html::escapeJS($tag_url)."';\n".
+		"dotclear.msg.tags_autocomplete = '".html::escapeJS(__('used in %e - frequency %p%'))."';\n".
+		"dotclear.msg.entry = '".html::escapeJS(__('entry'))."';\n".
+		"dotclear.msg.entries = '".html::escapeJS(__('entries'))."';\n".
+		"\n//]]>\n".
+		"</script>\n".
+		'<link rel="stylesheet" type="text/css" href="index.php?pf=tags/style.css" />';
 	}
 	
Index: plugins/tags/js/page.js
===================================================================
--- plugins/tags/js/page.js	(revision 1240)
+++ plugins/tags/js/page.js	(revision 1240)
@@ -0,0 +1,70 @@
+$(function () {
+    $('#edit-entry').onetabload(function () {
+        var tags_edit = $('#tags-edit');
+        var post_id = $('#id');
+        var meta_field = null;
+        if (tags_edit.length > 0) {
+            post_id = (post_id.length > 0) ? post_id.get(0).value : false;
+            if (post_id == false) {
+                meta_field = $('<input type="hidden" name="post_tags" />');
+                meta_field.val($('#post_tags').val());
+            }
+            var mEdit = new metaEditor(tags_edit, meta_field, 'tag');
+            mEdit.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag=';
+            mEdit.displayMeta('tag', post_id);
+            window.dc_tag_editor = mEdit;
+        }
+    });
+});
+jsToolBar.prototype.elements.tagSpace = {
+    type: 'space'
+};
+jsToolBar.prototype.elements.tag = {
+    type: 'button',
+    title: 'Keyword',
+    fn: {}
+};
+jsToolBar.prototype.elements.tag.context = 'post';
+jsToolBar.prototype.elements.tag.icon = 'index.php?pf=tags/img/tag-add.png';
+jsToolBar.prototype.elements.tag.fn.wiki = function () {
+    this.encloseSelection('', '', function (str) {
+        if (str == '') {
+            window.alert(dotclear.msg.no_selection);
+            return '';
+        }
+        if (str.indexOf(',') != -1) {
+            return str;
+        } else {
+            return '[' + str + '|tag:' + str + ']';
+        }
+    });
+};
+jsToolBar.prototype.elements.tag.fn.xhtml = function () {
+    var url = this.elements.tag.url;
+    this.encloseSelection('', '', function (str) {
+        if (str == '') {
+            window.alert(dotclear.msg.no_selection);
+            return '';
+        }
+        if (str.indexOf(',') != -1) {
+            return str;
+        } else {
+            return '<a href="' + this.stripBaseURL(url + '/' + str) + '">' + str + '</a>';
+        }
+    });
+};
+jsToolBar.prototype.elements.tag.fn.wysiwyg = function () {
+    var t = this.getSelectedText();
+    if (t == '') {
+        window.alert(dotclear.msg.no_selection);
+        return;
+    }
+    if (t.indexOf(',') != -1) {
+        return;
+    }
+    var n = this.getSelectedNode();
+    var a = document.createElement('a');
+    a.href = this.stripBaseURL(this.elements.tag.url + '/' + t);
+    a.appendChild(n);
+    this.insertNode(a);
+};
Index: plugins/tags/tag_posts.php
===================================================================
--- plugins/tags/tag_posts.php	(revision 1339)
+++ plugins/tags/tag_posts.php	(revision 1288)
@@ -109,12 +109,6 @@
 <body>
 
-<?php
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Tags') => $p_url.'&amp;m=tags',
-		'<span class="page-title">'.__('Tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'.'</span>' => ''
-	));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
+<span class="page-title"><?php echo __('Edit tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'; ?></span></h2>
 
 <?php
Index: plugins/tags/tags.php
===================================================================
--- plugins/tags/tags.php	(revision 1339)
+++ plugins/tags/tags.php	(revision 1179)
@@ -20,11 +20,6 @@
 
 <body>
-<?php
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Tags').'</span>' => ''
-	));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
+<span class="page-title"><?php echo __('Tags'); ?></span></h2>
 
 <?php
Index: plugins/themeEditor/index.php
===================================================================
--- plugins/themeEditor/index.php	(revision 1339)
+++ plugins/themeEditor/index.php	(revision 1179)
@@ -86,12 +86,6 @@
 
 <body>
-<?php
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Theme Editor').'</span>' => ''
-	));
-?>
+<?php echo '<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Theme Editor').'</span></h2>'; ?>
 
 <p><strong><?php echo sprintf(__('Your current theme on this blog is "%s".'),html::escapeHTML($T['name'])); ?></strong></p>
Index: plugins/userPref/_admin.php
===================================================================
--- plugins/userPref/_admin.php	(revision 1293)
+++ plugins/userPref/_admin.php	(revision 1179)
@@ -12,5 +12,5 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$_menu['System']->addItem('user:preferences','plugin.php?p=userPref','index.php?pf=userPref/icon.png',
+$_menu['Plugins']->addItem('user:preferences','plugin.php?p=userPref','index.php?pf=userPref/icon.png',
 		preg_match('/plugin.php\?p=userPref(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin());
Index: plugins/userPref/index.php
===================================================================
--- plugins/userPref/index.php	(revision 1341)
+++ plugins/userPref/index.php	(revision 1274)
@@ -82,5 +82,5 @@
 	return
 	'<tr>'.
-	'<td scope="raw"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
+	'<td scope="row"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
 	'<td>'.$s['type'].'</td>'.
@@ -93,4 +93,9 @@
   <title>user:preferences</title>
   <?php echo dcPage::jsPageTabs($part); ?>
+  <style type="text/css">
+	table.prefs { border: 1px solid #999; margin-bottom: 2em; }
+	table.prefs th { background: #f5f5f5; color: #444; padding-top: 0.3em; padding-bottom: 0.3em; }
+	p.anchor-nav {float: right; }
+  </style>
 	<script type="text/javascript">
 	//<![CDATA[
@@ -118,17 +123,11 @@
 	dcPage::message(__('Preferences definition successfully updated'));
 }
-
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.__('user:preferences').'</span>' => ''
-	));
-?>
-
-<div id="local" class="multi-part" title="<?php echo __('User preferences'); ?>">
+?>
+<h2><?php echo html::escapeHTML($core->auth->userID()); ?> &rsaquo; <span class="page-title">user:preferences</span></h2>
+
+<div id="local" class="multi-part" title="<?php echo __('user preferences'); ?>">
 
 <?php 
-$table_header = '<table class="prefs" id="%s"><caption class="as_h3">%s</caption>'.
+$table_header = '<table class="prefs" id="%s"><caption>%s</caption>'.
 '<thead>'.
 '<tr>'."\n".
@@ -185,5 +184,5 @@
 </div>
 
-<div id="global" class="multi-part" title="<?php echo __('Global preferences'); ?>">
+<div id="global" class="multi-part" title="<?php echo __('global preferences'); ?>">
 
 <?php
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 1280)
+++ plugins/widgets/_widgets_functions.php	(revision 1253)
@@ -29,8 +29,6 @@
 		($w->title ? '<h2><label for="q">'.html::escapeHTML($w->title).'</label></h2>' : '').
 		'<form action="'.$core->blog->url.'" method="get">'.
-		'<fieldset>'.
 		'<p><input type="text" size="10" maxlength="255" id="q" name="q" value="'.$value.'" /> '.
 		'<input type="submit" class="submit" value="ok" /></p>'.
-		'</fieldset>'.
 		'</form>'.
 		($w->content_only ? '' : '</div>');
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 1339)
+++ plugins/widgets/index.php	(revision 1179)
@@ -188,9 +188,5 @@
 <body>
 <?php
-dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Widgets').'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Widgets').'</span></h2>';
 
 # All widgets
Index: plugins/widgets/style.css
===================================================================
--- plugins/widgets/style.css	(revision 1301)
+++ plugins/widgets/style.css	(revision 665)
@@ -40,5 +40,5 @@
 
 .widgets p.widget-name {
-	background: #F0EFEA;
+	background: #E5E3DA;
 	color: #000;
 	padding: 4px;
@@ -46,5 +46,5 @@
 	border-width: 1px 1px 1px 1px;
 	border-style: solid;
-	border-color: #bbb;
+	border-color: #666;
 	font-weight: bold;
 }
