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 1399)
+++ admin/blog.php	(revision 1277)
@@ -67,32 +67,28 @@
 else
 {
-	dcPage::open(__('New blog'),dcPage::jsConfirmClose('blog-form'),
-		dcPage::breadcrumb(
-			array(
-				__('System') => '',
-				__('Blogs') => 'blogs.php',
-				'<span class="page-title">'.__('New blog').'</span>' => ''
-			))
-	);
+	dcPage::open(__('New blog'),dcPage::jsConfirmClose('blog-form'));
 	
 	echo
-	'<form action="blog.php" method="post" id="blog-form">'.
+	'<h2><a href="blogs.php">'.__('Blogs').'</a> &rsaquo; <span class="page-title">'.__('New blog').'</span></h2>'.
 	
-	$core->formNonce().
-	'<p><label class="required" for="blog_id"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').'</label> '.
-	form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</p>'.
+	'<form action="blog.php" method="post" id="blog-form" class="fieldset">'.
+	
+	'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').' '.
+	form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</label></p>'.
 	'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p> '.
 	'<p class="form-note warn">'.__('Please note that changing your blog ID may require changes in your public index.php file.').'</p>'.
 	
-	'<p><label class="required" for="blog_name"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog name:').'</label> '.
-	form::field('blog_name',30,255,html::escapeHTML($blog_name)).'</p>'.
+	'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog name:').' '.
+	form::field('blog_name',30,255,html::escapeHTML($blog_name)).'</label></p>'.
 	
-	'<p><label class="required" for="blog_url"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog URL:').'</label> '.
-	form::field('blog_url',30,255,html::escapeHTML($blog_url)).'</p>'.
+	'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog URL:').' '.
+	form::field('blog_url',30,255,html::escapeHTML($blog_url)).'</label></p>'.
 	
 	'<p class="area"><label for="blog_desc">'.__('Blog description:').'</label> '.
 	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 1399)
+++ admin/blog_del.php	(revision 1288)
@@ -49,16 +49,10 @@
 }
 
-dcPage::open(__('Delete a blog'),'',
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Blogs') => 'blogs.php',
-			'<span class="page-title">'.__('Delete a blog').'</span>' => ''
-		))
-);
+dcPage::open(__('Delete a blog'));
 
 if (!$core->error->flag())
 {
 	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.'),
@@ -69,6 +63,6 @@
 	'<form action="blog_del.php" method="post">'.
 	'<div>'.$core->formNonce().'</div>'.
-	'<p><label for="pwd">'.__('Your password:').'</label> '.
-	form::password('pwd',20,255).'</p>'.
+	'<p><label for="pwd">'.__('Your password:').' '.
+	form::password('pwd',20,255).'</label></p>'.
 	'<p><input type="submit" class="delete" name="del" value="'.__('Delete this blog').'" />'.
 	form::hidden('blog_id',$blog_id).'</p>'.
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 1399)
+++ admin/blog_pref.php	(revision 1179)
@@ -252,19 +252,4 @@
 }
 
-if ($standalone) {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			html::escapeHTML($blog_name) => '',
-			'<span class="page-title">'.__('Blog settings').'</span>' => ''
-		));
-} else {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Blogs') => 'blogs.php',
-			'<span class="page-title">'.__('Blog settings').' : '.html::escapeHTML($blog_name).'</span>' => ''
-		));
-}
-
 dcPage::open(__('Blog settings'),
 	'<script type="text/javascript">'."\n".
@@ -283,10 +268,13 @@
 	$core->callBehavior('adminBlogPreferencesHeaders').
 	
-	dcPage::jsPageTabs(),
-	$breadcrumb
+	dcPage::jsPageTabs()
 );
 
 if ($blog_id)
 {
+	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'])) {
 		dcPage::message(__('Blog has been successfully created.'));
@@ -309,6 +297,6 @@
 	{
 		echo
-		'<p><label for="blog_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').'</label>'.
-		form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</p>'.
+		'<p><label for="blog_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog ID:').
+		form::field('blog_id',30,32,html::escapeHTML($blog_id)).'</label></p>'.
 		'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p> '.
 		'<p class="form-note warn">'.__('Please note that changing your blog ID may require changes in your public index.php file.').'</p>';
@@ -316,18 +304,18 @@
 	
 	echo
-	'<p><label for="blog_name" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog name:').'</label>'.
-	form::field('blog_name',30,255,html::escapeHTML($blog_name)).'</p>';
+	'<p><label for="blog_name" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog name:').
+	form::field('blog_name',30,255,html::escapeHTML($blog_name)).'</label></p>';
 	
 	if ($core->auth->isSuperAdmin())
 	{
 		echo
-		'<p><label for="blog_url" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog URL:').'</label>'.
-		form::field('blog_url',30,255,html::escapeHTML($blog_url)).'</p>'.
-		
-		'<p><label for="url_scan">'.__('URL scan method:').'</label>'.
-		form::combo('url_scan',$url_scan_combo,$blog_settings->system->url_scan).'</p>'.
-		
-		'<p><label for="blog_status">'.__('Blog status:').'</label>'.
-		form::combo('blog_status',$status_combo,$blog_status).'</p>';
+		'<p><label for="blog_url" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog URL:').
+		form::field('blog_url',30,255,html::escapeHTML($blog_url)).'</label></p>'.
+		
+		'<p><label for="url_scan">'.__('URL scan method:').
+		form::combo('url_scan',$url_scan_combo,$blog_settings->system->url_scan).'</label></p>'.
+		
+		'<p><label for="blog_status">'.__('Blog status:').
+		form::combo('blog_status',$status_combo,$blog_status).'</label></p>';
 	}
 	
@@ -342,33 +330,33 @@
 	'<div class="two-cols">'.
 	'<div class="col">'.
-	'<p><label for="editor">'.__('Blog editor name:').'</label>'.
+	'<p><label for="editor">'.__('Blog editor name:').
 	form::field('editor',30,255,html::escapeHTML($blog_settings->system->editor)).
-	'</p>'.
-	
-	'<p><label for="lang">'.__('Default language:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="lang">'.__('Default language:').
 	form::combo('lang',$lang_combo,$blog_settings->system->lang,'l10n').
-	'</p>'.
-	
-	'<p><label for="blog_timezone">'.__('Blog timezone:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="blog_timezone">'.__('Blog timezone:').
 	form::combo('blog_timezone',dt::getZones(true,true),html::escapeHTML($blog_settings->system->blog_timezone)).
-	'</p>'.
-
-	'<p><label for="copyright_notice">'.__('Copyright notice:').'</label>'.
+	'</label></p>'.
+
+	'<p><label for="copyright_notice">'.__('Copyright notice:').
 	form::field('copyright_notice',30,255,html::escapeHTML($blog_settings->system->copyright_notice)).
-	'</p>'.
-	'</div>'.
-	
-	'<div class="col">'.
-	'<p><label for="post_url_format">'.__('New post URL format:').'</label>'.
+	'</label></p>'.
+	'</div>'.
+	
+	'<div class="col">'.
+	'<p><label for="post_url_format">'.__('New post URL format:').
 	form::combo('post_url_format',$post_url_combo,html::escapeHTML($blog_settings->system->post_url_format)).
-	'</p>'.
-
-	'<p><label for="note_title_tag">'.__('Note title HTML tag:').'</label>'.
+	'</label></p>'.
+
+	'<p><label for="note_title_tag">'.__('Note title HTML tag:').
 	form::combo('note_title_tag',$note_title_tag_combo,$blog_settings->system->note_title_tag).
-	'</p>'.
-		
-	'<p><label for="enable_xmlrpc" class="classic">'.'</label>'.
+	'</label></p>'.
+		
+	'<p><label for="enable_xmlrpc" class="classic">'.
 	form::checkbox('enable_xmlrpc','1',$blog_settings->system->enable_xmlrpc).
-	__('Enable XML/RPC interface').'</p>';
+	__('Enable XML/RPC interface').'</label></p>';
 
 	echo
@@ -442,11 +430,11 @@
 	'<div class="two-cols">'.
 	'<div class="col">'.
-	'<p><label for="date_format">'.__('Date format:').'</label>'.
+	'<p><label for="date_format">'.__('Date format:').
 	form::field('date_format',30,255,html::escapeHTML($blog_settings->system->date_format)).
-	'</p>'.
-	
-	'<p><label for="time_format">'.__('Time format:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="time_format">'.__('Time format:').
 	form::field('time_format',30,255,html::escapeHTML($blog_settings->system->time_format)).
-	'</p>'.
+	'</label></p>'.
 	
 	'<p><label for="use_smilies" class="classic">'.
@@ -500,11 +488,11 @@
 
 	'<h4>'.__('Default image insertion attributes').'</h4>'.
-	'<p><label for="media_img_default_size">'.__('Image size:').'</label>'.
+	'<p><label for="media_img_default_size">'.__('Image size:').
 	form::combo('media_img_default_size',$img_default_size_combo,
 		(html::escapeHTML($blog_settings->system->media_img_default_size) != '' ? html::escapeHTML($blog_settings->system->media_img_default_size) : 'm')).
-	'</p>'.
-	'<p><label for="media_img_default_alignment">'.__('Image alignment').'</label>'.
+	'</label></p>'.
+	'<p><label for="media_img_default_alignment">'.__('Image alignment').
 	form::combo('media_img_default_alignment',$img_default_alignment_combo,html::escapeHTML($blog_settings->system->media_img_default_alignment)).
-	'</p>'.
+	'</label></p>'.
 	'<p><label for="media_img_default_link" class="classic">'.
 	form::checkbox('media_img_default_link','1',$blog_settings->system->media_img_default_link).
Index: admin/blog_theme.php
===================================================================
--- admin/blog_theme.php	(revision 1399)
+++ admin/blog_theme.php	(revision 1263)
@@ -207,29 +207,15 @@
 }
 
-if (!$theme_conf_mode)
-{
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blog appearance').'</span>' => ''
-		));
-} else {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			__('Blog appearance') => 'blog_theme.php',
-			'<span class="page-title">'.__('Theme configuration').'</span>' => ''
-		));
-}
-
 dcPage::open(__('Blog appearance'),
 	(!$theme_conf_mode ? dcPage::jsLoad('js/_blog_theme.js') : '').
 	dcPage::jsPageTabs($default_tab).
-	dcPage::jsColorPicker(),
-	$breadcrumb
+	dcPage::jsColorPicker()
 );
 
 if (!$theme_conf_mode)
 {
+	echo
+	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Blog appearance').'</span></h2>';
+	
 	if (!empty($_GET['upd'])) {
 		dcPage::message(__('Theme has been successfully changed.'));
@@ -307,8 +293,8 @@
 			'<fieldset>'.
 			'<legend>'.__('Upload a zip file').'</legend>'.
-			'<p class="field"><label for="pkg_file" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Theme zip file:').'</label> '.
-			'<input type="file" name="pkg_file" id="pkg_file" /></p>'.
-			'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label> '.
-			form::password(array('your_pwd','your_pwd1'),20,255).'</p>'.
+			'<p class="field"><label for="pkg_file" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Theme zip file:').' '.
+			'<input type="file" name="pkg_file" id="pkg_file" /></label></p>'.
+			'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
+			form::password(array('your_pwd','your_pwd1'),20,255).'</label></p>'.
 			'<input type="submit" name="upload_pkg" value="'.__('Upload theme').'" />'.
 			$core->formNonce().
@@ -321,8 +307,8 @@
 			'<fieldset>'.
 			'<legend>'.__('Download a zip file').'</legend>'.
-			'<p class="field"><label for="pkg_url" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Theme zip file URL:').'</label> '.
-			form::field(array('pkg_url','pkg_url'),40,255).'</p>'.
-			'<p class="field"><label for="your_pwd2" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label> '.
-			form::password(array('your_pwd','your_pwd2'),20,255).'</p>'.
+			'<p class="field"><label for="pkg_url" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Theme zip file URL:').' '.
+			form::field(array('pkg_url','pkg_url'),40,255).'</label></p>'.
+			'<p class="field"><label for="your_pwd2" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
+			form::password(array('your_pwd','your_pwd2'),20,255).'</label></p>'.
 			'<input type="submit" name="fetch_pkg" value="'.__('Download theme').'" />'.
 			$core->formNonce().
@@ -344,6 +330,7 @@
 	$theme_name = $core->themes->moduleInfo($core->blog->settings->system->theme,'name');
 	$core->themes->loadModuleL10Nresources($core->blog->settings->system->theme,$_lang);
-
-	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 1416)
+++ admin/blogs.php	(revision 1179)
@@ -73,15 +73,11 @@
 	$starting_script .= dcPage::jsLoad('js/filter-controls.js');
 }
-dcPage::open(__('List of blogs'),$starting_script,
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('List of blogs').'</span>' => ''
-		))
-);
+dcPage::open(__('List of blogs'),$starting_script);
 
 if (!empty($_GET['del'])) {
 	dcPage::message(__('Blog has been successfully deleted.'));
 }
+
+echo '<h2 class="page-title">'.__('List of blogs').'</h2>';
 
 if (!$core->error->flag())
@@ -131,5 +127,5 @@
 		$pager->var_page = 'page';
 		
-		echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 		
 		echo
@@ -149,5 +145,5 @@
 		echo '</table>';
 		
-		echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 	}
 }
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 1399)
+++ admin/categories.php	(revision 1390)
@@ -31,5 +31,5 @@
 		$mov_cat = $mov_cat ? $mov_cat : null;
 		if ($mov_cat !== null) {
-			$c = $core->blog->getCategory((integer) $_POST['del_cat']);
+			$c = $core->blog->getCategory((integer) $_POST['mov_cat']);
 			if ($c->isEmpty()) {
 				throw new Exception(__('This category does not exist.'));
@@ -73,10 +73,5 @@
 dcPage::open(__('Categories'),
 	dcPage::jsToolMan()."\n".
-	dcPage::jsLoad('js/_categories.js'),
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Categories').'</span>' => ''
-		))
+	dcPage::jsLoad('js/_categories.js')
 );
 
@@ -93,4 +88,6 @@
 	dcPage::message(__('The category has been successfully moved.'));
 }
+
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Categories').'</span></h2>';
 
 $rs = $core->blog->getCategories(array('post_type'=>'post'));
@@ -144,32 +141,11 @@
 echo '</div>';
 
-echo '<div class="col">'.
-
-'<form action="category.php" method="post">'.
-'<h3>'.__('Add a new category').'</h3>'.
-'<p><label class="required" for="cat_title"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label> '.
-form::field('cat_title',30,255).'</p>'.
-'<p><label for="new_cat_parent">'.__('Parent:').'</label> '.
-'<select id="new_cat_parent" name="new_cat_parent">'.
-'<option value="0">'.__('Top level').'</option>';
-while ($rs->fetch()) {
-	echo '<option value="'.$rs->cat_id.'">'.
-		str_repeat('&nbsp;&nbsp;',$rs->level-1).($rs->level-1 == 0 ? '' : '&bull; ').
-		html::escapeHTML($rs->cat_title).'</option>';
-}
-echo
-'</select></p>'.
-'<p><input type="submit" value="'.__('Create').'" />'.
-$core->formNonce().'</p>'.
-'</form>';
-
+$categories_combo = array();
 if (!$rs->isEmpty())
 {
-	$cats = array();
-	$dest = array('&nbsp;' => '');
 	$l = $rs->level;
 	$full_name = array($rs->cat_title);
-	while ($rs->fetch())
-	{
+
+	while ($rs->fetch()) {
 		if ($rs->level < $l) {
 			$full_name = array();
@@ -178,29 +154,45 @@
 		}
 		$full_name[] = html::escapeHTML($rs->cat_title);
-		
-		$cats[implode(' / ',$full_name)] = $rs->cat_id;
-		$dest[implode(' / ',$full_name)] = $rs->cat_id;
-		
+		$categories_combo[implode(' / ',$full_name)] = $rs->cat_id;
 		$l = $rs->level;
 	}
-	
+}
+
+echo '<div class="col">'.
+
+'<form action="category.php" method="post">'.
+'<fieldset><legend>'.__('Add a new category').'</legend>'.
+'<p><label class="required" for="cat_title"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
+form::field('cat_title',30,255,'','maximal').'</label></p>'.
+'<p><label for="new_cat_parent">'.__('Parent:').' '.
+form::combo('new_cat_parent',array_merge(array(__('(No cat)') => 0),$categories_combo),'','maximal').
+'</label></p>'.
+'<p><input type="submit" value="'.__('Create').'" /></p>'.
+$core->formNonce().
+'</fieldset>'.
+'</form>';
+
+if (!$rs->isEmpty())
+{
 	echo
-	'<form action="categories.php" method="post" id="delete-category" class="border-top">'.
-	'<h3>'.__('Remove a category').'</h3>'.
-	'<p><label for="del_cat">'.__('Choose a category to remove:').'</label> '.
-	form::combo('del_cat',$cats).'</p> '.
-	'<p><label for="mov_cat">'.__('And choose the category which will receive its entries:').'</label> '.
-	form::combo('mov_cat',$dest).'</p> '.
-	'<p><input type="submit" value="'.__('Delete').'" class="delete" />'.
-	$core->formNonce().'</p>'.
+	'<form action="categories.php" method="post" id="delete-category">'.
+	'<fieldset><legend>'.__('Remove a category').'</legend>'.
+	'<p><label for="del_cat">'.__('Choose a category to remove:').' '.
+	form::combo('del_cat',$categories_combo,'','maximal').'</label></p> '.
+	'<p><label for="mov_cat">'.__('And choose the category which will receive its entries:').' '.
+	form::combo('mov_cat',array_merge(array(__('(No cat)') => ''),$categories_combo),'','maximal').'</label></p> '.
+	'<p><input type="submit" value="'.__('Delete').'" class="delete" /></p>'.
+	$core->formNonce().
+	'</fieldset>'.
 	'</form>';
 	
 	echo
-	'<form action="categories.php" method="post" id="reset-order" class="border-top">'.
-	'<h3>'.__('Reorder categories').'</h3>'.
+	'<form action="categories.php" method="post" id="reset-order">'.
+	'<fieldset><legend>'.__('Reorder categories').'</legend>'.
 	'<p>'.__('This will relocate all categories on the top level').'</p> '.
-	'<p><input type="submit" value="'.__('Reorder').'" />'.
+	'<p><input type="submit" value="'.__('Reorder').'" /></p>'.
 	form::hidden(array('reset'),1).
-	$core->formNonce().'</p>'.
+	$core->formNonce().
+	'</fieldset>'.
 	'</form>';
 }
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 1399)
+++ admin/category.php	(revision 1179)
@@ -157,20 +157,8 @@
 $title = $cat_id ? html::escapeHTML($cat_title) : __('New category');
 
-$elements = array(
-	html::escapeHTML($core->blog->name) => '',
-	__('Categories') => 'categories.php'
-	);
-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::open($title,
 	dcPage::jsConfirmClose('category-form').
 	dcPage::jsToolBar().
-	dcPage::jsLoad('js/_category.js'),
-	dcPage::breadcrumb($elements)
+	dcPage::jsLoad('js/_category.js')
 );
 
@@ -180,9 +168,23 @@
 
 echo
+'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="categories.php">'.
+__('Categories').'</a> &rsaquo; ';
+
+if ($cat_id)
+{
+	while($parents->fetch()) {
+		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
 '<form action="category.php" method="post" id="category-form">'.
-'<h3>'.__('Category information').'</h3>'.
-'<p><label class="required" for="cat_title"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label> '.
+'<fieldset><legend>'.__('Category information').'</legend>'.
+'<p><label class="required" for="cat_title"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
 form::field('cat_title',40,255,html::escapeHTML($cat_title)).
-'</p>';
+'</label></p>';
 if (!$cat_id)
 {
@@ -202,7 +204,6 @@
 echo
 '<div class="lockable">'.
-'<p><label for="cat_url">'.__('URL:').'</label> '
-.form::field('cat_url',40,255,html::escapeHTML($cat_url)).
-'</p>'.
+'<p><label for="cat_url">'.__('URL:').' '.form::field('cat_url',40,255,html::escapeHTML($cat_url)).
+'</label></p>'.
 '<p class="form-note warn" id="note-cat-url">'.
 __('Warning: If you set the URL manually, it may conflict with another category.').'</p>'.
@@ -217,4 +218,5 @@
 $core->formNonce().
 '</p>'.
+'</fieldset>'.
 '</form>';
 
@@ -222,5 +224,5 @@
 {
 	echo
-	'<h3 class="border-top">'.__('Move this category').'</h3>'.
+	'<h3>'.__('Move this category').'</h3>'.
 	'<div class="two-cols">'.
 	'<div class="col">'.
@@ -228,6 +230,6 @@
 	'<form action="category.php" method="post">'.
 	'<fieldset><legend>'.__('Category parent').'</legend>'.
-	'<p><label for="cat_parent" class="classic">'.__('Parent:').'</label> '.
-	form::combo('cat_parent',$allowed_parents,$cat_parent).'</p>'.
+	'<p><label for="cat_parent" class="classic">'.__('Parent:').' '.
+	form::combo('cat_parent',$allowed_parents,$cat_parent).'</label></p>'.
 	'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 	form::hidden(array('id'),$cat_id).$core->formNonce().'</p>'.
Index: admin/comment.php
===================================================================
--- admin/comment.php	(revision 1399)
+++ admin/comment.php	(revision 1179)
@@ -160,20 +160,4 @@
 /* DISPLAY
 -------------------------------------------------------- */
-if ($comment_id) {
-	$breadcrumb = 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>' => ''
-		));
-} else {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			html::escapeHTML($post_title) => $core->getPostAdminURL($post_type,$post_id),
-			'<span class="page-title">'.__('Edit comment').'</span>' => ''
-		));
-}
-
 dcPage::open(__('Edit comment'),
 	dcPage::jsConfirmClose('comment-form').
@@ -181,6 +165,5 @@
 	dcPage::jsLoad('js/_comment.js').
 	# --BEHAVIOR-- adminCommentHeaders
-	$core->callBehavior('adminCommentHeaders'),
-	$breadcrumb
+	$core->callBehavior('adminCommentHeaders')
 );
 
@@ -200,33 +183,33 @@
 		.'">'.__('Send an e-mail').'</a>';
 	}
-
+	
+	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">'.
-	'<div class="fieldset">'.
-	'<h3>'.__('Information collected').'</h3>'.
-	'<p>'.__('IP address:').' '.
+	'<p>'.__('IP address:').'<br /> '.
 	'<a href="comments.php?ip='.$comment_ip.'">'.$comment_ip.'</a></p>'.
 	
-	'<p>'.__('Date:').' '.
+	'<p>'.__('Date:').'<br /> '.
 	dt::dt2str(__('%Y-%m-%d %H:%M'),$comment_dt).'</p>'.
-	'</div>'.
-
-	'<h3>'.__('Comment submitted').'</h3>'.	
-	'<p><label for="comment_author" class="required"><abbr title="'.__('Required field').'">*</abbr>'.__('Author:').'</label>'.
+	
+	'<p><label for="comment_author" class="required"><abbr title="'.__('Required field').'">*</abbr>'.__('Author:').
 	form::field('comment_author',30,255,html::escapeHTML($comment_author)).
-	'</p>'.
-	
-	'<p><label for="comment_email">'.__('Email:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="comment_email">'.__('Email:').
 	form::field('comment_email',30,255,html::escapeHTML($comment_email)).
-	'<span>'.$comment_mailto.'</span>'.
-	'</p>'.
-	
-	'<p><label for="comment_site">'.__('Web site:').'</label>'.
+	$comment_mailto.
+	'</label></p>'.
+	
+	'<p><label for="comment_site">'.__('Web site:').
 	form::field('comment_site',30,255,html::escapeHTML($comment_site)).
-	'</p>'.
-	
-	'<p><label for="comment_status">'.__('Status:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="comment_status">'.__('Status:').
 	form::combo('comment_status',$status_combo,$comment_status,'','',!$can_publish).
-	'</p>'.
+	'</label></p>'.
 	
 	# --BEHAVIOR-- adminAfterCommentDesc
Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 1358)
+++ admin/comments.php	(revision 1179)
@@ -169,11 +169,7 @@
 $starting_script .= $core->callBehavior('adminCommentsHeaders');
 
-dcPage::open(__('Comments and trackbacks'),$starting_script,
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Comments and trackbacks').'</span>' => ''
-		))
-);
+dcPage::open(__('Comments and trackbacks'),$starting_script);
+
+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 1399)
+++ admin/index.php	(revision 1391)
@@ -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');
 }
 
@@ -121,5 +121,20 @@
 $__dashboard_items = new ArrayObject(array(new ArrayObject,new ArrayObject));
 
+# Documentation links
 $dashboardItem = 0;
+if ($core->auth->user_prefs->dashboard->doclinks) {
+	if (!empty($__resources['doc']))
+	{
+		$doc_links = '<h3>'.__('Documentation and support').'</h3><ul>';
+	
+		foreach ($__resources['doc'] as $k => $v) {
+			$doc_links .= '<li><a href="'.$v.'" title="'.$k.' '.__('(external link)').'">'.$k.'</a></li>';
+		}
+	
+		$doc_links .= '</ul>';
+		$__dashboard_items[$dashboardItem][] = $doc_links;
+		$dashboardItem++;
+	}
+}
 
 if ($core->auth->user_prefs->dashboard->dcnews) {
@@ -165,20 +180,4 @@
 }
 
-# Documentation links
-if ($core->auth->user_prefs->dashboard->doclinks) {
-	if (!empty($__resources['doc']))
-	{
-		$doc_links = '<h3>'.__('Documentation and support').'</h3><ul>';
-	
-		foreach ($__resources['doc'] as $k => $v) {
-			$doc_links .= '<li><a href="'.$v.'" title="'.$k.' '.__('(external link)').'">'.$k.'</a></li>';
-		}
-	
-		$doc_links .= '</ul>';
-		$__dashboard_items[$dashboardItem][] = $doc_links;
-		$dashboardItem++;
-	}
-}
-
 $core->callBehavior('adminDashboardItems', $core, $__dashboard_items);
 
@@ -194,11 +193,8 @@
 	dcPage::jsLoad('js/_index.js').
 	# --BEHAVIOR-- adminDashboardHeaders
-	$core->callBehavior('adminDashboardHeaders'),
-	dcPage::breadcrumb(
-		array(
-		'<span class="page-title">'.__('Dashboard').' : '.html::escapeHTML($core->blog->name).'</span>' => ''
-		),
-		false)
+	$core->callBehavior('adminDashboardHeaders')
 );
+
+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) {
@@ -287,5 +283,5 @@
 	if ($i->count() > 0)
 	{
-		$dashboardItems .= '<div class="db-item">';
+		$dashboardItems .= '<div>';
 		foreach ($i as $v) {
 			$dashboardItems .= $v;
@@ -308,16 +304,25 @@
 	if ($core->auth->check('usage,contentadmin',$core->blog->id))
 	{
-		$categories_combo = array('&nbsp;' => '');
+		# Getting categories
+		$categories_combo = array(__('(No cat)') => '');
 		try {
 			$categories = $core->blog->getCategories(array('post_type'=>'post'));
-			while ($categories->fetch()) {
-				$categories_combo[] = new formSelectOption(
-					str_repeat('&nbsp;&nbsp;',$categories->level-1).
-					($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
-					$categories->cat_id
-				);
+			if (!$categories->isEmpty()) {
+				$l = $categories->level;
+				$full_name = array($categories->cat_title);
+
+				while ($categories->fetch()) {
+					if ($categories->level < $l) {
+						$full_name = array();
+					} elseif ($categories->level == $l) {
+						array_pop($full_name);
+					}
+					$full_name[] = html::escapeHTML($categories->cat_title);
+					$categories_combo[implode(' / ',$full_name)] = $categories->cat_id;
+					$l = $categories->level;
+				}
 			}
 		} catch (Exception $e) { }
-	
+		
 		echo
 		'<div id="quick">'.
@@ -325,13 +330,13 @@
 		'<form id="quick-entry" action="post.php" method="post">'.
 		'<fieldset><legend>'.__('New entry').'</legend>'.
-		'<p class="col"><label for="post_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label>'.
+		'<p class="col"><label for="post_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
 		form::field('post_title',20,255,'','maximal').
-		'</p>'.
+		'</label></p>'.
 		'<p class="area"><label class="required" '.
 		'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
 		form::textarea('post_content',50,7).
 		'</p>'.
-		'<p><label for="cat_id" class="classic">'.__('Category:').'</label> '.
-		form::combo('cat_id',$categories_combo).'</p>'.
+		'<p><label for="cat_id" class="classic">'.__('Category:').' '.
+		form::combo('cat_id',$categories_combo).'</label></p>'.
 		'<p><input type="submit" value="'.__('Save').'" name="save" /> '.
 		($core->auth->check('publish',$core->blog->id)
Index: admin/install/index.php
===================================================================
--- admin/install/index.php	(revision 1399)
+++ 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
@@ -320,19 +320,19 @@
 	'<form action="index.php" method="post">'.
 	'<fieldset><legend>'.__('User information').'</legend>'.
-	'<p><label for="u_firstname">'.__('First Name:').'</label> '.
-	form::field('u_firstname',30,255,html::escapeHTML($u_firstname)).'</p>'.
-	'<p><label for="u_name">'.__('Last Name:').'</label> '.
-	form::field('u_name',30,255,html::escapeHTML($u_name)).'</p>'.
-	'<p><label for="u_email">'.__('Email:').'</label> '.
-	form::field('u_email',30,255,html::escapeHTML($u_email)).'</p>'.
+	'<p><label for="u_firstname">'.__('First Name:').' '.
+	form::field('u_firstname',30,255,html::escapeHTML($u_firstname)).'</label></p>'.
+	'<p><label for="u_name">'.__('Last Name:').' '.
+	form::field('u_name',30,255,html::escapeHTML($u_name)).'</label></p>'.
+	'<p><label for="u_email">'.__('Email:').' '.
+	form::field('u_email',30,255,html::escapeHTML($u_email)).'</label></p>'.
 	'</fieldset>'.
 	
 	'<fieldset><legend>'.__('Username and password').'</legend>'.
-	'<p><label for="u_login" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Username:').'</label> '.
-	form::field('u_login',30,32,html::escapeHTML($u_login)).'</p>'.
-	'<p><label for="u_pwd" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Password:').'</label> '.
-	form::password('u_pwd',30,255).'</p>'.
-	'<p><label for="u_pwd2" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Confirm password:').'</label> '.
-	form::password('u_pwd2',30,255).'</p>'.
+	'<p><label for="u_login" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Username:').' '.
+	form::field('u_login',30,32,html::escapeHTML($u_login)).'</label></p>'.
+	'<p><label for="u_pwd" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Password:').' '.
+	form::password('u_pwd',30,255).'</label></p>'.
+	'<p><label for="u_pwd2" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Confirm password:').' '.
+	form::password('u_pwd2',30,255).'</label></p>'.
 	'</fieldset>'.
 	
Index: admin/install/wizard.php
===================================================================
--- admin/install/wizard.php	(revision 1399)
+++ admin/install/wizard.php	(revision 1179)
@@ -178,16 +178,16 @@
 
 '<form action="wizard.php" method="post">'.
-'<p><label class="required" for="DBDRIVER"><abbr title="'.__('Required field').'">*</abbr> '.__('Database type:').'</label> '.
-form::combo('DBDRIVER',array('MySQL'=>'mysql','PostgreSQL'=>'pgsql'),$DBDRIVER).'</p>'.
-'<p><label for="DBHOST">'.__('Database Host Name:').'</label> '.
-form::field('DBHOST',30,255,html::escapeHTML($DBHOST)).'</p>'.
-'<p><label for="DBNAME">'.__('Database Name:').'</label> '.
-form::field('DBNAME',30,255,html::escapeHTML($DBNAME)).'</p>'.
-'<p><label for="DBUSER">'.__('Database User Name:').'</label> '.
-form::field('DBUSER',30,255,html::escapeHTML($DBUSER)).'</p>'.
-'<p><label for="DBPASSWORD">'.__('Database Password:').'</label> '.
-form::password('DBPASSWORD',30,255).'</p>'.
-'<p><label for="DBPREFIX" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Database Tables Prefix:').'</label> '.
-form::field('DBPREFIX',30,255,html::escapeHTML($DBPREFIX)).'</p>'.
+'<p><label class="required" for="DBDRIVER"><abbr title="'.__('Required field').'">*</abbr> '.__('Database type:').' '.
+form::combo('DBDRIVER',array('MySQL'=>'mysql','PostgreSQL'=>'pgsql'),$DBDRIVER).'</label></p>'.
+'<p><label for="DBHOST">'.__('Database Host Name:').' '.
+form::field('DBHOST',30,255,html::escapeHTML($DBHOST)).'</label></p>'.
+'<p><label for="DBNAME">'.__('Database Name:').' '.
+form::field('DBNAME',30,255,html::escapeHTML($DBNAME)).'</label></p>'.
+'<p><label for="DBUSER">'.__('Database User Name:').' '.
+form::field('DBUSER',30,255,html::escapeHTML($DBUSER)).'</label></p>'.
+'<p><label for="DBPASSWORD">'.__('Database Password:').' '.
+form::password('DBPASSWORD',30,255).'</label></p>'.
+'<p><label for="DBPREFIX" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Database Tables Prefix:').' '.
+form::field('DBPREFIX',30,255,html::escapeHTML($DBPREFIX)).'</label></p>'.
 
 '<p><input type="submit" value="'.__('Continue').'" /></p>'.
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 1392)
+++ admin/js/_post.js	(revision 1417)
@@ -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);
+			}
 		});
 		
@@ -115,4 +123,8 @@
 			hide: $('#post_notes').val() == ''
 		});
+		$('#new_cat').toggleWithLegend(
+			$('#new_cat').parent().children().not('#new_cat'),
+			{} // no cookie on new category as we don't use this every day
+		);
 		$('#post_lang').parent().toggleWithLegend($('#post_lang'),{
 			cookie: 'dcx_post_lang'
@@ -122,19 +134,5 @@
 			hide: $('#post_password').val() == ''
 		});
-		$('#post_status').parent().toggleWithLegend($('#post_status'),{
-			cookie: 'dcx_post_status'
-		});
-		$('#post_dt').parent().toggleWithLegend($('#post_dt').parent().children().not('label'),{
-			cookie: 'dcx_post_dt'
-		});
-		$('#post_format').parent().toggleWithLegend($('#post_format').parent().children().not('label').add($('#post_format').parents('p').next()),{
-			cookie: 'dcx_post_format'
-		});
-		$('#cat_id').parent().toggleWithLegend($('#cat_id'),{
-			cookie: 'cat_id'
-		});
-		$('#post_url').parent().toggleWithLegend($('#post_url').parent().children().not('label'),{
-			cookie: 'post_url'
-		});
+		
 		// We load toolbar on excerpt only when it's ready
 		$('#excerpt-area label').toggleWithLegend($('#excerpt-area').children().not('label'),{
@@ -163,5 +161,4 @@
 		var a = document.createElement('a');
 		a.href = '#';
-		a.className = 'button';
 		$(a).click(function() {
 			var params = {
Index: admin/js/_users_actions.js
===================================================================
--- admin/js/_users_actions.js	(revision 935)
+++ admin/js/_users_actions.js	(revision 1362)
@@ -30,4 +30,11 @@
 				
 				if (perm == 'admin' && !E.disabled) {
+					perms[blog]['usage'].checked = E.checked;
+					perms[blog]['publish'].checked = E.checked;
+					perms[blog]['delete'].checked = E.checked;
+					perms[blog]['contentadmin'].checked = E.checked;
+					perms[blog]['categories'].checked = E.checked;
+					perms[blog]['media'].checked = E.checked;
+					perms[blog]['media_admin'].checked = E.checked;
 					perms[blog]['usage'].disabled = E.checked;
 					perms[blog]['publish'].disabled = E.checked;
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 1395)
+++ 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(); });
@@ -224,5 +223,4 @@
 				imgE.style.top = '1.7em';
 				imgE.style.left = ($(this).width()+4)+'px';
-				imgE.alt=dotclear.msg.click_to_unlock;
 				$(imgE).css('cursor','pointer');
 
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/jquery/jquery.pwstrength.js
===================================================================
--- admin/js/jquery/jquery.pwstrength.js	(revision 1371)
+++ admin/js/jquery/jquery.pwstrength.js	(revision 1371)
@@ -0,0 +1,66 @@
+/**
+ * jquery.pwstrength http://matoilic.github.com/jquery.pwstrength
+ *
+ * @version v0.1.1
+ * @author Mato Ilic <info@matoilic.ch>
+ * @copyright 2013 Mato Ilic
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+;(function($) {
+    $.pwstrength = function(password) {
+        var score = 0, length = password.length, upperCase, lowerCase, digits, nonAlpha;
+        
+        if(length < 5) score += 0;
+        else if(length < 8) score += 5;
+        else if(length < 16) score += 10;
+        else score += 15;
+        
+        lowerCase = password.match(/[a-z]/g);
+        if(lowerCase) score += 1;
+        
+        upperCase = password.match(/[A-Z]/g);
+        if(upperCase) score += 5;
+        
+        if(upperCase && lowerCase) score += 2;
+        
+        digits = password.match(/\d/g);
+        if(digits && digits.length > 1) score += 5;
+        
+        nonAlpha = password.match(/\W/g)
+        if(nonAlpha) score += (nonAlpha.length > 1) ? 15 : 10;
+        
+        if(upperCase && lowerCase && digits && nonAlpha) score += 15;
+
+        if(password.match(/\s/)) score += 10;
+
+        if(score < 15) return 0;
+        if(score < 20) return 1;
+        if(score < 35) return 2;
+        if(score < 50) return 3;
+        return 4;
+    };
+    
+    function updateIndicator(event) {
+        var strength = $.pwstrength($(this).val()), options = event.data, klass;
+        klass = options.classes[strength];
+        
+        options.indicator.removeClass(options.indicator.data('pwclass'));
+        options.indicator.data('pwclass', klass);
+        options.indicator.addClass(klass);
+        options.indicator.find(options.label).html(options.texts[strength]);
+    }
+    
+    $.fn.pwstrength = function(options) {
+        var options = $.extend({
+            label: '.label',
+            classes: ['pw-very-weak', 'pw-weak', 'pw-mediocre', 'pw-strong', 'pw-very-strong'],
+            texts: ['very weak', 'weak', 'mediocre', 'strong', 'very strong']
+        }, options || {});
+        options.indicator = $('#' + this.data('indicator'));
+        
+        return this.keyup(options, updateIndicator);
+    };
+})(jQuery);
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 1399)
+++ admin/langs.php	(revision 1179)
@@ -129,11 +129,9 @@
 -------------------------------------------------------- */
 dcPage::open(__('Languages management'),
-	dcPage::jsLoad('js/_langs.js'),
-	dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('Languages management').'</span>' => ''
-	))
+	dcPage::jsLoad('js/_langs.js')
 );
+
+echo
+'<h2 class="page-title">'.__('Languages management').'</h2>';
 
 if (!empty($_GET['removed'])) {
@@ -227,11 +225,11 @@
 	'<p>'.sprintf(__('You can download and install a additional language directly from Dotclear.net. '.
 	'Proposed languages are based on your version: %s.'),'<strong>'.DC_VERSION.'</strong>').'</p>'.
-	'<p class="field"><label for="pkg_url" class="classic">'.__('Language:').'</label> '.
-	form::combo(array('pkg_url'),$dc_langs_combo).'</p>'.
-	'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label> '.
-	form::password(array('your_pwd','your_pwd1'),20,255).'</p>'.
-	'<p><input type="submit" value="'.__('Install language').'" />'.
+	'<p class="field"><label for="pkg_url" class="classic">'.__('Language:').' '.
+	form::combo(array('pkg_url'),$dc_langs_combo).'</label></p>'.
+	'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
+	form::password(array('your_pwd','your_pwd1'),20,255).'</label></p>'.
+	'<input type="submit" value="'.__('Install language').'" />'.
 	$core->formNonce().
-	'</p></fieldset>'.
+	'</fieldset>'.
 	'</form>';
 }
@@ -245,11 +243,11 @@
 	'<legend>'.__('Upload a zip file').'</legend>'.
 	'<p>'.__('You can install languages by uploading zip files.').'</p>'.
-	'<p class="field"><label for="pkg_file" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Language zip file:').'</label> '.
-	'<input type="file" id="pkg_file" name="pkg_file" /></p>'.
-	'<p class="field"><label for="your_pwd2" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label> '.
-	form::password(array('your_pwd','your_pwd2'),20,255).'</p>'.
-	'<p><input type="submit" name="upload_pkg" value="'.__('Upload language').'" />'.
+	'<p class="field"><label for="pkg_file" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Language zip file:').' '.
+	'<input type="file" id="pkg_file" name="pkg_file" /></label></p>'.
+	'<p class="field"><label for="your_pwd2" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
+	form::password(array('your_pwd','your_pwd2'),20,255).'</label></p>'.
+	'<input type="submit" name="upload_pkg" value="'.__('Upload language').'" />'.
 	$core->formNonce().
-	'</p></fieldset>'.
+	'</fieldset>'.
 	'</form>';
 }
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 1416)
+++ admin/media.php	(revision 1234)
@@ -203,12 +203,7 @@
 if ($dir && !empty($_GET['remove']) && empty($_GET['noconfirm']))
 {
-	call_user_func($open_f,__('Media manager'),'',
-		dcPage::breadcrumb(
-			array(
-				html::escapeHTML($core->blog->name) => '',
-				__('Media manager') => '',
-				'<span class="page-title">'.__('confirm removal').'</span>' => ''
-			),!$popup)
-	);
+	call_user_func($open_f,__('Media manager'));
+	
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Media manager').' &rsaquo; <span class="page-title">'.__('confirm removal').'</span></h2>';
 	
 	echo
@@ -232,33 +227,7 @@
 $user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
 
-
-if (!isset($core->media)) {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Media manager').'</span>' => ''
-		),!$popup);
-} else {
-	$breadcrumb_media = $core->media->breadCrumb(html::escapeURL($page_url).'&amp;d=%s','<span class="page-title">%s</span>');
-	if ($breadcrumb_media == '') {
-		$breadcrumb = dcPage::breadcrumb(
-			array(
-				html::escapeHTML($core->blog->name) => '',
-				'<span class="page-title">'.__('Media manager').'</span>' => ''
-			),!$popup);
-	} else {
-		$breadcrumb = dcPage::breadcrumb(
-			array(
-				html::escapeHTML($core->blog->name) => '',
-				__('Media manager') => html::escapeURL($page_url.'&d='),
-				$breadcrumb_media => ''
-			),!$popup);
-	}
-}
-
 call_user_func($open_f,__('Media manager'),
 	dcPage::jsLoad('js/_media.js').
-	($core_media_writable ? dcPage::jsUpload(array('d='.$d)) : ''),
-	$breadcrumb
+	($core_media_writable ? dcPage::jsUpload(array('d='.$d)) : '')
 	);
 
@@ -285,4 +254,16 @@
 if (!empty($_GET['unzipok'])) {
 	dcPage::message(__('Zip file has been successfully extracted.'));
+}
+
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; ';
+if (!isset($core->media)) {
+	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 == '') {
+		echo '<span class="page-title">'.__('Media manager').'</span></h2>';
+	} else {
+		echo '<a href="'.html::escapeURL($page_url.'&d=').'">'.__('Media manager').'</a>'.' / '.$breadcrumb.'</h2>';
+	}
 }
 
@@ -317,6 +298,6 @@
 	echo
 	'<form action="media.php" method="get">'.
-	'<p><label for="file_sort" class="classic">'.__('Sort files:').'</label> '.
-	form::combo('file_sort',$sort_combo,$file_sort).
+	'<p><label for="file_sort" class="classic">'.__('Sort files:').' '.
+	form::combo('file_sort',$sort_combo,$file_sort).'</label>'.
 	form::hidden(array('popup'),$popup).
 	form::hidden(array('post_id'),$post_id).
@@ -324,5 +305,5 @@
 	'</form>'.
 	
-	'<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+	'<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 	
 	for ($i=$pager->index_start, $j=0; $i<=$pager->index_end; $i++, $j++)
@@ -332,5 +313,5 @@
 	
 	echo
-	'<p class="clear pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+	'<p class="clear">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 }
 if (!isset($pager)) {
@@ -354,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
@@ -388,5 +369,5 @@
 
 	echo
-	'<div>'.form::hidden(array('d'),$d).'</div>'.
+	form::hidden(array('d'),$d).
 	'</fieldset>'.
 	'</form>'.
@@ -399,6 +380,6 @@
 	'<legend>'.__('New directory').'</legend>'.
 	$core->formNonce().
-	'<p><label for="newdir">'.__('Directory Name:').'</label>'.
-	form::field(array('newdir','newdir'),35,255).'</p>'.
+	'<p><label for="newdir">'.__('Directory Name:').
+	form::field(array('newdir','newdir'),35,255).'</label></p>'.
 	'<p><input type="submit" value="'.__('Create').'" />'.
 	form::hidden(array('d'),html::escapeHTML($d)).'</p>'.
@@ -447,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 1399)
+++ admin/media_item.php	(revision 1179)
@@ -175,11 +175,5 @@
 	$starting_scripts.
 	dcPage::jsDatePicker().
-	dcPage::jsPageTabs($tab),
-	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>' => ''
-		),!$popup)
+	dcPage::jsPageTabs($tab)
 );
 
@@ -195,4 +189,8 @@
 	dcPage::message(__('Thumbnails have been successfully updated.'));
 }
+
+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
@@ -516,6 +514,6 @@
 		__('This will extract archive in current directory and will overwrite existing files or directory.').'</li>'.
 		'</ul>'.
-		'<p><label for="inflate_mode" class="classic">'.__('Extract mode:').'</label> '.
-		form::combo('inflate_mode',$inflate_combo,'new').
+		'<p><label for="inflate_mode" class="classic">'.__('Extract mode:').' '.
+		form::combo('inflate_mode',$inflate_combo,'new').'</label> '.
 		'<input type="submit" name="unzip" value="'.__('Extract').'" />'.
 		form::hidden(array('id'),$id).
@@ -527,14 +525,14 @@
 	'<form class="clear" action="'.html::escapeURL($page_url).'" method="post">'.
 	'<fieldset><legend>'.__('Change media properties').'</legend>'.
-	'<p><label for="media_file">'.__('File name:').'</label>'.
-	form::field('media_file',30,255,html::escapeHTML($file->basename)).'</p>'.
-	'<p><label for="media_title">'.__('File title:').'</label>'.
-	form::field('media_title',30,255,html::escapeHTML($file->media_title)).'</p>'.
-	'<p><label for="media_dt">'.__('File date:').'</label>'.
-	form::field('media_dt',16,16,html::escapeHTML($file->media_dtstr)).'</p>'.
+	'<p><label for="media_file">'.__('File name:').
+	form::field('media_file',30,255,html::escapeHTML($file->basename)).'</label></p>'.
+	'<p><label for="media_title">'.__('File title:').
+	form::field('media_title',30,255,html::escapeHTML($file->media_title)).'</label></p>'.
+	'<p><label for="media_dt">'.__('File date:').
+	form::field('media_dt',16,16,html::escapeHTML($file->media_dtstr)).'</label></p>'.
 	'<p><label for="media_private" class="classic">'.form::checkbox('media_private',1,$file->media_priv).' '.
 	__('Private').'</label></p>'.
-	'<p><label for="media_path">'.__('New directory:').'</label>'.
-	form::combo('media_path',$dirs_combo,dirname($file->relname)).'</p>'.
+	'<p><label for="media_path">'.__('New directory:').
+	form::combo('media_path',$dirs_combo,dirname($file->relname)).'</label></p>'.
 	'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 	form::hidden(array('id'),$id).
Index: admin/plugin.php
===================================================================
--- admin/plugin.php	(revision 1358)
+++ admin/plugin.php	(revision 1179)
@@ -81,11 +81,7 @@
 else
 {
-	call_user_func($open_f,__('Plugin not found'),'',
-		dcPage::breadcrumb(
-			array(
-				__('System') => '',
-				'<span class="page-title">'.__('Plugin not found').'</span>' => ''
-			))
-	);
+	call_user_func($open_f,__('Plugin not found'));
+	
+	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 1399)
+++ admin/plugins.php	(revision 1271)
@@ -191,11 +191,9 @@
 dcPage::open(__('Plugins management'),
 	dcPage::jsLoad('js/_plugins.js').
-	dcPage::jsPageTabs($default_tab),
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('Plugins management').'</span>' => ''
-		))
+	dcPage::jsPageTabs($default_tab)
 );
+
+echo
+'<h2 class="page-title">'.__('Plugins management').'</h2>';
 
 if (!empty($_GET['removed'])) {
@@ -235,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 '.
@@ -357,11 +356,11 @@
 	'<fieldset>'.
 	'<legend>'.__('Upload a zip file').'</legend>'.
-	'<p class="field"><label for="pkg_file" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Plugin zip file:').'</label> '.
-	'<input type="file" id="pkg_file" name="pkg_file" /></p>'.
-	'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label> '.
-	form::password(array('your_pwd','your_pwd1'),20,255).'</p>'.
-	'<p><input type="submit" name="upload_pkg" value="'.__('Upload plugin').'" />'.
+	'<p class="field"><label for="pkg_file" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Plugin zip file:').' '.
+	'<input type="file" id="pkg_file" name="pkg_file" /></label></p>'.
+	'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
+	form::password(array('your_pwd','your_pwd1'),20,255).'</label></p>'.
+	'<input type="submit" name="upload_pkg" value="'.__('Upload plugin').'" />'.
 	$core->formNonce().
-	'</p></fieldset>'.
+	'</fieldset>'.
 	'</form>';
 	
@@ -371,8 +370,8 @@
 	'<fieldset>'.
 	'<legend>'.__('Download a zip file').'</legend>'.
-	'<p class="field"><label for="pkg_url" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Plugin zip file URL:').'</label> '.
-	form::field(array('pkg_url','pkg_url'),40,255).'</p>'.
-	'<p class="field"><label for="your_pwd2" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label> '.
-	form::password(array('your_pwd','your_pwd2'),20,255).'</p>'.
+	'<p class="field"><label for="pkg_url" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Plugin zip file URL:').' '.
+	form::field(array('pkg_url','pkg_url'),40,255).'</label></p>'.
+	'<p class="field"><label for="your_pwd2" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
+	form::password(array('your_pwd','your_pwd2'),20,255).'</label></p>'.
 	'<input type="submit" name="fetch_pkg" value="'.__('Download plugin').'" />'.
 	$core->formNonce().
@@ -389,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/popup_link.php
===================================================================
--- admin/popup_link.php	(revision 1399)
+++ admin/popup_link.php	(revision 1179)
@@ -40,11 +40,11 @@
 echo
 '<form id="link-insert-form" action="#" method="get">'.
-'<p><label class="required" for="href"><abbr title="'.__('Required field').'">*</abbr> '.__('Link URL:').'</label> '.
-form::field('href',35,512,html::escapeHTML($href)).'</p>'.
-'<p><label for="title">'.__('Link title:').'</label> '. 
-form::field('title',35,512,html::escapeHTML($title)).'</p>'. 
-'<p><label for="hreflang">'.__('Link language:').'</label> '.
+'<p><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Link URL:').' '.
+form::field('href',35,512,html::escapeHTML($href)).'</label></p>'.
+'<p><label>'.__('Link title:').' '. 
+form::field('title',35,512,html::escapeHTML($title)).'</label></p>'. 
+'<p><label>'.__('Link language:').' '.
 form::combo('hreflang',$lang_combo,$hreflang).
-'</p>'.
+'</label></p>'.
 
 '</form>'.
Index: admin/popup_posts.php
===================================================================
--- admin/popup_posts.php	(revision 1399)
+++ admin/popup_posts.php	(revision 1179)
@@ -53,14 +53,14 @@
 
 echo '<form action="popup_posts.php" method="post">'.
-	'<p><label for"type" class="classic">'.__('Entry type:').'</label> '.form::combo('type',$type_combo,$type).''.
-	$core->formNonce().'</p>'.
+	'<p><label for"type" class="classic">'.__('Entry type:').' '.form::combo('type',$type_combo,$type).'</label></p>'.
+	$core->formNonce().
 	'<noscript><div><input type="submit" value="'.__('Ok').'" /></div></noscript>'.
 	'</form>';
 
 echo '<form action="popup_posts.php" method="get">'.
-	'<p><label for="q" class="classic">'.__('Search entry:').'</label> '.form::field('q',30,255,html::escapeHTML($q)).
-	' <input type="submit" value="'.__('Search').'" />'.
+	'<p><label for="q" class="classic">'.__('Search entry:').' '.form::field('q',30,255,html::escapeHTML($q)).'</label> '.
+	' <input type="submit" value="'.__('Search').'" /></p>'.
 	form::hidden('type',html::escapeHTML($type)).
-	'</p></form>';
+	'</form>';
 
 try {
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 1398)
+++ admin/post.php	(revision 1417)
@@ -49,16 +49,4 @@
 	$post_status = -2;
 }
-
-# Getting categories
-$categories_combo = array('&nbsp;' => '');
-try {
-	$categories = $core->blog->getCategories(array('post_type'=>'post'));
-	while ($categories->fetch()) {
-		$categories_combo[] = new formSelectOption(
-			str_repeat('&nbsp;&nbsp;',$categories->level-1).($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
-			$categories->cat_id
-		);
-	}
-} catch (Exception $e) { }
 
 # Status combo
@@ -133,5 +121,5 @@
 		if ($next_rs !== null) {
 			$next_link = sprintf($post_link,$next_rs->post_id,
-				html::escapeHTML($next_rs->post_title),__('Next entry').'&nbsp;&#187;');
+				html::escapeHTML($next_rs->post_title),__('next entry').'&nbsp;&#187;');
 			$next_headlink = sprintf($post_headlink,'next',
 				html::escapeHTML($next_rs->post_title),$next_rs->post_id);
@@ -140,5 +128,5 @@
 		if ($prev_rs !== null) {
 			$prev_link = sprintf($post_link,$prev_rs->post_id,
-				html::escapeHTML($prev_rs->post_title),'&#171;&nbsp;'.__('Previous entry'));
+				html::escapeHTML($prev_rs->post_title),'&#171;&nbsp;'.__('previous entry'));
 			$prev_headlink = sprintf($post_headlink,'previous',
 				html::escapeHTML($prev_rs->post_title),$prev_rs->post_id);
@@ -218,4 +206,22 @@
 if (!empty($_POST) && !empty($_POST['save']) && $can_edit_post && !$bad_dt)
 {
+	# Create category
+	if (!empty($_POST['new_cat_title']) && $core->auth->check('categories', $core->blog->id)) {
+	
+		$cur_cat = $core->con->openCursor($core->prefix.'category');
+		$cur_cat->cat_title = $_POST['new_cat_title'];
+		$cur_cat->cat_url = '';
+		
+		$parent_cat = !empty($_POST['new_cat_parent']) ? $_POST['new_cat_parent'] : '';
+		
+		# --BEHAVIOR-- adminBeforeCategoryCreate
+		$core->callBehavior('adminBeforeCategoryCreate', $cur_cat);
+		
+		$cat_id = $core->blog->addCategory($cur_cat, (integer) $parent_cat);
+		
+		# --BEHAVIOR-- adminAfterCategoryCreate
+		$core->callBehavior('adminAfterCategoryCreate', $cur_cat, $cat_id);
+	}
+	
 	$cur = $core->con->openCursor($core->prefix.'post');
 	
@@ -284,4 +290,25 @@
 }
 
+# Getting categories
+$categories_combo = array(__('(No cat)') => '');
+try {
+	$categories = $core->blog->getCategories(array('post_type'=>'post'));
+	if (!$categories->isEmpty()) {
+		$l = $categories->level;
+		$full_name = array($categories->cat_title);
+
+		while ($categories->fetch()) {
+			if ($categories->level < $l) {
+				$full_name = array();
+			} elseif ($categories->level == $l) {
+				array_pop($full_name);
+			}
+			$full_name[] = html::escapeHTML($categories->cat_title);
+			$categories_combo[implode(' / ',$full_name)] = $categories->cat_id;
+			$l = $categories->level;
+		}
+	}
+} catch (Exception $e) { }
+
 /* DISPLAY
 -------------------------------------------------------- */
@@ -293,26 +320,4 @@
 	$default_tab = 'comments';
 }
-
-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_str = __('&ldquo;%s&rdquo;');
-	$page_title_edit = sprintf($edit_entry_str, html::escapeHTML($post_title)).' '.$img_status;
-}
-
 
 dcPage::open($page_title.' - '.__('Entries'),
@@ -326,11 +331,5 @@
 	$core->callBehavior('adminPostHeaders').
 	dcPage::jsPageTabs($default_tab).
-	$next_headlink."\n".$prev_headlink,
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			__('Entries') => 'posts.php',
-			'<span class="page-title">'.($post_id ? $page_title_edit : $page_title).'</span>' => ''
-		))
+	$next_headlink."\n".$prev_headlink
 );
 
@@ -362,12 +361,37 @@
 }
 
+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) {
+		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_str = __('Edit entry &ldquo;%s&rdquo;');
+	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="onblog_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; }
 	
@@ -384,126 +408,37 @@
 	exit;
 }
+
 /* Post form if we can edit post
 -------------------------------------------------------- */
 if ($can_edit_post)
 {
-	$sidebar_items = new ArrayObject(array(
-		'status-box' => array(
-			'title' => __('Status'),
-			'items' => array(
-				'post_status' => 
-					'<p><label for="post_status" class="ib">'.__('Entry status').'</label>'.
-					form::combo('post_status',$status_combo,$post_status,'maximal','',!$can_publish).
-					'</p>',
-				'post_dt' => 
-					'<p><label for="post_dt" class="ib">'.__('Publication date and hour').'</label>'.
-					form::field('post_dt',16,16,$post_dt,($bad_dt ? 'invalid' : '')).
-					'</p>',
-				'post_lang' =>
-					'<p><label for="post_lang" class="ib">'.__('Entry lang').'</label>'.
-					form::combo('post_lang',$lang_combo,$post_lang).
-					'</p>',
-				'post_format' =>
-					'<p><label for="post_format" class="ib">'.__('Text formating').'</label>'.
-					form::combo('post_format',$formaters_combo,$post_format,'maximal').
-					'</p>'.
-					'<p>'.($post_id && $post_format != 'xhtml' ? 
-					'<a id="convert-xhtml" class="button maximal" href="post.php?id='.$post_id.'&amp;xconv=1">'.
-					__('Convert to XHTML').'</a>' : '').'</p>')),
-		'metas-box' => array(
-			'title' => __('Ordering'),
-			'items' => array(
-				'post_selected' => 
-					'<p><label for="post_selected" class="classic">'.
-					form::checkbox('post_selected',1,$post_selected).' '.
-					__('Selected entry').'</label></p>',
-				'cat_id' =>
-					'<p><label for="cat_id" class="ib">'.__('Category').'</label>'.
-					form::combo('cat_id',$categories_combo,$cat_id,'maximal').
-					'</p>')),
-		'options-box' => array(
-			'title' => __('Options'),
-			'items' => array(
-				'post_open_comment' =>
-					'<p><label for="post_open_comment" class="classic">'.
-					form::checkbox('post_open_comment',1,$post_open_comment).' '.
-					__('Accept comments').'</label></p>'.
-					($core->blog->settings->system->allow_comments ? 
-						(isContributionAllowed($post_id,strtotime($post_dt),true) ? 
-							'' :
-							'<p class="form-note warn">'.
-							__('Warning: Comments are not more accepted for this entry.').'</p>') : 
-						'<p class="form-note warn">'.
-						__('Warning: Comments are not accepted on this blog.').'</p>'),
-				'post_open_tb' =>
-					'<p><label for="post_open_tb" class="classic">'.
-					form::checkbox('post_open_tb',1,$post_open_tb).' '.
-					__('Accept trackbacks').'</label></p>'.
-					($core->blog->settings->system->allow_trackbacks ? 
-						(isContributionAllowed($post_id,strtotime($post_dt),false) ? 
-							'' :
-							'<p class="form-note warn">'.
-							__('Warning: Trackbacks are not more accepted for this entry.').'</p>') : 
-						'<p class="form-note warn">'.__('Warning: Trackbacks are not accepted on this blog.').'</p>'),
-				'post_password' =>
-					'<p><label for="post_password" class="ib">'.__('Password').'</label>'.
-					form::field('post_password',10,32,html::escapeHTML($post_password),'maximal').
-					'</p>',
-				'post_url' =>
-					'<div class="lockable">'.
-					'<p><label for="post_url" class="ib">'.__('Edit basename').'</label>'.
-					form::field('post_url',10,255,html::escapeHTML($post_url),'maximal').
-					'</p>'.
-					'<p class="form-note warn">'.
-					__('Warning: If you set the URL manually, it may conflict with another entry.').
-					'</p></div>'
-	))));
-
-	$main_items = new ArrayObject(array(
-		"post_title" =>
-			'<p class="col">'.
-			'<label class="required no-margin"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label>'.
-			form::field('post_title',20,255,html::escapeHTML($post_title),'maximal').
-			'</p>',
-		
-		"post_excerpt" =>
-			'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'<span class="form-note">'.
-			__('Add an introduction to the post.').'</span></label> '.
-			form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)).
-			'</p>',
-		
-		"post_content" =>
-			'<p class="area"><label class="required" '.
-			'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
-			form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)).
-			'</p>',
-		
-		"post_notes" =>
-			'<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').'</label><span class="form-note">'.
-			__('Add unpublished notes.').'</span>'.
-			form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
-			'</p>'
-		)
-	);
-	
-	# --BEHAVIOR-- adminPostFormItems
-	$core->callBehavior('adminPostFormItems',$main_items,$sidebar_items, isset($post) ? $post : null);
-
-	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">';
 	echo '<div id="entry-content"><div class="constrained">';
-
-	echo '<h3 class="hidden">'.__('Edit post').'</h3>';
-	
-	foreach ($main_items as $id => $item) {
-		echo $item;
-	}
-
-	# --BEHAVIOR-- adminPostForm (may be deprecated)
+	
+	echo
+	'<p class="col"><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
+	form::field('post_title',20,255,html::escapeHTML($post_title),'maximal').
+	'</label></p>'.
+	
+	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
+	form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)).
+	'</p>'.
+	
+	'<p class="area"><label class="required" '.
+	'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
+	form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)).
+	'</p>'.
+	
+	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
+	form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
+	'</p>';
+	
+	# --BEHAVIOR-- adminPostForm
 	$core->callBehavior('adminPostForm',isset($post) ? $post : null);
 	
 	echo
-	'<p class="border-top">'.
+	'<p>'.
 	($post_id ? form::hidden('id',$post_id) : '').
 	'<input type="submit" value="'.__('Save').' (s)" '.
@@ -530,16 +465,73 @@
 	echo '<div id="entry-sidebar">';
 	
-	foreach ($sidebar_items as $id => $c) {
-		echo '<div id="'.$id.'" class="box">'.
-			'<h4>'.$c['title'].'</h4>';
-		foreach ($c['items'] as $e_name=>$e_content) {
-			echo $e_content;
-		}
-		echo '</div>';
-	}
-	
-	
-	# --BEHAVIOR-- adminPostFormSidebar (may be deprecated)
+	echo
+	'<p><label for="cat_id">'.__('Category:').
+	form::combo('cat_id',$categories_combo,$cat_id,'maximal').
+	'</label></p>'.
+	
+	($core->auth->check('categories', $core->blog->id) ?
+		'<div>'.
+		'<p id="new_cat">'.__('Add a new category').'</p>'.
+		'<p><label for="new_cat_title">'.__('Title:').' '.
+		form::field('new_cat_title',30,255,'','maximal').'</label></p>'.
+		'<p><label for="new_cat_parent">'.__('Parent:').' '.
+		form::combo('new_cat_parent',$categories_combo,'','maximal').
+		'</label></p>'.
+		'</div>'
+	: '').
+	
+	'<p><label for="post_status">'.__('Entry status:').
+	form::combo('post_status',$status_combo,$post_status,'','',!$can_publish).
+	'</label></p>'.
+	
+	'<p><label for="post_dt">'.__('Published on:').
+	form::field('post_dt',16,16,$post_dt,($bad_dt ? 'invalid' : '')).
+	'</label></p>'.
+	
+	'<p><label for="post_format">'.__('Text formating:').
+	form::combo('post_format',$formaters_combo,$post_format).
+	'</label>'.
+	'</p>'.
+	'<p>'.($post_id && $post_format != 'xhtml' ? '<a id="convert-xhtml" class="button" href="post.php?id='.$post_id.'&amp;xconv=1">'.__('Convert to XHTML').'</a>' : '').'</p>'.
+	
+	'<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment).' '.
+	__('Accept comments').'</label></p>'.
+	($core->blog->settings->system->allow_comments ? 
+		(isContributionAllowed($post_id,strtotime($post_dt),true) ? 
+			'' :
+			'<p class="form-note warn">'.__('Warning: Comments are not more accepted for this entry.').'</p>') : 
+		'<p class="form-note warn">'.__('Warning: Comments are not accepted on this blog.').'</p>').
+
+	'<p><label for="post_open_tb" class="classic">'.form::checkbox('post_open_tb',1,$post_open_tb).' '.
+	__('Accept trackbacks').'</label></p>'.
+	($core->blog->settings->system->allow_trackbacks ? 
+		(isContributionAllowed($post_id,strtotime($post_dt),false) ? 
+			'' :
+			'<p class="form-note warn">'.__('Warning: Trackbacks are not more accepted for this entry.').'</p>') : 
+		'<p class="form-note warn">'.__('Warning: Trackbacks are not accepted on this blog.').'</p>').
+
+	'<p><label for="post_selected" class="classic">'.form::checkbox('post_selected',1,$post_selected).' '.
+	__('Selected entry').'</label></p>'.
+	
+	'<p><label for="post_lang">'.__('Entry lang:').
+	form::combo('post_lang',$lang_combo,$post_lang).
+	'</label></p>'.
+	
+	'<p><label for="post_password">'.__('Entry password:').
+	form::field('post_password',10,32,html::escapeHTML($post_password),'maximal').
+	'</label></p>'.
+	
+	'<div class="lockable">'.
+	'<p><label for="post_url">'.__('Basename:').
+	form::field('post_url',10,255,html::escapeHTML($post_url),'maximal').
+	'</label></p>'.
+	'<p class="form-note warn">'.
+	__('Warning: If you set the URL manually, it may conflict with another entry.').
+	'</p>'.
+	'</div>';
+	
+	# --BEHAVIOR-- adminPostFormSidebar
 	$core->callBehavior('adminPostFormSidebar',isset($post) ? $post : null);
+	
 	echo '</div>';		// End #entry-sidebar
 
@@ -572,8 +564,8 @@
 	if ($can_edit_post && $core->auth->check('publish,contentadmin',$core->blog->id))
 	{
-		$combo_action[__('Publish')] = 'publish';
-		$combo_action[__('Unpublish')] = 'unpublish';
-		$combo_action[__('Mark as pending')] = 'pending';
-		$combo_action[__('Mark as junk')] = 'junk';
+		$combo_action[__('publish')] = 'publish';
+		$combo_action[__('unpublish')] = 'unpublish';
+		$combo_action[__('mark as pending')] = 'pending';
+		$combo_action[__('mark as junk')] = 'junk';
 	}
 	
@@ -637,15 +629,15 @@
 	'<form action="comment.php" method="post" id="comment-form">'.
 	'<div class="constrained">'.
-	'<p><label for="comment_author" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Name:').'</label>'.
+	'<p><label for="comment_author" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Name:').
 	form::field('comment_author',30,255,html::escapeHTML($core->auth->getInfo('user_cn'))).
-	'</p>'.
-	
-	'<p><label for="comment_email">'.__('Email:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="comment_email">'.__('Email:').
 	form::field('comment_email',30,255,html::escapeHTML($core->auth->getInfo('user_email'))).
-	'</p>'.
-	
-	'<p><label for="comment_site">'.__('Web site:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="comment_site">'.__('Web site:').
 	form::field('comment_site',30,255,html::escapeHTML($core->auth->getInfo('user_url'))).
-	'</p>'.
+	'</label></p>'.
 	
 	'<p class="area"><label for="comment_content" class="required"><abbr title="'.__('Required field').'">*</abbr> '.
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 1415)
+++ admin/posts.php	(revision 1179)
@@ -77,6 +77,6 @@
 	$selected_combo = array(
 	'-' => '',
-	__('Selected') => '1',
-	__('Not selected') => '0'
+	__('selected') => '1',
+	__('not selected') => '0'
 	);
 	
@@ -245,58 +245,51 @@
 }
 
-dcPage::open(__('Entries'),$starting_script,
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Entries').'</span>' => ''
-		))
-);
+dcPage::open(__('Entries'),$starting_script);
 
 if (!$core->error->flag())
 {
-	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>';
 	
 	if (!$show_filters) {
 		echo '<p><a id="filter-control" class="form-control" href="#">'.
-		__('Filter posts list').'</a></p>';
+		__('Filters').'</a></p>';
 	}
 	
 	echo
 	'<form action="posts.php" method="get" id="filters-form">'.
-	'<h3>'.__('Filter posts list').'</h3>'.
-
-	'<div class="table">'.
-	'<div class="cell">'.
-	'<p><label for="user_id" class="ib">'.__('Author:').'</label> '.
-	form::combo('user_id',$users_combo,$user_id).'</p>'.
-	'<p><label for="cat_id" class="ib">'.__('Category:').'</label> '.
-	form::combo('cat_id',$categories_combo,$cat_id).'</p>'.
-	'<p><label for="status" class="ib">'.__('Status:').'</label>' .
-	form::combo('status',$status_combo,$status).'</p> '.
-	'</div>'.
-	
-	'<div class="cell">'.
-	'<p><label for="selected" class="ib">'.__('Selected:').'</label> '.
-	form::combo('selected',$selected_combo,$selected).'</p>'.
-	'<p><label for="month" class="ib">'.__('Month:').'</label> '.
-	form::combo('month',$dt_m_combo,$month).'</p>'.
-	'<label for="lang" class="ib">'.__('Lang:').'</label> '.
-	form::combo('lang',$lang_combo,$lang).'</p> '.
-	'</div>'.
-	
-	'<div class="cell filters-options">'.
-	'<p><label for="sortby" class="ib">'.__('Order by:').'</label> '.
-	form::combo('sortby',$sortby_combo,$sortby).'</p>'.
-	'<p><label for="order" class="ib">'.__('Sort:').'</label> '.
-	form::combo('order',$order_combo,$order).'</p>'.
-	'<p><span class="label ib">Afficher</span> <label for="nb" class="classic">'.	form::field('nb',3,3,$nb_per_page).' '.
-	__('entries per page').'</label></p>'.
-	'</div>'.
-	'</div>'.
-
-	'<p class="no-margin"><input type="submit" value="'.__('Apply filters').'" /></p>'.
-
+	'<fieldset><legend>'.__('Filters').'</legend>'.
+	'<div class="three-cols">'.
+	'<div class="col">'.
+	'<label for="user_id">'.__('Author:').
+	form::combo('user_id',$users_combo,$user_id).'</label> '.
+	'<label for="cat_id">'.__('Category:').
+	form::combo('cat_id',$categories_combo,$cat_id).'</label> '.
+	'<label for="status">'.__('Status:').
+	form::combo('status',$status_combo,$status).'</label> '.
+	'</div>'.
+	
+	'<div class="col">'.
+	'<label for="selected">'.__('Selected:').
+	form::combo('selected',$selected_combo,$selected).'</label> '.
+	'<label for="month">'.__('Month:').
+	form::combo('month',$dt_m_combo,$month).'</label> '.
+	'<label for="lang">'.__('Lang:').
+	form::combo('lang',$lang_combo,$lang).'</label> '.
+	'</div>'.
+	
+	'<div class="col">'.
+	'<p><label for="sortby">'.__('Order by:').
+	form::combo('sortby',$sortby_combo,$sortby).'</label> '.
+	'<label for="order">'.__('Sort:').
+	form::combo('order',$order_combo,$order).'</label></p>'.
+	'<p><label for="nb" class="classic">'.	form::field('nb',3,3,$nb_per_page).' '.
+	__('Entries per page').'</label></p> '.
+	'<p><input type="submit" value="'.__('Apply filters').'" /></p>'.
+	'</div>'.
+	'</div>'.
 	'<br class="clear" />'. //Opera sucks
+	'</fieldset>'.
 	'</form>';
 	
Index: admin/posts_actions.php
===================================================================
--- admin/posts_actions.php	(revision 1399)
+++ admin/posts_actions.php	(revision 1389)
@@ -16,4 +16,5 @@
 
 $params = array();
+$action = '';
 
 /* Actions
@@ -246,15 +247,22 @@
 	echo '<h2 class="page-title">'.__('Change category for entries').'</h2>';
 	
-	# categories list
 	# Getting categories
-	$categories_combo = array('&nbsp;' => '');
+	$categories_combo = array(__('(No cat)') => '');
 	try {
 		$categories = $core->blog->getCategories(array('post_type'=>'post'));
-		while ($categories->fetch()) {
-			$categories_combo[] = new formSelectOption(
-				str_repeat('&nbsp;&nbsp;',$categories->level-1).
-				($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
-				$categories->cat_id
-			);
+		if (!$categories->isEmpty()) {
+			$l = $categories->level;
+			$full_name = array($categories->cat_title);
+
+			while ($categories->fetch()) {
+				if ($categories->level < $l) {
+					$full_name = array();
+				} elseif ($categories->level == $l) {
+					array_pop($full_name);
+				}
+				$full_name[] = html::escapeHTML($categories->cat_title);
+				$categories_combo[implode(' / ',$full_name)] = $categories->cat_id;
+				$l = $categories->level;
+			}
 		}
 	} catch (Exception $e) { }
@@ -262,6 +270,7 @@
 	echo
 	'<form action="posts_actions.php" method="post">'.
-	'<p><label for="new_cat_id" class="classic">'.__('Category:').'</label> '.
-	form::combo('new_cat_id',$categories_combo,'');
+	'<p><label for="new_cat_id" class="classic">'.__('Category:').' '.
+	form::combo('new_cat_id',$categories_combo,'').
+	'</label> ';
 	
 	echo
@@ -294,6 +303,7 @@
 	echo
 	'<form action="posts_actions.php" method="post">'.
-	'<p><label for="new_lang" class="classic">'.__('Entry lang:').'</label> '.
-	form::combo('new_lang',$lang_combo,'');
+	'<p><label for="new_lang" class="classic">'.__('Entry lang:').' '.
+	form::combo('new_lang',$lang_combo,'').
+	'</label> ';
 	
 	echo
@@ -311,6 +321,7 @@
 	echo
 	'<form action="posts_actions.php" method="post">'.
-	'<p><label for="new_auth_id" class="classic">'.__('Author ID:').'</label> '.
-	form::field('new_auth_id',20,255);
+	'<p><label for="new_auth_id" class="classic">'.__('Author ID:').' '.
+	form::field('new_auth_id',20,255).
+	'</label> ';
 	
 	echo
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 1399)
+++ admin/preferences.php	(revision 1375)
@@ -344,15 +344,22 @@
 	($user_acc_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
 	dcPage::jsLoad('js/jquery/jquery-ui.custom.js').
+	dcPage::jsLoad('js/jquery/jquery.pwstrength.js').
+		'<script type="text/javascript">'."\n".
+		"//<![CDATA[\n".
+		"\$(function() {\n".
+		"	\$('#new_pwd').pwstrength({texts: ['".
+				sprintf(__('Password strength: %s'),__('very weak'))."', '".
+				sprintf(__('Password strength: %s'),__('weak'))."', '".
+				sprintf(__('Password strength: %s'),__('mediocre'))."', '".
+				sprintf(__('Password strength: %s'),__('strong'))."', '".
+				sprintf(__('Password strength: %s'),__('very strong'))."']});\n".
+		"});\n".
+		"\n//]]>\n".
+		"</script>\n".
 	dcPage::jsPageTabs($default_tab).
 	dcPage::jsConfirmClose('user-form').
 	
 	# --BEHAVIOR-- adminPreferencesHeaders
-	$core->callBehavior('adminPreferencesHeaders'),
-
-	dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.$page_title.'</span>' => ''
-	))
+	$core->callBehavior('adminPreferencesHeaders')
 );
 
@@ -375,4 +382,6 @@
 	dcPage::message(__('Default favorites have been successfully updated.'));
 }
+
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 
 # User profile
@@ -384,18 +393,18 @@
 '<div class="two-cols">'.
 '<div class="col">'.
-'<p><label for="user_name">'.__('Last Name:').'</label>'.
-form::field('user_name',20,255,html::escapeHTML($user_name)).'</p>'.
-
-'<p><label for="user_firstname">'.__('First Name:').'</label>'.
-form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).'</p>'.
-
-'<p><label for="user_displayname">'.__('Display name:').'</label>'.
-form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).'</p>'.
-
-'<p><label for="user_email">'.__('Email:').'</label>'.
-form::field('user_email',20,255,html::escapeHTML($user_email)).'</p>'.
-
-'<p><label for="user_url">'.__('URL:').'</label>'.
-form::field('user_url',30,255,html::escapeHTML($user_url)).'</p>'.
+'<p><label for="user_name">'.__('Last Name:').
+form::field('user_name',20,255,html::escapeHTML($user_name)).'</label></p>'.
+
+'<p><label for="user_firstname">'.__('First Name:').
+form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).'</label></p>'.
+
+'<p><label for="user_displayname">'.__('Display name:').
+form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).'</label></p>'.
+
+'<p><label for="user_email">'.__('Email:').
+form::field('user_email',20,255,html::escapeHTML($user_email)).'</label></p>'.
+
+'<p><label for="user_url">'.__('URL:').
+form::field('user_url',30,255,html::escapeHTML($user_url)).'</label></p>'.
 
 '</div>'.
@@ -403,9 +412,9 @@
 '<div class="col">'.
 
-'<p><label for="user_lang">'.__('User language:').'</label>'.
-form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</p>'.
-
-'<p><label for="user_tz">'.__('User timezone:').'</label>'.
-form::combo('user_tz',dt::getZones(true,true),$user_tz).'</p>'.
+'<p><label for="user_lang">'.__('User language:').
+form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</label></p>'.
+
+'<p><label for="user_tz">'.__('User timezone:').
+form::combo('user_tz',dt::getZones(true,true),$user_tz).'</label></p>'.
 
 '</div>'.
@@ -420,6 +429,12 @@
 	'<legend>'.__('Change your password').'</legend>'.
 	
-	'<p><label for="new_pwd">'.__('New password:').'</label>'.
-	form::password('new_pwd',20,255).'</p>'.
+	'<div class="pw-table">'.
+	'<p class="pw-cell"><label for="new_pwd">'.__('New password:').'</label>'.
+	form::password('new_pwd',20,255,'','','',false,' data-indicator="pwindicator" ').'</p>'.
+    '<div id="pwindicator">'.
+    '    <div class="bar"></div>'.
+    '    <p class="label no-margin"></p>'.
+    '</div>'.
+    '</div>'.
 	
 	'<p><label for="new_pwd_c">'.__('Confirm password:').'</label>'.
@@ -447,12 +462,12 @@
 '<fieldset><legend>'.__('My options').'</legend>'.
 
-'<p><label for="user_post_format">'.__('Preferred format:').'</label>'.
-form::combo('user_post_format',$formaters_combo,$user_options['post_format']).'</p>'.
-
-'<p><label for="user_post_status">'.__('Default entry status:').'</label>'.
-form::combo('user_post_status',$status_combo,$user_post_status).'</p>'.
-
-'<p><label for="user_edit_size">'.__('Entry edit field height:').'</label>'.
-form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).'</p>'.
+'<p><label for="user_post_format">'.__('Preferred format:').
+form::combo('user_post_format',$formaters_combo,$user_options['post_format']).'</label></p>'.
+
+'<p><label for="user_post_status">'.__('Default entry status:').
+form::combo('user_post_status',$status_combo,$user_post_status).'</label></p>'.
+
+'<p><label for="user_edit_size">'.__('Entry edit field height:').
+form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).'</label></p>'.
 
 '<p><label for="user_wysiwyg" class="classic">'.
@@ -470,6 +485,6 @@
 if (count($iconsets_combo) > 1) {
 	echo 
-		'<p><label for="user_ui_iconset">'.__('Iconset:').'</label>'.
-		form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</p>';
+		'<p><label for="user_ui_iconset">'.__('Iconset:').
+		form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</label></p>';
 } else {
 	form::hidden('user_ui_iconset','');
Index: admin/search.php
===================================================================
--- admin/search.php	(revision 1358)
+++ admin/search.php	(revision 1276)
@@ -70,18 +70,13 @@
 
 
-dcPage::open(__('Search'),$starting_scripts,
-	dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Search').'</span>' => ''
-		))
-);
+dcPage::open(__('Search'),$starting_scripts);
 
 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><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>'.
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 1415)
+++ admin/style/default.css	(revision 1375)
@@ -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,41 +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;
-}
-h4 {
-	font-size: 1.1em;
-	color: #575859;
-}
-h5 {
-	font-size: 1em;
-	color: #575859;
-}
-#entry-sidebar h5 {
-	font-weight: normal;
+h3 {
 	color: #333;
+	font-size: 1.2em;
 }
 p, div.p {
@@ -79,5 +57,5 @@
 hr {
 	height: 1px;
-	border-width: 1px 0 0;
+	border-width: 1px 0 0 0;
 	border-color: #999;
 	border-style: solid;
@@ -105,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;
 }
@@ -140,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 {
@@ -180,5 +153,5 @@
 }
 #info-box1 select {
-	width: 14.5em;
+	width: 15em;
 }
 #info-box1 a img, #info-box2 a img {
@@ -186,5 +159,6 @@
 	padding-left: .3em;
 	}
-#info-boxes a {
+#info-box1 a, #info-box2 a {
+	background: #575859;
 	font-weight: bold;
 	color: #fff;
@@ -199,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%;
@@ -216,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 */
@@ -264,6 +239,6 @@
 /* -------------------------------------------------------------- layout - onglets */
 .part-tabs ul {
-	padding: .5em 0 .3em 1.2rem;
-	border-bottom: 1px solid #ddd;
+	padding: .3em 0 1px 1em;
+	border-bottom: 1px solid #999;
 }
 .part-tabs li {
@@ -273,11 +248,16 @@
 }
 .part-tabs li a {
-	padding: .5em 2em;
-	margin-right: -1px;
-	border: 1px solid #ccc;
+	padding: .3em 0.5em;
+	margin-right: .5em;
+	border: 1px solid #999;
 	border-bottom: none;
+	background: #dfdfdf;
 	text-decoration: none;
-	color: #333;
-	background-color:#eef;
+	border-top-left-radius: .3em;
+	border-top-right-radius: .3em;
+	color: #000;
+}
+.part-tabs li.part-tabs-link a {
+	background: #ffe;
 }
 .part-tabs li a:hover, .part-tabs li a:focus {
@@ -288,28 +268,25 @@
 .part-tabs li.part-tabs-active a {
 	background: #fff;
+	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;
@@ -318,86 +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;
-}
-#main-menu li.active {
-	background-color: #fff;
+	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; 
+	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: #333;
+	text-transform: none;
+}
+#favorites-menu a {
+	color: #333;
+}
+#favorites-menu .active {
+	background-color: transparent;
 	border: none;
 }
-#search-menu input[type="submit"] {
-	padding: 0 0.3rem;
-	background: #dfdfdf;
-	border-color: #999;
-	color: #444;
-	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;
-}
-#favorites-menu h3 {
-	color: #000;
-	font-variant: small-caps;
-	padding-top: .6rem;
+#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;
 }
@@ -407,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] {
@@ -429,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;}
@@ -437,5 +381,13 @@
 /* ------------------------------------------------------------------ dashboard */
 #dashboard-main {
+	float: left;
+	overflow: hidden;
+	padding: 1em 2% 1em 0;
+	width: 70%;
+}
+#dashboard-main.fullwidth {
+	width: 100%;
 	padding: 1em 0;
+	float: none;
 }
 #icons {
@@ -447,8 +399,6 @@
 	width: 210px;
 	text-align: center;
-	margin: 1em 0 2em;
-	padding: 1em 0;
+	margin: 2em 0 0 0;
 	display:inline-block;
-	vertical-align: top;
 }
 #icons a,
@@ -462,15 +412,4 @@
 #icons a span {
 	border-bottom: 1px dotted #f90;
-	color: #333;
-}
-#icons a img {
-	padding: 2em;
-	background: #eee;
-	border-radius: 1.6rem;
-	box-shadow: 0 3px 3px 0 #ccc;
-	margin-bottom: .6rem;
-}
-#icons a img:hover, #icons a:focus img {
-	background-color: #BBDB58;
 }
 #icons a:focus span, #icons a:hover span {
@@ -478,4 +417,5 @@
 }
 #quick {
+	clear: left;
 	margin-top: 2em;
 }
@@ -492,14 +432,9 @@
 }
 #dashboard-items {
-	margin: 3em auto;
-	display: table;
-	width: 100%;
-	border-collapse: collapse;
-}
-.db-item {
-	display: table-cell;
-	padding: 1em 3em;
-	vertical-align: top;
-	border: 1px solid #ccc;
+	float: left;
+	width: 27%;
+	overflow: hidden;
+	padding-bottom: 1em;
+	padding-top: 3em;
 }
 #dashboard-items img {
@@ -541,26 +476,9 @@
 }
 #entry-content {
-	margin-right: 19em;
-	margin-left: 0;
-}
-.multi-part {
-	padding-left: 1.2rem;
-}
-#entry-content label {
-	text-transform: uppercase;
-	font-weight: bold;
-	margin-top: 2em;
+	margin-right: 18em;
 }
 #entry-sidebar {
 	width: 17em;
 	float: right;
-}
-#entry-sidebar input[type="text"],
-#entry-sidebar select {
-	width: 14em; /* to prevent inline with label */
-}
-.box {
-	border-bottom: 1px solid #ddd;
-	margin-bottom: 1em;
 }
 #comments {
@@ -858,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 {
@@ -884,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;
@@ -918,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;
 }
@@ -958,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 {
@@ -973,32 +874,4 @@
 div.static-msg a, p.static-msg a {
 	color: #fff;
-}
-/* ------------------------------------------------------------------ navigation */
-.anchor-nav {
-	background: #575859;
-	color: #fff;
-	padding: .4rem 1.2rem;
-	float: right;
-}
-.nav_prevnext {
-	margin-bottom: 2em;
-	color: #fff;
-}
-.nav_prevnext a, a.back {
-	border: 1px solid #ddd;
-	padding: .2rem 2rem;
-	border-radius: 1rem;
-	background-color: #eee;
-}
-a.back:before {
-	content: "\ab\a0";
-}
-a.onblog_link {
-	color: #333;
-	float: right;
-	border: 1px solid #eee;
-	padding: .2rem 2rem;
-	border-radius: 1rem;
-	background-color: #ffe;
 }
 /* ------------------------------------------------------------------ debug */
@@ -1025,11 +898,6 @@
 /* -------------------------------------------------------------------- CLASSES COMMUNES */
 
-.no-margin, #entry-content label.no-margin {
-	margin: 0;
-}
-.border-top {
-	border-top: 1px solid #999;
-	padding-top: 1em;
-	margin-top:	1em;
+.no-margin {
+	margin: 0;
 }
 /* paragraphe pour bouton Nouveau bidule */
@@ -1123,13 +991,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;
@@ -1140,11 +1009,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 {
@@ -1163,9 +1032,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 {
@@ -1181,4 +1045,5 @@
 	width: 40%;
 }
+
 td.status {
 	vertical-align: middle;
@@ -1219,4 +1084,5 @@
 	padding-left: 15px;
 }
+
 /* ----------------------------------------------------------------- FORMS */
 form {
@@ -1234,7 +1100,4 @@
 	background: #f5f5f5;
 }
-.fieldset {
-	background: #eef;
-}
 legend {
 	font-weight: bold;
@@ -1243,5 +1106,5 @@
 	border-style: solid;
 	border-color: #ccc;
-	background: #eef;
+	background: #f5f5f5;
 	margin-bottom: 0.5em;
 }
@@ -1258,5 +1121,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 {
@@ -1267,5 +1130,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 {
@@ -1273,9 +1136,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;
@@ -1296,5 +1162,4 @@
 	font-style:italic;
 	font-weight: normal;
-	text-transform: none;
 	color: #666;
 }
@@ -1313,7 +1178,4 @@
 .form-note a {border-bottom: 1px solid #99f;}
 
-label.ib {
-	display: inline-block;
-}
 label.classic {
 	display: inline;
@@ -1352,5 +1214,5 @@
 	display: inline;
 	position: absolute;
-	left: 14.5em;
+	left: 15em;
 	top: 0;
 }
@@ -1365,7 +1227,7 @@
 	display: none;
 	font-weight: bold;
-	background: url(../images/expand.png) no-repeat .6rem center;
+	background: url(magnifier.png) no-repeat 0 0;
+	color: green;
 	padding-left: 20px;
-	color: #000;
 }
 .constrained {
@@ -1377,4 +1239,10 @@
 
 /* --------------------------------------------------------------- buttons */
+h2 a.button {
+	color: #333;
+	font-weight: normal;
+	font-size: .75em;
+	vertical-align: middle;
+}
 /* commun */
 input[type=submit],
@@ -1382,4 +1250,5 @@
 input[type=button],
 a.button,
+a.back,
 a.submit {
 	display: inline-block;
@@ -1388,11 +1257,9 @@
 	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;
 	margin-bottom: .1em;
 }
-h4 a.button {font-weight: normal;}
-
 /* validation */
 input[type=submit],
@@ -1419,4 +1286,5 @@
 /* suppression et reset */
 a.button,
+a.back,
 input[type=submit].reset,
 input[type=submit].delete {
@@ -1429,8 +1297,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,
@@ -1445,5 +1315,5 @@
 input[type=submit].delete {
 	color: #c00;
-	padding-bottom: .2rem;
+	padding-bottom: .1em;
 }
 #entry-content .delete {
@@ -1466,25 +1336,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;
-	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;
+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;
 }
 
@@ -1522,114 +1384,41 @@
 }
 
-/* ------------------------------------------------------- Filters */
-#filters-form {
-	border: 1px dashed #999;
-	border-radius: .6rem;
-	margin-bottom: 2em;
-	padding: .5em 1em 0;
-}
-#filters-form .table {
+/* --------------------------------------------------------------- password indcator */
+.pw-table {
 	display: table;
-	width: 100%;
-	padding: 0;
 	margin-bottom: 1em;
-	margin-top: 1.5em;
-}
-#filters-form .cell {
-	padding: 0 2em 0 0;
+}
+.pw-cell {
 	display: table-cell;
-	vertical-align: top;
-}
-#filters-form .filters-options {
-	padding-left: 2em;
-	border-left: 1px solid #ccc;
-}
-#filters-form label.ib, span.ib {
-	width:7em;
-	display: inline-block;
-}
-#filters-form select {
-	width: 14em;
-}
-
-/* ---------------------------------------------------- Pagination */
-.pagination {
-	height: 20px;
-	line-height: 20px;
-	padding: 0 1rem; 
-	border: 1px solid #ccc;
-	overflow: hidden; 
-	background: #e1e1e1; 
-	background: -moz-linear-gradient(center top , #f2f2f2, #e1e1e1); 
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f2f2f2), color-stop(100%,#e1e1e1)); 
-	-moz-border-radius: 4px; 
-	-webkit-border-radius: 4px; 
-	border-radius: 4px; 
-}
-.pagination a, .pagination strong {
-	height: 20px;
-	border: none;
-	padding: 2px 6px; 
-	background-color : transparent;
-	background-position : 50% 50%;
-	background-repeat: no-repeat;
-}
-.pagination a:hover, .pagination strong {
-	border-color : #ccc;
-	background-color: #fff;
-}
-
-/* ---------------------------------------------------------------------------
-	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 {margin-left: 1rem;}
-	#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-box2 {float:none;}
-	#dashboard-items div {display: block;margin-bottom: 1em; padding: 0 1em;}
-}
-@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 select {width: 12rem; margin-right: .6rem;}
-	#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}
-}
+	margin-bottom: 1em;
+}
+#pwindicator {
+	display: table-cell;
+	vertical-align: bottom;
+	padding-left: 1.5em;
+	height: 3.8em;
+}
+#pwindicator .bar {
+	height: 6px;
+	margin-bottom: 4px;
+}
+.pw-very-weak .bar {
+	background: #900;
+	width: 30px;
+}
+.pw-weak .bar {
+	background: #c00;
+	width: 60px;
+}
+.pw-mediocre .bar {
+	background: #f60;
+	width: 90px;
+}
+.pw-strong .bar {
+	background: #060;
+	width: 120px;
+}
+.pw-very-strong .bar {
+	background: #0c0;
+	width: 150px;
+}
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/jsToolBar/jsToolBar.css
===================================================================
--- admin/style/jsToolBar/jsToolBar.css	(revision 1399)
+++ admin/style/jsToolBar/jsToolBar.css	(revision 1065)
@@ -2,5 +2,6 @@
 	border-width : 0 1px 1px 1px;
 	border-style : solid;
-	border-color : #ccc;
+	border-color : #000 #ccc #ccc #000;
+	padding-left: 5px;
 	background : #f9f9f9;
 }
@@ -8,10 +9,6 @@
   margin: 0;
   border: 0;
-  padding: 0;
 }
-.jstEditor textarea {
-  width: 99%;
-  padding: 1rem 0 0 1%;
-}
+
 .jstHandle {
 	height: 8px;
@@ -25,17 +22,9 @@
 
 .jstElements {
-	height: 28px;
-	padding: 0 1rem; 
-	border: 1px solid #ccc;
-	overflow: hidden; 
-	background: #e1e1e1; 
-	background: -moz-linear-gradient(center top , #f2f2f2, #e1e1e1); 
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f2f2f2), color-stop(100%,#e1e1e1)); 
-	-moz-border-radius: 4px 4px 0 0; 
-	-webkit-border-radius: 4px 4px 0 0; 
-	border-radius: 4px 4px 0 0; 
-	-webkit-box-shadow: 0 1px 0 #FFF inset; 
-	-moz-box-shadow: 0 1px 0 #FFF inset; 
-	box-shadow: 0 1px 0 #FFF inset;
+	padding: 3px 3px;
+	border-width: 1px 1px 0 1px;
+	border-style: solid;
+	border-color: #000 #ccc #ccc #000;
+	background: #dfdfdf;
 }
 
@@ -45,12 +34,13 @@
 .jstElements select {
 	width: 12em;
-	margin-right: .6rem;
 }
 .jstElements button {
-	width : 30px;
-	height: 28px;
-	border-style: groove;
-	border-width:  0 1px 0 0;
-	border-color: #666;
+	margin-right : 2px;
+	width : 20px;
+	height: 20px;
+	padding: 0;
+	border-style: solid;
+	border-width: 1px;
+	border-color: #dfdfdf;
 	background-color : transparent;
 	background-position : 50% 50%;
@@ -65,16 +55,11 @@
 }
 .jstElements span {
-	display : inline-block;
-	vertical-align: top;
-	background: #dfdfdf;
+	display : inline;
 }
 
 .jstSpacer {
-	width : 2px;
-	height: 28px;
-	margin-right: 0;
-	border-style: groove;
-	border-width:  0 1px 0 0;
-	border-color: #666;
+	width : 0px;
+	font-size: 1px;
+	margin-right: 4px;
 }
 
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 1399)
+++ admin/trackbacks.php	(revision 1179)
@@ -83,15 +83,5 @@
 /* DISPLAY
 -------------------------------------------------------- */
-if ($can_view_page) {
-	$breadcrumb = dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		html::escapeHTML($post->post_title) => $core->getPostAdminURL($post->post_type,$id),
-		'<span class="page-title">'.$page_title.'</span>' => ''
-	));
-} else {
-	$breadcrumb = '';
-}
-dcPage::open($page_title,dcPage::jsLoad('js/_trackbacks.js'),$breadcrumb);
+dcPage::open($page_title,dcPage::jsLoad('js/_trackbacks.js'));
 
 # Exit if we cannot view page
@@ -104,4 +94,6 @@
 	dcPage::message(__('All pings sent.'));
 }
+
+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).'">'.
@@ -127,10 +119,10 @@
 '<h3>'.__('Ping blogs').'</h3>'.
 '<form action="trackbacks.php" id="trackback-form" method="post">'.
-'<p><label for="tb_urls" class="area">'.__('URLs to ping:').'</label>'.
+'<p><label for="tb_urls" class="area">'.__('URLs to ping:').
 form::textarea('tb_urls',60,5,$tb_urls).
-'</p>'.
+'</label></p>'.
 
-'<p><label for="tb_excerpt" class="area">'.__('Send excerpt:').'</label>'.
-form::textarea('tb_excerpt',60,3,$tb_excerpt).'</p>'.
+'<p><label for="tb_excerpt" class="area">'.__('Send excerpt:').
+form::textarea('tb_excerpt',60,3,$tb_excerpt).'</label></p>'.
 
 '<p>'.form::hidden('id',$id).
Index: admin/update.php
===================================================================
--- admin/update.php	(revision 1358)
+++ 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() : '';
@@ -168,11 +168,14 @@
 -------------------------------------------------------- */
 dcPage::open(__('Dotclear update'),
-	(!$step ? dcPage::jsPageTabs($default_tab) : ''),
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('Dotclear update').'</span>' => ''
-		))
+	(!$step ? dcPage::jsPageTabs($default_tab) : '')
 );
+
+if (!$core->error->flag()) {
+	echo '<h2>'.__('Dotclear update').'</h2>';
+	
+	if (!empty($_GET['nocache'])) {
+		dcPage::message(__('Manual checking of update done successfully.'));
+	}
+}
 
 if (!$step)
@@ -181,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 1399)
+++ admin/user.php	(revision 1179)
@@ -15,5 +15,5 @@
 dcPage::checkSuper();
 
-$page_title = __('New user');
+$page_title = __('new user');
 
 $user_id = '';
@@ -174,12 +174,5 @@
 	
 	# --BEHAVIOR-- adminUserHeaders
-	$core->callBehavior('adminUserHeaders'),
-
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Users') => 'users.php',
-			'<span class="page-title">'.$page_title.'</span>' => ''
-		))
+	$core->callBehavior('adminUserHeaders')
 );
 
@@ -191,4 +184,6 @@
 	dcPage::message(__('User has been successfully created.'));
 }
+
+echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 
 if ($user_id == $core->auth->userID()) {
@@ -203,26 +198,26 @@
 '<div class="two-cols">'.
 '<div class="col">'.
-'<p><label for="user_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Username:').'</label> '.
+'<p><label for="user_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Username:').' '.
 form::field('user_id',20,255,html::escapeHTML($user_id)).
-'</p>'.
+'</label></p>'.
 '<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p>'.
 
 '<p><label for="new_pwd" '.($user_id != '' ? '' : 'class="required"').'>'.
 ($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').
-($user_id != '' ? __('New password:') : __('Password:')).'</label> '.
+($user_id != '' ? __('New password:') : __('Password:')).' '.
 form::password('new_pwd',20,255).
-'</p>'.
+'</label></p>'.
 '<p class="form-note">'.__('Password must contain at least 6 characters.').'</p>'.
 
 '<p><label for="new_pwd_c" '.($user_id != '' ? '' : 'class="required"').'>'.
-($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Confirm password:').'</label> '.
+($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Confirm password:').' '.
 form::password('new_pwd_c',20,255).
-'</p>'.
-
-'<p><label for="user_name">'.__('Last Name:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_name">'.__('Last Name:').' '.
 form::field('user_name',20,255,html::escapeHTML($user_name)).
-'</p>'.
-
-'<p><label for="user_firstname">'.__('First Name:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_firstname">'.__('First Name:').' '.
 form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).
 '</label></p>'.
@@ -230,35 +225,35 @@
 '<p><label for="user_displayname">'.__('Display name:').' '.
 form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).
-'</p>'.
-
-'<p><label for="user_email">'.__('Email:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_email">'.__('Email:').' '.
 form::field('user_email',20,255,html::escapeHTML($user_email)).
-'</p>'.
+'</label></p>'.
 '<p class="form-note">'.__('Mandatory for password recovering procedure.').'</p>'.
 '</div>'.
 
 '<div class="col">'.
-'<p><label for="user_url">'.__('URL:').'</label> '.
+'<p><label for="user_url">'.__('URL:').' '.
 form::field('user_url',30,255,html::escapeHTML($user_url)).
-'</p>'.
-'<p><label for="user_post_format">'.__('Preferred format:').'</label> '.
+'</label></p>'.
+'<p><label for="user_post_format">'.__('Preferred format:').' '.
 form::combo('user_post_format',$formaters_combo,$user_options['post_format']).
-'</p>'.
-
-'<p><label for="user_post_status">'.__('Default entry status:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_post_status">'.__('Default entry status:').' '.
 form::combo('user_post_status',$status_combo,$user_post_status).
-'</p>'.
-
-'<p><label for="user_edit_size">'.__('Entry edit field height:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_edit_size">'.__('Entry edit field height:').' '.
 form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).
-'</p>'.
-
-'<p><label for="user_lang">'.__('User language:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_lang">'.__('User language:').' '.
 form::combo('user_lang',$lang_combo,$user_lang,'l10n').
-'</p>'.
-
-'<p><label for="user_tz">'.__('User timezone:').'</label> '.
+'</label></p>'.
+
+'<p><label for="user_tz">'.__('User timezone:').' '.
 form::combo('user_tz',dt::getZones(true,true),$user_tz).
-'</p>';
+'</label></p>';
 
 if ($core->auth->allowPassChange()) {
@@ -283,6 +278,6 @@
 echo
 '<p><label for="your_pwd" '.($user_id != '' ? '' : 'class="required"').'>'.
-($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Your password:').'</label>'.
-form::password('your_pwd',20,255).'</p>'.
+($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Your password:').
+form::password('your_pwd',20,255).'</label></p>'.
 '<p class="clear"><input type="submit" name="save" accesskey="s" value="'.__('Save').'" />'.
 ($user_id != '' ? '' : ' <input type="submit" name="saveplus" value="'.__('Save and create another').'" />').
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 1358)
+++ admin/users.php	(revision 1237)
@@ -94,11 +94,5 @@
 }
 
-dcPage::open(__('Users'),$starting_script,
-	dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			'<span class="page-title">'.__('Users').'</span>' => ''
-		))
-);
+dcPage::open(__('Users'),$starting_script);
 
 if (!$core->error->flag())
@@ -111,5 +105,6 @@
 	}
 	
-	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 1399)
+++ admin/users_actions.php	(revision 1179)
@@ -131,26 +131,9 @@
 /* DISPLAY
 -------------------------------------------------------- */
-if (!empty($users) && empty($blogs) && $action == 'blogs') {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Users') => 'users.php',
-			'<span class="page-title">'.__('Permissions').'</span>' => ''
-		));
-} else {
-	$breadcrumb = dcPage::breadcrumb(
-		array(
-			__('System') => '',
-			__('Users') => 'users.php',
-			'<span class="page-title">'.__('Actions').'</span>' => ''
-		));
-}
-
 dcPage::open(
 	__('Users'),
 	dcPage::jsLoad('js/_users_actions.js').
 	# --BEHAVIOR-- adminUsersActionsHeaders
-	$core->callBehavior('adminUsersActionsHeaders'),
-	$breadcrumb
+	$core->callBehavior('adminUsersActionsHeaders')
 );
 
@@ -194,5 +177,6 @@
 	}
 	
-	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.'),
@@ -285,6 +269,6 @@
 	echo
 	'<fieldset><legend>'.__('Validate permissions').'</legend>'.
-	'<p><label for="your_pwd">'.__('Your password:').'</label>'.
-	form::password('your_pwd',20,255).'</p>'.
+	'<p><label for="your_pwd">'.__('Your password:').
+	form::password('your_pwd',20,255).'</label></p>'.
 	'</fieldset>'.
 	'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
