Index: plugins/aboutConfig/_admin.php
===================================================================
--- plugins/aboutConfig/_admin.php	(revision 1294)
+++ plugins/aboutConfig/_admin.php	(revision 1179)
@@ -12,5 +12,5 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$_menu['System']->addItem('about:config','plugin.php?p=aboutConfig','index.php?pf=aboutConfig/icon.png',
+$_menu['Plugins']->addItem('about:config','plugin.php?p=aboutConfig','index.php?pf=aboutConfig/icon.png',
 		preg_match('/plugin.php\?p=aboutConfig(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin());
Index: plugins/aboutConfig/index.php
===================================================================
--- plugins/aboutConfig/index.php	(revision 1474)
+++ plugins/aboutConfig/index.php	(revision 1274)
@@ -85,5 +85,5 @@
 	
 	return
-	'<tr class="line">'.
+	'<tr>'.
 	'<td scope="row"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
@@ -97,5 +97,10 @@
   <title>about:config</title>
   <?php echo dcPage::jsPageTabs($part); ?>
-  <script type="text/javascript">
+  <style type="text/css">
+  table.settings { border: 1px solid #999; margin-bottom: 2em; }
+  table.settings th { background: #f5f5f5; color: #444; padding-top: 0.3em; padding-bottom: 0.3em; }
+  p.anchor-nav {float: right; }
+  </style>
+	<script type="text/javascript">
 	//<![CDATA[
 	$(function() {
@@ -115,10 +120,4 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('about:config').'</span>' => ''
-	));
 if (!empty($_GET['upd'])) {
 	dcPage::message(__('Configuration successfully updated'));
@@ -129,10 +128,10 @@
 }
 ?>
-
-<div id="local" class="multi-part" title="<?php echo sprintf(__('Settings for %s'),html::escapeHTML($core->blog->name)); ?>">
-
-
-<?php
-$table_header = '<table class="settings" id="%s"><caption class="as_h3">%s</caption>'.
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title">about:config</span></h2>
+
+<div id="local" class="multi-part" title="<?php echo __('blog settings'); ?>">
+
+<?php 
+$table_header = '<table class="settings" id="%s"><caption>%s</caption>'.
 '<thead>'.
 '<tr>'."\n".
Index: plugins/akismet/class.dc.filter.akismet.php
===================================================================
--- plugins/akismet/class.dc.filter.akismet.php	(revision 1454)
+++ plugins/akismet/class.dc.filter.akismet.php	(revision 1179)
@@ -137,6 +137,6 @@
 		$res =
 		'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
-		'<p><label for="ak_key" class="classic">'.__('Akismet API key:').'</label> '.
-		form::field('ak_key',12,128,$ak_key);
+		'<p><label for="ak_key" class="classic">'.__('Akismet API key:').' '.
+		form::field('ak_key',12,128,$ak_key).'</label>';
 		
 		if ($ak_verified !== null) {
Index: plugins/antispam/_admin.php
===================================================================
--- plugins/antispam/_admin.php	(revision 1499)
+++ plugins/antispam/_admin.php	(revision 1207)
@@ -59,5 +59,5 @@
 		if ($ttl != null && $ttl >=0) {
 			echo '<p>'.sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $ttl).' '.
-			sprintf(__('You can modify this duration in the %s'),'<a href="blog_pref.php#antispam_moderation_ttl"> '.__('Blog settings').'</a>').
+			sprintf(__('You can modify this duration in the %s'),'<a href="blog_pref.php#antispam_moderation_ttl"> '.__('Blog preferences').'</a>').
 			'</p>';
 		}
@@ -68,10 +68,10 @@
 		$ttl = $settings->antispam->antispam_moderation_ttl;
 		echo
-		'<div class="fieldset"><h4>Antispam</h4>'.
+		'<fieldset><legend>Antispam</legend>'.
 		'<p><label for="antispam_moderation_ttl" class="classic">'.__('Delete junk comments older than').' '.
 		form::field('antispam_moderation_ttl', 3, 3, $ttl).
 		' '.__('days').
 		'</label></p>'.
-		'</div>';
+		'</fieldset>';
 	}
 	
Index: plugins/antispam/antispam.js
===================================================================
--- plugins/antispam/antispam.js	(revision 1423)
+++ plugins/antispam/antispam.js	(revision 1130)
@@ -6,5 +6,5 @@
 		$(this).css({'cursor':'auto'});
 	});
-	$('#filters-list-form').submit(function() {
+	$('#filters-form').submit(function() {
 		var order=[];
 		$("#filters-list tr td input.position").each(function() {
Index: plugins/antispam/filters/class.dc.filter.ip.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.ip.php	(revision 1454)
+++ plugins/antispam/filters/class.dc.filter.ip.php	(revision 1179)
@@ -124,13 +124,12 @@
 
 		'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
-
-		'<p>'.
 		form::hidden(array('ip_type'),$type).
-		'<label class="classic" for="addip_'.$type.'">'.__('Add an IP address: ').'</label> '.
-		form::field(array('addip', 'addip_'.$type),18,255);
-			if ($core->auth->isSuperAdmin()) {
-				$res .= '<label class="classic" for="globalip_'.$type.'">'.form::checkbox(array('globalip', 'globalip_'.$type),1).' '.
-				__('Global IP (used for all blogs)').'</label> ';
-			}
+		'<label class="classic" for="addip_'.$type.'">'.__('Add an IP address: ').' '.
+		form::field(array('addip', 'addip_'.$type),18,255).
+		'</label>';
+		if ($core->auth->isSuperAdmin()) {
+			$res .= '<label class="classic" for="globalip_'.$type.'">'.form::checkbox(array('globalip', 'globalip_'.$type),1).' '.
+			__('Global IP (used for all blogs)').'</label> ';
+		}
 
 		$res .=
Index: plugins/antispam/filters/class.dc.filter.iplookup.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.iplookup.php	(revision 1499)
+++ plugins/antispam/filters/class.dc.filter.iplookup.php	(revision 1361)
@@ -76,11 +76,12 @@
 
 		$res .=
-		'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
-		'<h3>' . __('IP Lookup servers') . '</h3>'.
-		'<p><label for="bls">'.__('Add here a coma separated list of servers.').'</label>'.
+		'<form action="'.html::escapeURL($url).'" method="post">'.
+		'<fieldset><legend>' . __('IP Lookup servers') . '</legend>'.
+		'<p><label for="bls">'.__('Add here a coma separated list of servers.').
 		form::textarea('bls',40,3,html::escapeHTML($bls),'maximal').
 		'</p>'.
-		'<p><input type="submit" value="'.__('Save').'" /></p>'.
+		'<p><input type="submit" value="'.__('Save').'" /></label></p>'.
 		$this->core->formNonce().'</p>'.
+		'</fieldset>'.
 		'</form>';
 
Index: plugins/antispam/filters/class.dc.filter.words.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.words.php	(revision 1454)
+++ plugins/antispam/filters/class.dc.filter.words.php	(revision 1179)
@@ -120,9 +120,9 @@
 		$res .=
 		'<form action="'.html::escapeURL($url).'" method="post" class="fieldset">'.
-		'<p><label class="classic" for="swa">'.__('Add a word ').'</label> '.form::field('swa',20,128);
+		'<p><label class="classic" for="swa">'.__('Add a word ').' '.form::field('swa',20,128).'</label>';
 
 		if ($core->auth->isSuperAdmin()) {
-			$res .= '<label class="classic" for="globalsw">'.form::checkbox('globalsw',1).'</label> '.
-			__('Global word (used for all blogs)');
+			$res .= '<label class="classic" for="globalsw">'.form::checkbox('globalsw',1).' '.
+			__('Global word (used for all blogs)').'</label> ';
 		}
 
Index: plugins/antispam/inc/lib.dc.antispam.php
===================================================================
--- plugins/antispam/inc/lib.dc.antispam.php	(revision 1179)
+++ plugins/antispam/inc/lib.dc.antispam.php	(revision 1478)
@@ -75,5 +75,5 @@
 		if (($count = self::countSpam($core)) > 0) {
 			$str = ($count > 1) ? __('(including %d spam comments)') : __('(including %d spam comment)');
-			$icons['comments'][0] .= '</a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count).'</span>';
+			$icons['comments'][0] .= '</span></a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count);
 		}
 	}
@@ -83,5 +83,5 @@
 		if (($count = self::countSpam($core)) > 0) {
 			$str = ($count > 1) ? __('(including %d spam comments)') : __('(including %d spam comment)');
-			return '</a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count).'</span>';
+			return '</span></a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count);
 		} else {
 			return '';
Index: plugins/antispam/index.php
===================================================================
--- plugins/antispam/index.php	(revision 1474)
+++ plugins/antispam/index.php	(revision 1274)
@@ -123,10 +123,6 @@
 if ($filter_gui !== false)
 {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			$page_name => $p_url,
-			'<span class="page-title">'.sprintf(__('%s filter configuration'),$filter->name).'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_name.'</a>'.
+		' &rsaquo; <span class="page-title">'.sprintf(__('%s configuration'),$filter->name).'</span></h2>';
 
 	echo $filter_gui;
@@ -134,9 +130,5 @@
 else
 {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.$page_name.'</span>' => ''
-		));
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_name.'</span></h2>';
 
 	# Information
@@ -170,5 +162,5 @@
 	if ($moderationTTL != null && $moderationTTL >=0) {
 		echo '<p>'.sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $moderationTTL).' '.
-		sprintf(__('You can modify this duration in the %s'),'<a href="blog_pref.php#antispam_moderation_ttl"> '.__('Blog settings').'</a>').
+		sprintf(__('You can modify this duration in the %s'),'<a href="blog_pref.php#antispam_moderation_ttl"> '.__('Blog preferences').'</a>').
 			'</p>';
 	}
@@ -178,5 +170,5 @@
 	# Filters
 	echo
-	'<form action="'.$p_url.'" method="post" id="filters-list-form">';
+	'<form action="'.$p_url.'" method="post" class="fieldset" id="filters-form">';
 
 	if (!empty($_GET['upd'])) {
@@ -186,5 +178,5 @@
 	echo
 	'<table class="dragable">'.
-	'<caption class="as_h3">'.__('Available spam filters').'</caption>'.
+	'<caption>'.__('Available spam filters').'</caption>'.
 	'<thead><tr>'.
 	'<th>'.__('Order').'</th>'.
Index: plugins/antispam/style.css
===================================================================
--- plugins/antispam/style.css	(revision 1330)
+++ plugins/antispam/style.css	(revision 0)
@@ -8,4 +8,5 @@
 	margin: 0.5em 0;
 	padding-left: 16px;
+	/*background: url(index.php?pf=antispam/feed.png) no-repeat center left;*/
 	background-color: transparent;
 	background-position: center left;
Index: plugins/attachments/_admin.php
===================================================================
--- plugins/attachments/_admin.php	(revision 1501)
+++ plugins/attachments/_admin.php	(revision 1467)
@@ -12,16 +12,10 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$core->addBehavior ('adminPostFormItems',array('attachmentAdmin','adminPostFormItems'));
+$core->addBehavior ('adminPostFormSidebar',array('attachmentAdmin','adminPostFormSidebar'));
 $core->addBehavior ('adminPostAfterForm',array('attachmentAdmin','adminPostAfterForm'));
-$core->addBehavior('adminPostHeaders',array('attachmentAdmin','postHeaders'));
 
 class attachmentAdmin
 {
-	public static function postHeaders()
-	{
-		return 
-		'<script type="text/javascript" src="index.php?pf=attachments/js/post.js"></script>';
-	}
-	public static function adminPostFormItems($main,$sidebar,$post) 
+	public static function adminPostFormSidebar($post) 
 	{
 		if ($post !== null)
@@ -29,7 +23,6 @@
 			$core =& $GLOBALS['core'];
 			$post_media = $core->media->getPostMedia($post->post_id);
-			$nb_media = count($post_media);
-			$title = !$nb_media ? __('Attachments') : sprintf(__('Attachments (%d)'),$nb_media);
-			$item = '<h5 class="clear s-attachments">'.$title.'</h5>';
+			echo
+			'<h3 class="clear">'.__('Attachments').'</h3>';
 			foreach ($post_media as $f)
 			{
@@ -38,6 +31,6 @@
 					$ftitle = substr($ftitle,0,16).'...';
 				}
-				$item .=
-				'<div class="media-item s-attachments">'.
+				echo
+				'<div class="media-item">'.
 				'<a class="media-icon" href="media_item.php?id='.$f->media_id.'">'.
 				'<img src="'.$f->media_icon.'" alt="" title="'.$f->basename.'" /></a>'.
@@ -60,8 +53,8 @@
 			
 			if (empty($post_media)) {
-				$item .= '<p class="form-note s-attachments">'.__('No attachment.').'</p>';
-			} 
-			$item .= '<p class="s-attachments"><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
-			$sidebar['metas-box']['items']['attachments']= $item;
+				echo '<p>'.__('No attachment.').'</p>';
+			} else {
+			}
+			echo '<p><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
 		}
 	}
Index: plugins/attachments/_public.php
===================================================================
--- plugins/attachments/_public.php	(revision 1280)
+++ plugins/attachments/_public.php	(revision 1266)
@@ -40,12 +40,16 @@
 		"<?php\n".
 		'if ($_ctx->posts !== null && $core->media) {'."\n".
-			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
+		'$_ctx->attachments = $core->media->getPostMedia($_ctx->posts->post_id, null, true);'."\n".
 		"?>\n".
 		
-		'<?php foreach ($_ctx->attachments as $attach_i => $attach_f) : '.
-		'$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'.
-		'$_ctx->file_url = $attach_f->file_url; ?>'.
+		'<?php $attach_i = 0; ?>'. // LEGACY
+		'<?php while ($_ctx->attachments->fetch()) : ?>'.
+		
+		'<?php $GLOBALS[\'attach_i\'] = $attach_i; $attach_f = $_ctx->attachments; $GLOBALS[\'attach_f\'] = $attach_f;'. // LEGACY
+		'$_ctx->file_url = $attach_f->file_url; ?>'. // LEGACY
 		$content.
-		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
+		'<?php $attach_i++; ?>'. // LEGACY
+		'<?php endwhile; '.
+		'$_ctx->attachments = null; ?>'.
 		
 		"<?php } ?>\n";
@@ -60,5 +64,5 @@
 	{
 		return
-		"<?php if (\$attach_i == 0) : ?>".
+		"<?php if (\$_ctx->attachments->isStart()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -71,5 +75,5 @@
 	{
 		return
-		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
+		"<?php if (\$_ctx->attachments->isEnd()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -93,15 +97,15 @@
 		if (isset($attr['is_image'])) {
 			$sign = (boolean) $attr['is_image'] ? '' : '!';
-			$if[] = $sign.'$attach_f->media_image';
+			$if[] = $sign.'$_ctx->attachments->media_image';
 		}
 		
 		if (isset($attr['has_thumb'])) {
 			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
-			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
+			$if[] = $sign.'isset($_ctx->attachments->media_thumb[\'sq\'])';
 		}
 		
 		if (isset($attr['is_mp3'])) {
 			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
-			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
+			$if[] = '$_ctx->attachments->type '.$sign.' "audio/mpeg3"';
 		}
 		
@@ -109,7 +113,7 @@
 			$sign = (boolean) $attr['is_flv'] ? '' : '!';
 			$if[] = $sign.
-				'($attach_f->type == "video/x-flv" || '.
-				'$attach_f->type == "video/mp4" || '.
-				'$attach_f->type == "video/x-m4v")';
+				'($_ctx->attachments->type == "video/x-flv" || '.
+				'$_ctx->attachments->type == "video/mp4" || '.
+				'$_ctx->attachments->type == "video/x-m4v")';
 		}
 		
@@ -127,5 +131,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->type').'; ?>';
 	}
 	
@@ -136,5 +140,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_type').'; ?>';
 	}
 	
@@ -145,5 +149,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->basename').'; ?>';
 	}
 	
@@ -158,7 +162,7 @@
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
 		if (!empty($attr['full'])) {
-			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
-		}
-		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
+			return '<?php echo '.sprintf($f,'$_ctx->attachments->size').'; ?>';
+		}
+		return '<?php echo '.sprintf($f,'files::size($_ctx->attachments->size)').'; ?>';
 	}
 	
@@ -169,5 +173,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_title').'; ?>';
 	}
 	
@@ -180,6 +184,6 @@
 		return
 		'<?php '.
-		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
-			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
+		'if (isset($_ctx->attachments->media_thumb[\'sq\'])) {'.
+			'echo '.sprintf($f,'$_ctx->attachments->media_thumb[\'sq\']').';'.
 		'}'.
 		'?>';
@@ -192,5 +196,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->file_url').'; ?>';
 	}
 	
Index: plugins/attachments/js/post.js
===================================================================
--- plugins/attachments/js/post.js	(revision 1393)
+++ 	(revision )
@@ -1,5 +1,0 @@
-$(function() {
-	$('h5.s-attachments').toggleWithLegend($('.s-attachments').not('h5'),{
-		cookie: 'dcx_attachments'
-	});
-});
Index: plugins/blogroll/_admin.php
===================================================================
--- plugins/blogroll/_admin.php	(revision 1502)
+++ plugins/blogroll/_admin.php	(revision 1179)
@@ -14,6 +14,4 @@
 $core->addBehavior('adminDashboardIcons','blogroll_dashboard');
 $core->addBehavior('adminDashboardFavs','blogroll_dashboard_favs');
-$core->addBehavior('adminUsersActionsHeaders','blogroll_users_actions_headers');
-
 function blogroll_dashboard($core,$icons)
 {
@@ -26,10 +24,6 @@
 		'usage,contentadmin',null,null));
 }
-function blogroll_users_actions_headers()
-{
-	return dcPage::jsLoad('index.php?pf=blogroll/_users_actions.js');
-}
 
-$_menu['Blog']->addItem(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon-small.png',
+$_menu['Plugins']->addItem(__('Blogroll'),'plugin.php?p=blogroll','index.php?pf=blogroll/icon-small.png',
                 preg_match('/plugin.php\?p=blogroll(&.*)?$/',$_SERVER['REQUEST_URI']),
                 $core->auth->check('usage,contentadmin',$core->blog->id));
Index: plugins/blogroll/_users_actions.js
===================================================================
--- plugins/blogroll/_users_actions.js	(revision 1502)
+++ 	(revision )
@@ -1,47 +1,0 @@
-jQuery.fn.updateBlogrollPermissionsForm = function() {
-	return this.each(function() {
-		
-		var perms = {};
-		var re = /^perm\[(.+?)\]\[(.+?)\]$/;
-		var e,prop;
-		
-		// Building a nice object of form elements
-		for (var i=0; i<this.elements.length; i++) {
-			e = this.elements[i];
-			
-			if (e.name == undefined) {
-				continue;
-			}
-			var prop;
-			prop = e.name.match(re);
-			if (!prop) {
-				continue;
-			}
-			if (perms[prop[1]] == undefined) {
-				perms[prop[1]] = {};
-			}
-			perms[prop[1]][prop[2]] = e;
-			
-			// select related permissions for admin
-			if (prop[2] == 'admin') {
-				if (e.checked) {
-					admin(e,perms,re);
-				}
-				$(e).click(function(){
-					admin(this,perms,re);
-				});
-			}
-		}
-		
-		function admin(E,perms,re) {
-					P = E.name.match(re);
-					
-					perms[P[1]]['blogroll'].checked = E.checked;
-					perms[P[1]]['blogroll'].disabled = E.checked;
-		}
-	});
-};
-
-$(function() {
-	$('#permissions-form').updateBlogrollPermissionsForm();
-});
Index: plugins/blogroll/edit.php
===================================================================
--- plugins/blogroll/edit.php	(revision 1466)
+++ plugins/blogroll/edit.php	(revision 1179)
@@ -95,13 +95,5 @@
 
 <body>
-<?php
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => $p_url
-		));
-?>
-
-<?php echo '<p><a class="back" href="'.$p_url.'">'.__('Return to blogroll').'</a></p>'; ?>
+<?php echo '<p><a href="'.$p_url.'">'.__('Return to blogroll').'</a></p>'; ?>
 
 <?php
@@ -114,8 +106,8 @@
 	echo
 	'<form action="'.$p_url.'" method="post">'.
-	'<h3>'.__('Edit category').'</h3>'.
-	
-	'<p><label for="link_desc" class="required classic"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label> '.
-	form::field('link_desc',30,255,html::escapeHTML($link_desc)).
+	'<fieldset><legend>'.__('Edit category').'</legend>'.
+	
+	'<p><label for="link_desc" class="required classic"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
+	form::field('link_desc',30,255,html::escapeHTML($link_desc)).'</label> '.
 	
 	form::hidden('edit',1).
@@ -123,4 +115,5 @@
 	$core->formNonce().
 	'<input type="submit" name="edit_cat" value="'.__('Save').'"/></p>'.
+	'</fieldset>'.
 	'</form>';
 }
@@ -132,29 +125,32 @@
 	
 	echo
-	'<form action="plugin.php" method="post" class="two-cols fieldset">'.
-
-	'<div class="col30 first-col">'.
-	'<h3>'.__('Edit link').'</h3>'.
-	
-	'<p><label for="link_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label> '.
-	form::field('link_title',30,255,html::escapeHTML($link_title)).'</p>'.
-	
-	'<p><label for="link_href" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('URL:').'</label> '.
-	form::field('link_href',30,255,html::escapeHTML($link_href)).'</p>'.
-	
-	'<p><label for="link_desc">'.__('Description:').'</label> '.
-	form::field('link_desc',30,255,html::escapeHTML($link_desc)).'</p>'.
-	
-	'<p><label for="link_lang">'.__('Language:').'</label> '.
-	form::field('link_lang',5,5,html::escapeHTML($link_lang)).'</p>'.
-	'</div>'.
+	'<form action="plugin.php" method="post">'.
+	'<fieldset class="two-cols"><legend>'.__('Edit link').'</legend>'.
+	
+	'<p class="col"><label for="link_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
+	form::field('link_title',30,255,html::escapeHTML($link_title)).'</label></p>'.
+	
+	'<p class="col"><label for="link_href" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('URL:').' '.
+	form::field('link_href',30,255,html::escapeHTML($link_href)).'</label></p>'.
+	
+	'<p class="col"><label for="link_desc">'.__('Description:').' '.
+	form::field('link_desc',30,255,html::escapeHTML($link_desc)).'</label></p>'.
+	
+	'<p class="col"><label for="link_lang">'.__('Language:').' '.
+	form::field('link_lang',5,5,html::escapeHTML($link_lang)).'</label></p>'.
+	
+	'<p>'.form::hidden('p','blogroll').
+	form::hidden('edit',1).
+	form::hidden('id',$id).
+	$core->formNonce().
+	'<input type="submit" name="edit_link" value="'.__('Save').'"/></p>'.
+	'</fieldset>'.
 	
 	
 	# XFN nightmare
-	'<div class="col70 last-col">'.
-	'<h3>'.__('XFN informations').'</h3>'.
+	'<fieldset><legend>'.__('XFN').'</legend>'.
 	'<table class="noborder">'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Me').'</th>'.
 	'<td><p>'.'<label class="classic">'.
@@ -163,5 +159,5 @@
 	'</tr>'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Friendship').'</th>'.
 	'<td><p>'.
@@ -176,5 +172,5 @@
 	'</tr>'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Physical').'</th>'.
 	'<td><p>'.
@@ -184,5 +180,5 @@
 	'</tr>'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Professional').'</th>'.
 	'<td><p>'.
@@ -194,5 +190,5 @@
 	'</tr>'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Geographical').'</th>'.
 	'<td><p>'.
@@ -205,5 +201,5 @@
 	'</tr>'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Family').'</th>'.
 	'<td><p>'.
@@ -222,5 +218,5 @@
 	'</tr>'.
 	
-	'<tr class="line">'.
+	'<tr>'.
 	'<th>'.__('_xfn_Romantic').'</th>'.
 	'<td><p>'.
@@ -237,10 +233,5 @@
 	'</table>'.
 	
-	'</div>'.
-	'<p class="clear">'.form::hidden('p','blogroll').
-	form::hidden('edit',1).
-	form::hidden('id',$id).
-	$core->formNonce().
-	'<input type="submit" name="edit_link" value="'.__('Save').'"/></p>'.
+	'</fieldset>'.
 	
 	'</form>';
Index: plugins/blogroll/index.php
===================================================================
--- plugins/blogroll/index.php	(revision 1454)
+++ plugins/blogroll/index.php	(revision 1504)
@@ -177,11 +177,5 @@
 
 <body>
-<?php
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => ''
-		));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title"><?php echo __('Blogroll'); ?></span></h2>
 
 <?php
@@ -208,4 +202,7 @@
 
 <div class="multi-part" title="<?php echo __('Blogroll'); ?>">
+
+<?php if (!$rs->isEmpty()) { ?>
+
 <form action="plugin.php" method="post" id="links-form">
 <table class="maximal dragable">
@@ -251,24 +248,27 @@
 </tbody>
 </table>
-<?php
-	if (!$rs->isEmpty()) {
-		echo
-		'<div class="two-cols">'.
-		'<p class="col">'.form::hidden('links_order','').
-		form::hidden(array('p'),'blogroll').
-		$core->formNonce().
-		'<input type="submit" name="saveorder" value="'.__('Save order').'" /></p>'.
-		
-		'<p class="col right"><input type="submit" class="delete" name="removeaction"'.
-		' value="'.__('Delete selected links').'" '.
-		'onclick="return window.confirm(\''.html::escapeJS(
-			__('Are you sure you want to delete selected links?')).'\');" /></p>'.
-		'</div>';
-	} else {
-		echo
-		'<div><p>'.__('The link list is empty.').'</p></div>';
-	}
-?>
+
+<div class="two-cols">
+<p class="col">
+<?php
+	echo 
+	form::hidden('links_order','').
+	form::hidden(array('p'),'blogroll').
+	$core->formNonce();
+?>
+<input type="submit" name="saveorder" value="<?php echo __('Save order'); ?>" /></p>
+<p class="col right"><input type="submit" class="delete" name="removeaction"
+	 value="<?php echo __('Delete selected links'); ?>" 
+	 onclick="return window.confirm('
+	 <?php echo html::escapeJS(__('Are you sure you want to delete selected links?')); ?>');" /></p>
+</div>
 </form>
+
+<?php
+} else {
+	echo '<div><p>'.__('The link list is empty.').'</p></div>';
+}
+?>
+
 </div>
 
@@ -277,23 +277,24 @@
 '<div class="multi-part clear" id="add-link" title="'.__('Add a link').'">'.
 '<form action="plugin.php" method="post" id="add-link-form">'.
-'<h3>'.__('Add a new link').'</h3>'.
-'<p class="col"><label for="link_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label> '.
+'<fieldset><legend>'.__('Add a new link').'</legend>'.
+'<p class="col"><label for="link_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
 form::field('link_title',30,255,$link_title).
-'</p>'.
-
-'<p class="col"><label for="link_href" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('URL:').'</label> '.
+'</label></p>'.
+
+'<p class="col"><label for="link_href" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('URL:').' '.
 form::field('link_href',30,255,$link_href).
-'</p>'.
-
-'<p class="col"><label for="link_desc">'.__('Description:').'</label> '.
+'</label></p>'.
+
+'<p class="col"><label for="link_desc">'.__('Description:').' '.
 form::field('link_desc',30,255,$link_desc).
-'</p>'.
-
-'<p class="col"><label for="link_lang">'.__('Language:').'</label> '.
+'</label></p>'.
+
+'<p class="col"><label for="link_lang">'.__('Language:').' '.
 form::field('link_lang',5,5,$link_lang).
-'</p>'.
+'</label></p>'.
 '<p>'.form::hidden(array('p'),'blogroll').
 $core->formNonce().
 '<input type="submit" name="add_link" value="'.__('Save').'" /></p>'.
+'</fieldset>'.
 '</form>'.
 '</div>';
@@ -302,10 +303,11 @@
 '<div class="multi-part" id="add-cat" title="'.__('Add a category').'">'.
 '<form action="plugin.php" method="post" id="add-category-form">'.
-'<h3>'.__('Add a new category').'</h3>'.
-'<p><label for="cat_title" class=" classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').'</label> '.
-form::field('cat_title',30,255,$cat_title).' '.
+'<fieldset><legend>'.__('Add a new category').'</legend>'.
+'<p><label for="cat_title" class=" classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
+form::field('cat_title',30,255,$cat_title).'</label> '.
 form::hidden(array('p'),'blogroll').
 $core->formNonce().
 '<input type="submit" name="add_cat" value="'.__('Save').'" /></p>'.
+'</fieldset>'.
 '</form>'.
 '</div>';
@@ -316,10 +318,11 @@
 	echo
 	'<form action="plugin.php" method="post" id="import-links-form" enctype="multipart/form-data">'.
-	'<h3>'.__('Import links').'</h3>'.
-	'<p><label for="links_file" class=" classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('OPML or XBEL File:').'</label> '.
-	'<input type="file" id="links_file" name="links_file" /></p>'.
+	'<fieldset><legend>'.__('Import links').'</legend>'.
+	'<p><label for="links_file" class=" classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('OPML or XBEL File:').' '.
+	'<input type="file" id="links_file" name="links_file" /></label></p>'.
 	'<p>'.form::hidden(array('p'),'blogroll').
 	$core->formNonce().
 	'<input type="submit" name="import_links" value="'.__('Import').'" /></p>'.
+	'</fieldset>'.
 	'</form>';
 }
@@ -327,5 +330,5 @@
 	echo
 	'<form action="plugin.php" method="post" id="import-links-form">'.
-	'<h3>'.__('Import links').'</h3>';
+	'<fieldset><legend>'.__('Import links').'</legend>';
 	if (empty($imported)) {
 		echo '<p>'.__('Nothing to import').'</p>';
@@ -368,4 +371,5 @@
 	}
 	echo
+	'</fieldset>'.
 	'</form>';
 }
Index: plugins/blowupConfig/_public.php
===================================================================
--- plugins/blowupConfig/_public.php	(revision 1436)
+++ plugins/blowupConfig/_public.php	(revision 1179)
@@ -23,7 +23,172 @@
 	public static function publicHeadContent($core)
 	{
-		$url = blowupConfig::publicCssUrlHelper();
-		if ($url) {
-			echo '<link rel="stylesheet" href="'.$url.'" type="text/css" />';
+		echo '<style type="text/css">'."\n".self::blowUpStyleHelper()."\n</style>\n";
+	}
+
+	public static function blowUpStyleHelper()
+	{
+		$s = $GLOBALS['core']->blog->settings->themes->blowup_style;
+
+		if ($s === null) {
+			return;
+		}
+
+		$s = @unserialize($s);
+		if (!is_array($s)) {
+			return;
+		}
+
+		$css = array();
+
+		/* Sidebar position
+		---------------------------------------------- */
+		if ($s['sidebar_position'] == 'left') {
+			$css['#wrapper']['background-position'] = '-300px 0';
+			$css['#main']['float'] = 'right';
+			$css['#sidebar']['float'] = 'left';
+		}
+
+		/* Properties
+		---------------------------------------------- */
+		self::prop($css,'body','background-color',$s['body_bg_c']);
+
+		self::prop($css,'body','color',$s['body_txt_c']);
+		self::prop($css,'.post-tags li a:link, .post-tags li a:visited, .post-info-co a:link, .post-info-co a:visited','color',$s['body_txt_c']);
+		self::prop($css,'#page','font-size',$s['body_txt_s']);
+		self::prop($css,'body','font-family',blowupConfig::fontDef($s['body_txt_f']));
+
+		self::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']);
+
+		if (!$s['blog_title_hide'])
+		{
+			self::prop($css,'#top h1 a','color',$s['blog_title_c']);
+			self::prop($css,'#top h1','font-size',$s['blog_title_s']);
+			self::prop($css,'#top h1','font-family',blowupConfig::fontDef($s['blog_title_f']));
+
+			if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') {
+				$css['#top h1'][$s['blog_title_a']] = '0px';
+				$css['#top h1']['width'] = 'auto';
+			}
+
+			if ($s['blog_title_p'])
+			{
+				$_p = explode(':',$s['blog_title_p']);
+				$css['#top h1']['top'] = $_p[1].'px';
+				if ($s['blog_title_a'] != 'center') {
+					$_a = $s['blog_title_a'] == 'right' ? 'right' : 'left';
+					$css['#top h1'][$_a] = $_p[0].'px';
+				}
+			}
+		}
+		else
+		{
+			self::prop($css,'#top h1 span','text-indent','-5000px');
+			self::prop($css,'#top h1','top','0px');
+			$css['#top h1 a'] = array(
+				'display' => 'block',
+				'height' => $s['top_height'] ? ($s['top_height']-10).'px' : '120px',
+				'width' => '800px'
+			);
+		}
+		self::prop($css,'#top','height',$s['top_height']);
+
+		self::prop($css,'.day-date','color',$s['date_title_c']);
+		self::prop($css,'.day-date','font-family',blowupConfig::fontDef($s['date_title_f']));
+		self::prop($css,'.day-date','font-size',$s['date_title_s']);
+
+		self::prop($css,'a','color',$s['body_link_c']);
+		self::prop($css,'a:visited','color',$s['body_link_v_c']);
+		self::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']);
+
+		self::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']);
+		self::prop($css,'#comment-form input.preview','color',$s['body_link_c']);
+		self::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']);
+		self::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']);
+		self::prop($css,'#comment-form input.submit','color',$s['body_link_c']);
+		self::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']);
+		self::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']);
+
+		self::prop($css,'#sidebar','font-family',blowupConfig::fontDef($s['sidebar_text_f']));
+		self::prop($css,'#sidebar','font-size',$s['sidebar_text_s']);
+		self::prop($css,'#sidebar','color',$s['sidebar_text_c']);
+
+		self::prop($css,'#sidebar h2','font-family',blowupConfig::fontDef($s['sidebar_title_f']));
+		self::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']);
+		self::prop($css,'#sidebar h2','color',$s['sidebar_title_c']);
+
+		self::prop($css,'#sidebar h3','font-family',blowupConfig::fontDef($s['sidebar_title2_f']));
+		self::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']);
+		self::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']);
+
+		self::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']);
+		self::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']);
+		self::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']);
+
+		self::prop($css,'#sidebar li a','color',$s['sidebar_link_c']);
+		self::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']);
+		self::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']);
+		self::prop($css,'#search input','color',$s['sidebar_link_c']);
+		self::prop($css,'#search .submit','color',$s['sidebar_link_c']);
+		self::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']);
+		self::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']);
+
+		self::prop($css,'.post-title','color',$s['post_title_c']);
+		self::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']);
+		self::prop($css,'.post-title','font-family',blowupConfig::fontDef($s['post_title_f']));
+		self::prop($css,'.post-title','font-size',$s['post_title_s']);
+
+		self::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']);
+		self::prop($css,'#comments dd','color',$s['post_comment_c']);
+		self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']);
+		self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']);
+
+		self::prop($css,'#prelude, #prelude a','color',$s['prelude_c']);
+
+		self::prop($css,'#footer p','background-color',$s['footer_bg_c']);
+		self::prop($css,'#footer p','color',$s['footer_c']);
+		self::prop($css,'#footer p','font-size',$s['footer_s']);
+		self::prop($css,'#footer p','font-family',blowupConfig::fontDef($s['footer_f']));
+		self::prop($css,'#footer p a','color',$s['footer_l_c']);
+
+		/* Images
+		------------------------------------------------------ */
+		self::backgroundImg($css,'body',$s['body_bg_c'],'body-bg.png');
+		self::backgroundImg($css,'body',$s['body_bg_g'] != 'light','body-bg.png');
+		self::backgroundImg($css,'body',$s['prelude_c'],'body-bg.png');
+		self::backgroundImg($css,'#top',$s['body_bg_c'],'page-t.png');
+		self::backgroundImg($css,'#top',$s['body_bg_g'] != 'light','page-t.png');
+		self::backgroundImg($css,'#top',$s['uploaded'] || $s['top_image'],'page-t.png');
+		self::backgroundImg($css,'#footer',$s['body_bg_c'],'page-b.png');
+		self::backgroundImg($css,'#comments dt',$s['post_comment_bg_c'],'comment-t.png');
+		self::backgroundImg($css,'#comments dd',$s['post_comment_bg_c'],'comment-b.png');
+		self::backgroundImg($css,'#comments dt.me',$s['post_commentmy_bg_c'],'commentmy-t.png');
+		self::backgroundImg($css,'#comments dd.me',$s['post_commentmy_bg_c'],'commentmy-b.png');
+
+		$res = '';
+		foreach ($css as $selector => $values) {
+			$res .= $selector." {\n";
+			foreach ($values as $k => $v) {
+				$res .= $k.':'.$v.";\n";
+			}
+			$res .= "}\n";
+		}
+
+		$res .= $s['extra_css'];
+
+		return $res;
+	}
+
+	protected static function prop(&$css,$selector,$prop,$value)
+	{
+		if ($value) {
+			$css[$selector][$prop] = $value;
+		}
+	}
+
+	protected static function backgroundImg(&$css,$selector,$value,$image)
+	{
+		$file = blowupConfig::imagesPath().'/'.$image;
+		if ($value && file_exists($file)){
+			$css[$selector]['background-image'] = 'url('.blowupConfig::imagesURL().'/'.$image.')';
 		}
 	}
Index: plugins/blowupConfig/config.js
===================================================================
--- plugins/blowupConfig/config.js	(revision 1499)
+++ plugins/blowupConfig/config.js	(revision 89)
@@ -49,5 +49,5 @@
 	
 	$('#theme_config').prepend(styles_combo);
-	$(styles_combo).wrap('<div class="fieldset"></div>').before('<h3>' + dotclear.msg.predefined_styles + '</h3>').wrap('<p></p>');
+	$(styles_combo).wrap('<fieldset></fieldset>').before('<legend>' + dotclear.msg.predefined_styles + '</legend>').wrap('<p></p>');
 	
 	$(styles_combo).change(function() {
@@ -62,5 +62,5 @@
 	
 	// Code import
-	var e = $('#bu_export_content');
+	var e = $('#bu_export ~ fieldset:first');
 	e.toggle();
 	
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 1499)
+++ plugins/blowupConfig/index.php	(revision 1179)
@@ -15,5 +15,4 @@
 
 $can_write_images = blowupConfig::canWriteImages();
-$can_write_css = blowupConfig::canWriteCss();
 
 if ($core->error->flag()) {
@@ -189,9 +188,4 @@
 			$blowup_user['prelude_c'] = blowupConfig::adjustColor($_POST['prelude_c']);
 			blowupConfig::createImages($blowup_user,$uploaded);
-		}
-
-		if ($can_write_css)
-		{
-			blowupConfig::createCss($blowup_user);
 		}
 
@@ -227,13 +221,8 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Blowup configuration').'</span>' => ''
-	));
-
-echo
-'<p><a class="back" href="blog_theme.php">'.__('Back to Blog themes').'</a></p>';
+echo
+'<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Blowup configuration').'</span></h2>'.
+'<p><a class="back" href="blog_theme.php">'.__('back').'</a></p>';
 
 
@@ -249,45 +238,46 @@
 echo '<form id="theme_config" action="'.$p_url.'" method="post" enctype="multipart/form-data">';
 
-echo '<div class="fieldset"><h3>'.__('Customization').'</h3>'.
-'<h4>'.__('General').'</h4>';
+echo '<fieldset><legend>'.__('General').'</legend>';
 
 if ($can_write_images) {
 	echo
-	'<p class="field"><label for="body_bg_c">'.__('Background color:').'</label> '.
-	form::field('body_bg_c',7,7,$blowup_user['body_bg_c'],'colorpicker').'</p>'.
-
-	'<p class="field"><label for="body_bg_g">'.__('Background color fill:').'</label> '.
-	form::combo('body_bg_g',$gradient_types,$blowup_user['body_bg_g']).'</p>';
-}
-
-echo
-'<p class="field"><label for="body_txt_f">'.__('Main text font:').'</label> '.
-form::combo('body_txt_f',blowupConfig::fontsList(),$blowup_user['body_txt_f']).'</p>'.
-
-'<p class="field"><label for="body_txt_s">'.__('Main text font size:').'</label> '.
-form::field('body_txt_s',7,7,$blowup_user['body_txt_s']).'</p>'.
-
-'<p class="field"><label for="body_txt_c">'.__('Main text color:').'</label> '.
-form::field('body_txt_c',7,7,$blowup_user['body_txt_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="body_line_height">'.__('Text line height:').'</label> '.
-form::field('body_line_height',7,7,$blowup_user['body_line_height']).'</p>'.
-
-'<h4 class="border-top">'.__('Links').'</h4>'.
-'<p class="field"><label for="body_link_c">'.__('Links color:').'</label> '.
-form::field('body_link_c',7,7,$blowup_user['body_link_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="body_link_v_c">'.__('Visited links color:').'</label> '.
-form::field('body_link_v_c',7,7,$blowup_user['body_link_v_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="body_link_f_c">'.__('Focus links color:').'</label> '.
-form::field('body_link_f_c',7,7,$blowup_user['body_link_f_c'],'colorpicker').'</p>'.
-
-'<h4 class="border-top">'.__('Page top').'</h4>';
+	'<p class="field"><label for="body_bg_c">'.__('Background color:').' '.
+	form::field('body_bg_c',7,7,$blowup_user['body_bg_c'],'colorpicker').'</label></p>'.
+
+	'<p class="field"><label for="body_bg_g">'.__('Background color fill:').' '.
+	form::combo('body_bg_g',$gradient_types,$blowup_user['body_bg_g']).'</label></p>';
+}
+
+echo
+'<p class="field"><label for="body_txt_f">'.__('Main text font:').' '.
+form::combo('body_txt_f',blowupConfig::fontsList(),$blowup_user['body_txt_f']).'</label></p>'.
+
+'<p class="field"><label for="body_txt_s">'.__('Main text font size:').' '.
+form::field('body_txt_s',7,7,$blowup_user['body_txt_s']).'</label></p>'.
+
+'<p class="field"><label for="body_txt_c">'.__('Main text color:').' '.
+form::field('body_txt_c',7,7,$blowup_user['body_txt_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="body_line_height">'.__('Text line height:').' '.
+form::field('body_line_height',7,7,$blowup_user['body_line_height']).'</label></p>'.
+'</fieldset>'.
+
+'<fieldset><legend>'.__('Links').'</legend>'.
+'<p class="field"><label for="body_link_c">'.__('Links color:').' '.
+form::field('body_link_c',7,7,$blowup_user['body_link_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="body_link_v_c">'.__('Visited links color:').' '.
+form::field('body_link_v_c',7,7,$blowup_user['body_link_v_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="body_link_f_c">'.__('Focus links color:').' '.
+form::field('body_link_f_c',7,7,$blowup_user['body_link_f_c'],'colorpicker').'</label></p>'.
+'</fieldset>'.
+
+'<fieldset><legend>'.__('Page top').'</legend>';
 
 if ($can_write_images) {
 	echo
-	'<p class="field"><label for="prelude_c">'.__('Prelude color:').'</label> '.
-	form::field('prelude_c',7,7,$blowup_user['prelude_c'],'colorpicker').'</p>';
+	'<p class="field"><label for="prelude_c">'.__('Prelude color:').' '.
+	form::field('prelude_c',7,7,$blowup_user['prelude_c'],'colorpicker').'</label></p>';
 }
 
@@ -296,18 +286,19 @@
 form::checkbox('blog_title_hide',1,$blowup_user['blog_title_hide']).'</label></p>'.
 
-'<p class="field"><label for="blog_title_f">'.__('Main title font:').'</label> '.
-form::combo('blog_title_f',blowupConfig::fontsList(),$blowup_user['blog_title_f']).'</p>'.
-
-'<p class="field"><label for="blog_title_s">'.__('Main title font size:').'</label> '.
-form::field('blog_title_s',7,7,$blowup_user['blog_title_s']).'</p>'.
-
-'<p class="field"><label for="blog_title_c">'.__('Main title color:').'</label> '.
-form::field('blog_title_c',7,7,$blowup_user['blog_title_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="blog_title_a">'.__('Main title alignment:').'</label> '.
-form::combo('blog_title_a',array(__('center')=>'center',__('left')=>'left',__('right')=>'right'),$blowup_user['blog_title_a']).'</p>'.
-
-'<p class="field"><label for="blog_title_p">'.__('Main title position (x:y)').'</label> '.
-form::field('blog_title_p',7,7,$blowup_user['blog_title_p']).'</p>';
+'<p class="field"><label for="blog_title_f">'.__('Main title font:').' '.
+form::combo('blog_title_f',blowupConfig::fontsList(),$blowup_user['blog_title_f']).'</label></p>'.
+
+'<p class="field"><label for="blog_title_s">'.__('Main title font size:').' '.
+form::field('blog_title_s',7,7,$blowup_user['blog_title_s']).'</label></p>'.
+
+'<p class="field"><label for="blog_title_c">'.__('Main title color:').' '.
+form::field('blog_title_c',7,7,$blowup_user['blog_title_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="blog_title_a">'.__('Main title alignment:').' '.
+form::combo('blog_title_a',array(__('center')=>'center',__('left')=>'left',__('right')=>'right'),$blowup_user['blog_title_a']).'</label></p>'.
+
+'<p class="field"><label for="blog_title_p">'.__('Main title position (x:y)').' '.
+form::field('blog_title_p',7,7,$blowup_user['blog_title_p']).'</label></p>'.
+'</fieldset>';
 
 if ($can_write_images) {
@@ -319,126 +310,129 @@
 
 	echo
-	'<h4 class="border-top">'.__('Top image').'</h4>'.
-	'<p class="field"><label for="top_image">'.__('Top image').'</label> '.
-	form::combo('top_image',$top_images,($blowup_user['top_image'] ? $blowup_user['top_image'] : 'default')).'</p>'.
+	'<fieldset><legend>'.__('Top image').'</legend>'.
+	'<p class="field"><label for="top_image">'.__('Top image').
+	form::combo('top_image',$top_images,($blowup_user['top_image'] ? $blowup_user['top_image'] : 'default')).'</label></p>'.
 	'<p>'.__('Choose "Custom..." to upload your own image.').'</p>'.
 
-	'<p id="uploader"><label for="upfile">'.__('Add your image:').'</label> '.
+	'<p id="uploader"><label for="upfile">'.__('Add your image:').
 	' ('.sprintf(__('JPEG or PNG file, 800 pixels wide, maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.
 	'<input type="file" name="upfile" id="upfile" size="35" />'.
-	'</p>'.
-
-	'<h5>'.__('Preview').'</h5>'.
+	'</label></p>'.
+
+	'<h3>'.__('Preview').'</h3>'.
 	'<div class="grid" style="width:800px;border:1px solid #ccc;">'.
 	'<img style="display:block;" src="'.$preview_image.'" alt="" id="image-preview" />'.
-	'</div>';
-}
-
-echo
-'<h4 class="border-top">'.__('Sidebar').'</h4>'.
-'<p class="field"><label for="sidebar_position">'.__('Sidebar position:').'</label> '.
-form::combo('sidebar_position',array(__('right')=>'right',__('left')=>'left'),$blowup_user['sidebar_position']).'</p>'.
-
-'<p class="field"><label for="sidebar_text_f">'.__('Sidebar text font:').'</label> '.
-form::combo('sidebar_text_f',blowupConfig::fontsList(),$blowup_user['sidebar_text_f']).'</p>'.
-
-'<p class="field"><label for="sidebar_text_s">'.__('Sidebar text font size:').'</label> '.
-form::field('sidebar_text_s',7,7,$blowup_user['sidebar_text_s']).'</p>'.
-
-'<p class="field"><label for="sidebar_text_c">'.__('Sidebar text color:').'</label> '.
-form::field('sidebar_text_c',7,7,$blowup_user['sidebar_text_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="sidebar_title_f">'.__('Sidebar titles font:').'</label> '.
-form::combo('sidebar_title_f',blowupConfig::fontsList(),$blowup_user['sidebar_title_f']).'</p>'.
-
-'<p class="field"><label for="sidebar_title_s">'.__('Sidebar titles font size:').'</label> '.
-form::field('sidebar_title_s',7,7,$blowup_user['sidebar_title_s']).'</p>'.
-
-'<p class="field"><label for="sidebar_title_c">'.__('Sidebar titles color:').'</label> '.
-form::field('sidebar_title_c',7,7,$blowup_user['sidebar_title_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="sidebar_title2_f">'.__('Sidebar 2nd level titles font:').'</label> '.
-form::combo('sidebar_title2_f',blowupConfig::fontsList(),$blowup_user['sidebar_title2_f']).'</p>'.
-
-'<p class="field"><label for="sidebar_title2_s">'.__('Sidebar 2nd level titles font size:').'</label> '.
-form::field('sidebar_title2_s',7,7,$blowup_user['sidebar_title2_s']).'</p>'.
-
-'<p class="field"><label for="sidebar_title2_c">'.__('Sidebar 2nd level titles color:').'</label> '.
-form::field('sidebar_title2_c',7,7,$blowup_user['sidebar_title2_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="sidebar_line_c">'.__('Sidebar lines color:').'</label> '.
-form::field('sidebar_line_c',7,7,$blowup_user['sidebar_line_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="sidebar_link_c">'.__('Sidebar links color:').'</label> '.
-form::field('sidebar_link_c',7,7,$blowup_user['sidebar_link_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="sidebar_link_v_c">'.__('Sidebar visited links color:').'</label> '.
-form::field('sidebar_link_v_c',7,7,$blowup_user['sidebar_link_v_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="sidebar_link_f_c">'.__('Sidebar focus links color:').'</label> '.
-form::field('sidebar_link_f_c',7,7,$blowup_user['sidebar_link_f_c'],'colorpicker').'</p>'.
+	'</div>'.
+	'</fieldset>';
+}
+
+echo
+'<fieldset><legend>'.__('Sidebar').'</legend>'.
+'<p class="field"><label for="sidebar_position">'.__('Sidebar position:').' '.
+form::combo('sidebar_position',array(__('right')=>'right',__('left')=>'left'),$blowup_user['sidebar_position']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_text_f">'.__('Sidebar text font:').' '.
+form::combo('sidebar_text_f',blowupConfig::fontsList(),$blowup_user['sidebar_text_f']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_text_s">'.__('Sidebar text font size:').' '.
+form::field('sidebar_text_s',7,7,$blowup_user['sidebar_text_s']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_text_c">'.__('Sidebar text color:').' '.
+form::field('sidebar_text_c',7,7,$blowup_user['sidebar_text_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="sidebar_title_f">'.__('Sidebar titles font:').' '.
+form::combo('sidebar_title_f',blowupConfig::fontsList(),$blowup_user['sidebar_title_f']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_title_s">'.__('Sidebar titles font size:').' '.
+form::field('sidebar_title_s',7,7,$blowup_user['sidebar_title_s']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_title_c">'.__('Sidebar titles color:').' '.
+form::field('sidebar_title_c',7,7,$blowup_user['sidebar_title_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="sidebar_title2_f">'.__('Sidebar 2nd level titles font:').' '.
+form::combo('sidebar_title2_f',blowupConfig::fontsList(),$blowup_user['sidebar_title2_f']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_title2_s">'.__('Sidebar 2nd level titles font size:').' '.
+form::field('sidebar_title2_s',7,7,$blowup_user['sidebar_title2_s']).'</label></p>'.
+
+'<p class="field"><label for="sidebar_title2_c">'.__('Sidebar 2nd level titles color:').' '.
+form::field('sidebar_title2_c',7,7,$blowup_user['sidebar_title2_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="sidebar_line_c">'.__('Sidebar lines color:').' '.
+form::field('sidebar_line_c',7,7,$blowup_user['sidebar_line_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="sidebar_link_c">'.__('Sidebar links color:').' '.
+form::field('sidebar_link_c',7,7,$blowup_user['sidebar_link_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="sidebar_link_v_c">'.__('Sidebar visited links color:').' '.
+form::field('sidebar_link_v_c',7,7,$blowup_user['sidebar_link_v_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="sidebar_link_f_c">'.__('Sidebar focus links color:').' '.
+form::field('sidebar_link_f_c',7,7,$blowup_user['sidebar_link_f_c'],'colorpicker').'</label></p>'.
 '</fieldset>'.
 
-'<h4 class="border-top">'.__('Entries').'</h4>'.
-'<p class="field"><label for="date_title_f">'.__('Date title font:').'</label> '.
-form::combo('date_title_f',blowupConfig::fontsList(),$blowup_user['date_title_f']).'</p>'.
-
-'<p class="field"><label for="date_title_s">'.__('Date title font size:').'</label> '.
-form::field('date_title_s',7,7,$blowup_user['date_title_s']).'</p>'.
-
-'<p class="field"><label for="date_title_c">'.__('Date title color:').'</label> '.
-form::field('date_title_c',7,7,$blowup_user['date_title_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="post_title_f">'.__('Entry title font:').'</label> '.
-form::combo('post_title_f',blowupConfig::fontsList(),$blowup_user['post_title_f']).'</p>'.
-
-'<p class="field"><label for="post_title_s">'.__('Entry title font size:').'</label> '.
-form::field('post_title_s',7,7,$blowup_user['post_title_s']).'</p>'.
-
-'<p class="field"><label for="post_title_c">'.__('Entry title color:').'</label> '.
-form::field('post_title_c',7,7,$blowup_user['post_title_c'],'colorpicker').'</p>';
+'<fieldset><legend>'.__('Entries').'</legend>'.
+'<p class="field"><label for="date_title_f">'.__('Date title font:').' '.
+form::combo('date_title_f',blowupConfig::fontsList(),$blowup_user['date_title_f']).'</label></p>'.
+
+'<p class="field"><label for="date_title_s">'.__('Date title font size:').' '.
+form::field('date_title_s',7,7,$blowup_user['date_title_s']).'</label></p>'.
+
+'<p class="field"><label for="date_title_c">'.__('Date title color:').' '.
+form::field('date_title_c',7,7,$blowup_user['date_title_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="post_title_f">'.__('Entry title font:').' '.
+form::combo('post_title_f',blowupConfig::fontsList(),$blowup_user['post_title_f']).'</label></p>'.
+
+'<p class="field"><label for="post_title_s">'.__('Entry title font size:').' '.
+form::field('post_title_s',7,7,$blowup_user['post_title_s']).'</label></p>'.
+
+'<p class="field"><label for="post_title_c">'.__('Entry title color:').' '.
+form::field('post_title_c',7,7,$blowup_user['post_title_c'],'colorpicker').'</label></p>';
 
 if ($can_write_images) {
 	echo
-	'<p class="field"><label for="post_comment_bg_c">'.__('Comment background color:').'</label> '.
-	form::field('post_comment_bg_c',7,7,$blowup_user['post_comment_bg_c'],'colorpicker').'</p>';
-}
-
-echo
-'<p class="field"><label for="post_comment_c">'.__('Comment text color:').'</label> '.
-form::field('post_comment_c',7,7,$blowup_user['post_comment_c'],'colorpicker').'</p>';
+	'<p class="field"><label for="post_comment_bg_c">'.__('Comment background color:').' '.
+	form::field('post_comment_bg_c',7,7,$blowup_user['post_comment_bg_c'],'colorpicker').'</label></p>';
+}
+
+echo
+'<p class="field"><label for="post_comment_c">'.__('Comment text color:').' '.
+form::field('post_comment_c',7,7,$blowup_user['post_comment_c'],'colorpicker').'</label></p>';
 
 if ($can_write_images) {
 	echo
-	'<p class="field"><label for="post_commentmy_bg_c">'.__('My comment background color:').'</label> '.
-	form::field('post_commentmy_bg_c',7,7,$blowup_user['post_commentmy_bg_c'],'colorpicker').'</p>';
-}
-
-echo
-'<p class="field"><label for="post_commentmy_c">'.__('My comment text color:').'</label> '.
-form::field('post_commentmy_c',7,7,$blowup_user['post_commentmy_c'],'colorpicker').'</p>'.
-
-'<h4 class="border-top">'.__('Footer').'</h4>'.
-'<p class="field"><label for="footer_f">'.__('Footer font:').'</label> '.
-form::combo('footer_f',blowupConfig::fontsList(),$blowup_user['footer_f']).'</p>'.
-
-'<p class="field"><label for="footer_s">'.__('Footer font size:').'</label> '.
-form::field('footer_s',7,7,$blowup_user['footer_s']).'</p>'.
-
-'<p class="field"><label for="footer_c">'.__('Footer color:').'</label> '.
-form::field('footer_c',7,7,$blowup_user['footer_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="footer_l_c">'.__('Footer links color:').'</label> '.
-form::field('footer_l_c',7,7,$blowup_user['footer_l_c'],'colorpicker').'</p>'.
-
-'<p class="field"><label for="footer_bg_c">'.__('Footer background color:').'</label> '.
-form::field('footer_bg_c',7,7,$blowup_user['footer_bg_c'],'colorpicker').'</p>';
-
-echo
-'<h4 class="border-top">'.__('Additional CSS').'</h4>'.
-'<p><label for="extra_css">'.__('Any additional CSS styles (must be written using the CSS syntax):').'</label> '.
+	'<p class="field"><label for="post_commentmy_bg_c">'.__('My comment background color:').' '.
+	form::field('post_commentmy_bg_c',7,7,$blowup_user['post_commentmy_bg_c'],'colorpicker').'</label></p>';
+}
+
+echo
+'<p class="field"><label for="post_commentmy_c">'.__('My comment text color:').' '.
+form::field('post_commentmy_c',7,7,$blowup_user['post_commentmy_c'],'colorpicker').'</label></p>'.
+'</fieldset>'.
+
+'<fieldset><legend>'.__('Footer').'</legend>'.
+'<p class="field"><label for="footer_f">'.__('Footer font:').' '.
+form::combo('footer_f',blowupConfig::fontsList(),$blowup_user['footer_f']).'</label></p>'.
+
+'<p class="field"><label for="footer_s">'.__('Footer font size:').' '.
+form::field('footer_s',7,7,$blowup_user['footer_s']).'</label></p>'.
+
+'<p class="field"><label for="footer_c">'.__('Footer color:').' '.
+form::field('footer_c',7,7,$blowup_user['footer_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="footer_l_c">'.__('Footer links color:').' '.
+form::field('footer_l_c',7,7,$blowup_user['footer_l_c'],'colorpicker').'</label></p>'.
+
+'<p class="field"><label for="footer_bg_c">'.__('Footer background color:').' '.
+form::field('footer_bg_c',7,7,$blowup_user['footer_bg_c'],'colorpicker').'</label></p>'.
+'</fieldset>';
+
+echo
+'<fieldset><legend>'.__('Additional CSS').'</legend>'.
+'<p><label for="extra_css">'.__('Any additional CSS styles (must be written using the CSS syntax):').' '.
 form::textarea('extra_css',72,5,html::escapeHTML($blowup_user['extra_css']),'maximal','',false,'title="'.__('Additional CSS').'"').
-'</p>'.
-'</div>';
+'</label></p>'.
+'</fieldset>';
 
 
@@ -456,11 +450,8 @@
 }
 echo
-'<div class="fieldset">'.
-'<h3 id="bu_export">'.__('Configuration import / export').'</h3>'.
-'<div id="bu_export_content">'.
+'<h3 id="bu_export">'.__('Configuration import / export').'</h3><fieldset>'.
 '<p>'.__('You can share your configuration using the following code. To apply a configuration, paste the code, click on "Apply code" and save.').'</p>'.
 '<p>'.form::textarea('export_code',72,5,implode('; ',$tmp_array),'maximal','',false,'title="'.__('Copy this code:').'"').'</p>'.
-'</div>'.
-'</div>';
+'</fieldset>';
 
 echo
Index: plugins/blowupConfig/lib/class.blowup.config.php
===================================================================
--- plugins/blowupConfig/lib/class.blowup.config.php	(revision 1436)
+++ plugins/blowupConfig/lib/class.blowup.config.php	(revision 1179)
@@ -141,246 +141,4 @@
 	}
 
-	public static function cssPath()
-	{
-		global $core;
-		return path::real($core->blog->public_path).'/blowup-css';
-	}
-
-	public static function cssURL()
-	{
-		global $core;
-		return $core->blog->settings->system->public_url.'/blowup-css';
-	}
-
-	public static function canWriteCss($create=false)
-	{
-		global $core;
-
-		$public = path::real($core->blog->public_path);
-		$css = self::cssPath();
-
-		if (!is_dir($public)) {
-			$core->error->add(__('The \'public\' directory does not exist.'));
-			return false;
-		}
-
-		if (!is_dir($css)) {
-			if (!is_writable($public)) {
-				$core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public'));
-				return false;
-			}
-			if ($create) {
-				files::makeDir($css);
-			}
-			return true;
-		}
-
-		if (!is_writable($css)) {
-			$core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public/blowup-css'));
-			return false;
-		}
-
-		return true;
-	}
-
-	public static function createCss($s)
-	{
-		global $core;
-		
-		if ($s === null) {
-			return;
-		}
-
-		$css = array();
-
-		/* Sidebar position
-		---------------------------------------------- */
-		if ($s['sidebar_position'] == 'left') {
-			$css['#wrapper']['background-position'] = '-300px 0';
-			$css['#main']['float'] = 'right';
-			$css['#sidebar']['float'] = 'left';
-		}
-
-		/* Properties
-		---------------------------------------------- */
-		self::prop($css,'body','background-color',$s['body_bg_c']);
-
-		self::prop($css,'body','color',$s['body_txt_c']);
-		self::prop($css,'.post-tags li a:link, .post-tags li a:visited, .post-info-co a:link, .post-info-co a:visited','color',$s['body_txt_c']);
-		self::prop($css,'#page','font-size',$s['body_txt_s']);
-		self::prop($css,'body','font-family',self::fontDef($s['body_txt_f']));
-
-		self::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']);
-
-		if (!$s['blog_title_hide'])
-		{
-			self::prop($css,'#top h1 a','color',$s['blog_title_c']);
-			self::prop($css,'#top h1','font-size',$s['blog_title_s']);
-			self::prop($css,'#top h1','font-family',self::fontDef($s['blog_title_f']));
-
-			if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') {
-				$css['#top h1'][$s['blog_title_a']] = '0px';
-				$css['#top h1']['width'] = 'auto';
-			}
-
-			if ($s['blog_title_p'])
-			{
-				$_p = explode(':',$s['blog_title_p']);
-				$css['#top h1']['top'] = $_p[1].'px';
-				if ($s['blog_title_a'] != 'center') {
-					$_a = $s['blog_title_a'] == 'right' ? 'right' : 'left';
-					$css['#top h1'][$_a] = $_p[0].'px';
-				}
-			}
-		}
-		else
-		{
-			self::prop($css,'#top h1 span','text-indent','-5000px');
-			self::prop($css,'#top h1','top','0px');
-			$css['#top h1 a'] = array(
-				'display' => 'block',
-				'height' => $s['top_height'] ? ($s['top_height']-10).'px' : '120px',
-				'width' => '800px'
-			);
-		}
-		self::prop($css,'#top','height',$s['top_height']);
-
-		self::prop($css,'.day-date','color',$s['date_title_c']);
-		self::prop($css,'.day-date','font-family',self::fontDef($s['date_title_f']));
-		self::prop($css,'.day-date','font-size',$s['date_title_s']);
-
-		self::prop($css,'a','color',$s['body_link_c']);
-		self::prop($css,'a:visited','color',$s['body_link_v_c']);
-		self::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']);
-
-		self::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']);
-		self::prop($css,'#comment-form input.preview','color',$s['body_link_c']);
-		self::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']);
-		self::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']);
-		self::prop($css,'#comment-form input.submit','color',$s['body_link_c']);
-		self::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']);
-		self::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']);
-
-		self::prop($css,'#sidebar','font-family',self::fontDef($s['sidebar_text_f']));
-		self::prop($css,'#sidebar','font-size',$s['sidebar_text_s']);
-		self::prop($css,'#sidebar','color',$s['sidebar_text_c']);
-
-		self::prop($css,'#sidebar h2','font-family',self::fontDef($s['sidebar_title_f']));
-		self::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']);
-		self::prop($css,'#sidebar h2','color',$s['sidebar_title_c']);
-
-		self::prop($css,'#sidebar h3','font-family',self::fontDef($s['sidebar_title2_f']));
-		self::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']);
-		self::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']);
-
-		self::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']);
-		self::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']);
-		self::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']);
-
-		self::prop($css,'#sidebar li a','color',$s['sidebar_link_c']);
-		self::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']);
-		self::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']);
-		self::prop($css,'#search input','color',$s['sidebar_link_c']);
-		self::prop($css,'#search .submit','color',$s['sidebar_link_c']);
-		self::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']);
-		self::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']);
-
-		self::prop($css,'.post-title','color',$s['post_title_c']);
-		self::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']);
-		self::prop($css,'.post-title','font-family',self::fontDef($s['post_title_f']));
-		self::prop($css,'.post-title','font-size',$s['post_title_s']);
-
-		self::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']);
-		self::prop($css,'#comments dd','color',$s['post_comment_c']);
-		self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']);
-		self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']);
-
-		self::prop($css,'#prelude, #prelude a','color',$s['prelude_c']);
-
-		self::prop($css,'#footer p','background-color',$s['footer_bg_c']);
-		self::prop($css,'#footer p','color',$s['footer_c']);
-		self::prop($css,'#footer p','font-size',$s['footer_s']);
-		self::prop($css,'#footer p','font-family',self::fontDef($s['footer_f']));
-		self::prop($css,'#footer p a','color',$s['footer_l_c']);
-
-		/* Images
-		------------------------------------------------------ */
-		self::backgroundImg($css,'body',$s['body_bg_c'],'body-bg.png');
-		self::backgroundImg($css,'body',$s['body_bg_g'] != 'light','body-bg.png');
-		self::backgroundImg($css,'body',$s['prelude_c'],'body-bg.png');
-		self::backgroundImg($css,'#top',$s['body_bg_c'],'page-t.png');
-		self::backgroundImg($css,'#top',$s['body_bg_g'] != 'light','page-t.png');
-		self::backgroundImg($css,'#top',$s['uploaded'] || $s['top_image'],'page-t.png');
-		self::backgroundImg($css,'#footer',$s['body_bg_c'],'page-b.png');
-		self::backgroundImg($css,'#comments dt',$s['post_comment_bg_c'],'comment-t.png');
-		self::backgroundImg($css,'#comments dd',$s['post_comment_bg_c'],'comment-b.png');
-		self::backgroundImg($css,'#comments dt.me',$s['post_commentmy_bg_c'],'commentmy-t.png');
-		self::backgroundImg($css,'#comments dd.me',$s['post_commentmy_bg_c'],'commentmy-b.png');
-
-		$res = '';
-		foreach ($css as $selector => $values) {
-			$res .= $selector." {\n";
-			foreach ($values as $k => $v) {
-				$res .= $k.':'.$v.";\n";
-			}
-			$res .= "}\n";
-		}
-
-		$res .= $s['extra_css'];
-
-		if (!self::canWriteCss(true)) {
-			throw new Exception(__('Unable to create css file.'));
-		}
-
-		# erase old css file
-		self::dropCss($core->blog->settings->system->theme);
-
-		# create new css file into public blowup-css subdirectory
-		self::writeCss($core->blog->settings->system->theme, $res);
-
-		return $res;
-	}
-
-	protected static function prop(&$css,$selector,$prop,$value)
-	{
-		if ($value) {
-			$css[$selector][$prop] = $value;
-		}
-	}
-
-	protected static function backgroundImg(&$css,$selector,$value,$image)
-	{
-		$file = self::imagesPath().'/'.$image;
-		if ($value && file_exists($file)){
-			$css[$selector]['background-image'] = 'url('.self::imagesURL().'/'.$image.')';
-		}
-	}
-
-	private static function writeCss($theme,$css)
-	{
-		file_put_contents(self::cssPath().'/'.$theme.'.css', $css);
-	}
-	
-	public static function dropCss($theme)
-	{
-		$file = path::real(self::cssPath().'/'.$theme.'.css');
-		if (is_writable(dirname($file))) {
-			@unlink($file);
-		}
-	}
-
-	public static function publicCssUrlHelper()
-	{
-		$theme = $GLOBALS['core']->blog->settings->system->theme;
-		$url = blowupConfig::cssURL();
-		$path = blowupConfig::cssPath();
-
-		if (file_exists($path.'/'.$theme.'.css')) {
-			return $url.'/'.$theme.'.css';
-		}
-
-		return null;
-	}
-
 	public static function imagesPath()
 	{
Index: plugins/daInstaller/inc/lib.da.installer.ui.php
===================================================================
--- plugins/daInstaller/inc/lib.da.installer.ui.php	(revision 1416)
+++ plugins/daInstaller/inc/lib.da.installer.ui.php	(revision 1046)
@@ -64,5 +64,5 @@
 				'</table>';
 			
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 			$blocks = explode('%s',$html_block);
 			echo $blocks[0];
@@ -81,5 +81,5 @@
 			}
 			echo $blocks[1];
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 		}
 	}
Index: plugins/daInstaller/index.php
===================================================================
--- plugins/daInstaller/index.php	(revision 1499)
+++ plugins/daInstaller/index.php	(revision 1237)
@@ -255,14 +255,6 @@
 '</head>'.
 '<body>'.
-
-dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		'<span class="page-title">'.__('DotAddict.org Installer').'</span>' => ''
-	)).
-
-infoMessages();
-
-echo
+infoMessages().
+'<h2 class="page-title">'.__('DotAddict.org Installer').'</h2>'.
 '<p>'.__('Install and update your extensions live from DotAddict.org').'</p>';
 
@@ -298,17 +290,20 @@
 '<!-- Search -->'.
 '<div class="multi-part" id="search" title="'.__('Search').'">'.
-	'<form method="get" action="'.$p_url.'" class="fieldset">'.
-	'<h3>'.__('Search').'</h3>'.
+	'<fieldset><legend>'.__('Search options').
+	'</legend>'.
+	'<form method="get" action="'.$p_url.'">'.
 	'<p>'.form::hidden('p','daInstaller').
-	'<label for="q" class="classic">'.__('Query:').'&nbsp;</label> '.
-	form::field('q',30,255,html::escapeHTML($q)).'</p>'.
-	'<p><label for="mode" class="classic">'.
+	'<label for="q" class="classic">'.__('Query:').'&nbsp; '.
+	form::field('q',30,255,html::escapeHTML($q)).
+	'</label> '.
+	'<label for="mode" class="classic">'.
 	form::radio(array('mode','mode'),'plugins',$mode == 'plugins').
 	' '.__('Plugins').'&nbsp;</label> '.
 	'<label for="mode2" class="classic">'.
-	form::radio(array('mode','mode2'),'themes',$mode == 'themes').
-	' '.__('Themes').'&nbsp;</label></p>'.
-	'<p><input type="submit" value="'.__('Search').'" /></p>'.
-	'</form>';
+	form::radio(array('mode','mode2'),'themes',$mode == 'themes')
+	.' '.__('Themes').'&nbsp;</label> '.
+	'<input type="submit" value="'.__('Search').'" /></p>'.
+	'</form>'.
+	'</fieldset>';
 if (!empty($q)) {
 	echo '<p><strong>'.sprintf(__('%u %s found'),$s_m_nb,__($mode)).'</strong></p>';
Index: plugins/importExport/inc/class.dc.export.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.export.flat.php	(revision 1499)
+++ plugins/importExport/inc/class.dc.export.flat.php	(revision 840)
@@ -191,6 +191,6 @@
 	{
 		echo
-		'<form action="'.$this->getURL(true).'" method="post" class="fieldset">'.
-		'<h3>'.__('Single blog').'</h3>'.
+		'<form action="'.$this->getURL(true).'" method="post">'.
+		'<fieldset><legend>'.__('Single blog').'</legend>'.
 		'<p>'.sprintf(__('This will create an export of your current blog: %s'),html::escapeHTML($this->core->blog->name)).'</p>'.
 		
@@ -211,4 +211,5 @@
 		$this->core->formNonce().'</p>'.
 		
+		'</fieldset>'.
 		'</form>';
 		
@@ -216,6 +217,6 @@
 		{
 			echo
-			'<form action="'.$this->getURL(true).'" method="post" class="fieldset">'.
-			'<h3>'.__('Multiple blogs').'</h3>'.
+			'<form action="'.$this->getURL(true).'" method="post">'.
+			'<fieldset><legend>'.__('Multiple blogs').'</legend>'.
 			'<p>'.__('This will create an export of all the content of your database.').'</p>'.
 			
@@ -233,4 +234,5 @@
 			$this->core->formNonce().'</p>'.
 			
+			'</fieldset>'.
 			'</form>';
 		}
Index: plugins/importExport/inc/class.dc.import.dc1.php
===================================================================
--- plugins/importExport/inc/class.dc.import.dc1.php	(revision 1454)
+++ plugins/importExport/inc/class.dc.import.dc1.php	(revision 840)
@@ -150,18 +150,18 @@
 				
 				printf($this->imForm(1,__('General information'),__('Import my blog now')),
-				'<p class="form-note info">'.__('We first need some information about your old Dotclear 1.2 installation.').'</p>'.
-				'<p><label for="db_host">'.__('Database Host Name:').'</label> '.
-				form::field('db_host',30,255,html::escapeHTML($this->vars['db_host'])).'</p>'.
-				'<p><label for="db_name">'.__('Database Name:',html::escapeHTML($this->vars['db_name'])).'</label> '.
-				form::field('db_name',30,255,html::escapeHTML($this->vars['db_name'])).'</p>'.
-				'<p><label for="db_user">'.__('Database User Name:').'</label> '.
-				form::field('db_user',30,255,html::escapeHTML($this->vars['db_user'])).'</p>'.
-				'<p><label for="db_pwd">'.__('Database Password:').'</label> '.
-				form::password('db_pwd',30,255).'</p>'.
-				'<p><label for="db_prefix">'.__('Database Tables Prefix:').'</label> '.
-				form::field('db_prefix',30,255,html::escapeHTML($this->vars['db_prefix'])).'</p>'.
+				'<h3>'.__('We first need some information about your old Dotclear 1.2 installation.').'</h3>'.
+				'<p><label for="db_host">'.__('Database Host Name:').' '.
+				form::field('db_host',30,255,html::escapeHTML($this->vars['db_host'])).'</label></p>'.
+				'<p><label for="db_name">'.__('Database Name:',html::escapeHTML($this->vars['db_name'])).' '.
+				form::field('db_name',30,255,html::escapeHTML($this->vars['db_name'])).'</label></p>'.
+				'<p><label for="db_user">'.__('Database User Name:').' '.
+				form::field('db_user',30,255,html::escapeHTML($this->vars['db_user'])).'</label></p>'.
+				'<p><label for="db_pwd">'.__('Database Password:').' '.
+				form::password('db_pwd',30,255).'</label></p>'.
+				'<p><label for="db_prefix">'.__('Database Tables Prefix:').' '.
+				form::field('db_prefix',30,255,html::escapeHTML($this->vars['db_prefix'])).'</label></p>'.
 				'<h3>'.__('Entries import options').'</h3>'.
-				'<p><label for="post_limit">'.__('Number of entries to import at once:').'</label> '.
-				form::field('post_limit',3,3,html::escapeHTML($this->vars['post_limit'])).'</p>'
+				'<p><label for="post_limit">'.__('Number of entries to import at once:').' '.
+				form::field('post_limit',3,3,html::escapeHTML($this->vars['post_limit'])).'</label></p>'
 				);
 				break;
Index: plugins/importExport/inc/class.dc.import.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.import.flat.php	(revision 1499)
+++ plugins/importExport/inc/class.dc.import.flat.php	(revision 939)
@@ -180,18 +180,18 @@
 		
 		echo
-		'<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data" class="fieldset">'.
-		'<h3>'.__('Single blog').'</h3>'.
-		'<p>'.sprintf(__('This will import a single blog backup as new content in the current blog: <strong>%s</strong>.'),html::escapeHTML($this->core->blog->name)).'</p>'.
-		
-		'<p><label for="up_single_file" class="classic">'.__('Upload a backup file').
-		' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.' </label>'.
-		' <input type="file" id="up_single_file" name="up_single_file" size="20" />'.
+		'<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data">'.
+		'<fieldset><legend>'.__('Single blog').'</legend>'.
+		'<p>'.sprintf(__('This will import a single blog backup as new content in the current blog: %s.'),html::escapeHTML($this->core->blog->name)).'</p>'.
+		
+		'<p><label for="up_single_file">'.__('Upload a backup file').
+		' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.'</label>'.
+		'<input type="file" id="up_single_file" name="up_single_file" size="20" />'.
 		'</p>';
 		
 		if ($has_files) {
 			echo 
-			'<p><label for="public_single_file" class="classic">'.__('or pick up a local file in your public directory').'</label> '.
+			'<p><label for="public_single_file">'.__('or pick up a local file in your public directory').' '.
 			form::combo('public_single_file',$public_files).
-			'</p>';
+			'</label></p>';
 		}
 		
@@ -203,4 +203,5 @@
 		'<input type="submit" value="'.__('Import').'" /></p>'.
 		
+		'</fieldset>'.
 		'</form>';
 		
@@ -208,10 +209,10 @@
 		{
 			echo
-			'<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data" id="formfull" class="fieldset">'.
-			'<h3>'.__('Multiple blogs').'</h3>'.
-			'<p class="warning">'.__('This will reset all the content of your database, except users.').'</p>'.
-			
-			'<p><label for="up_full_file" class="classic">'.__('Upload a backup file').' '.
-			' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.' </label>'.
+			'<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data" id="formfull">'.
+			'<fieldset><legend>'.__('Multiple blogs').'</legend>'.
+			'<p>'.__('This will reset all the content of your database, except users.').'</p>'.
+			
+			'<p><label for="up_full_file">'.__('Upload a backup file').
+			' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).')'.'</label>'.
 			'<input type="file" id="up_full_file" name="up_full_file" size="20" />'.
 			'</p>';
@@ -219,5 +220,5 @@
 			if ($has_files) {
 				echo 
-				'<p><label for="public_full_file" class="classic">'.__('or pick up a local file in your public directory').' </label>'.
+				'<p><label for="public_full_file">'.__('or pick up a local file in your public directory').'</label>'.
 				form::combo('public_full_file',$public_files).
 				'</p>';
@@ -234,4 +235,5 @@
 			'<input type="submit" value="'.__('Import').'" /></p>'.
 			
+			'</fieldset>'.
 			'</form>';
 		}
Index: plugins/importExport/inc/class.dc.import.wp.php
===================================================================
--- plugins/importExport/inc/class.dc.import.wp.php	(revision 1454)
+++ plugins/importExport/inc/class.dc.import.wp.php	(revision 1185)
@@ -182,15 +182,14 @@
 				printf($this->imForm(1,__('General information'),__('Import my blog now')),
 				'<h3>'.__('We first need some information about your old WordPress installation.').'</h3>'.
-				'<p><label for="db_host">'.__('Database Host Name:').'</label> '.
-				form::field('db_host',30,255,html::escapeHTML($this->vars['db_host'])).'</p>'.
-				'<p><label for="db_name">'.__('Database Name:',html::escapeHTML($this->vars['db_name'])).'</label> '.
-				form::field('db_name',30,255,html::escapeHTML($this->vars['db_name'])).'</p>'.
-				'<p><label for="db_user">'.__('Database User Name:').'</label> '.
-				form::field('db_user',30,255,html::escapeHTML($this->vars['db_user'])).'</p>'.
-				'<p><label for="db_pwd">'.__('Database Password:').'</label> '.
-				form::password('db_pwd',30,255).'</p>'.
-				'<p><label for="db_prefix">'.__('Database Tables Prefix:').'</label> '.
-				form::field('db_prefix',30,255,html::escapeHTML($this->vars['db_prefix'])).'</p>'.
-
+				'<p><label for="db_host">'.__('Database Host Name:').' '.
+				form::field('db_host',30,255,html::escapeHTML($this->vars['db_host'])).'</label></p>'.
+				'<p><label for="db_name">'.__('Database Name:',html::escapeHTML($this->vars['db_name'])).' '.
+				form::field('db_name',30,255,html::escapeHTML($this->vars['db_name'])).'</label></p>'.
+				'<p><label for="db_user">'.__('Database User Name:').' '.
+				form::field('db_user',30,255,html::escapeHTML($this->vars['db_user'])).'</label></p>'.
+				'<p><label for="db_pwd">'.__('Database Password:').' '.
+				form::password('db_pwd',30,255).'</label></p>'.
+				'<p><label for="db_prefix">'.__('Database Tables Prefix:').' '.
+				form::field('db_prefix',30,255,html::escapeHTML($this->vars['db_prefix'])).'</label></p>'.
 				'<h3>'.__('Entries import options').'</h3>'.
 				'<p>'.__('WordPress and Dotclear\'s handling of categories are quite different. '.
@@ -203,5 +202,4 @@
 				'category, you can just ignore it while importing your blog, as Dotclear allows you to '.
 				'actually keep your posts uncategorized.').'</p>'.
-
 				'<p><label for="ignore_first_cat" class="classic">'.form::checkbox('ignore_first_cat',1,$this->vars['ignore_first_cat']).' '.
 				__('Ignore the first category:').'</label></p>'.
@@ -210,15 +208,13 @@
 				'<p><label for="cat_as_tags" class="classic">'.form::checkbox('cat_as_tags',1,$this->vars['cat_as_tags']).' '.
 				__('Import all categories as tags:').'</label></p>'.
-				'<p><label for="cat_tags_prefix">'.__('Prefix such tags with:').'</label> '.
-				form::field('cat_tags_prefix',10,20,html::escapeHTML($this->vars['cat_tags_prefix'])).'</p>'.
-				'<p><label for="post_limit">'.__('Number of entries to import at once:').'</label> '.
-				form::field('post_limit',3,3,html::escapeHTML($this->vars['post_limit'])).'</p>'.
+				'<p><label for="cat_tags_prefix">'.__('Prefix such tags with:').' '.
+				form::field('cat_tags_prefix',10,20,html::escapeHTML($this->vars['cat_tags_prefix'])).'</label></p>'.
+				'<p><label for="post_limit">'.__('Number of entries to import at once:').' '.
+				form::field('post_limit',3,3,html::escapeHTML($this->vars['post_limit'])).'</label></p>'.
 				
 				'<h3>'.__('Content filters').'</h3>'.
 				'<p>'.__('You may want to process your post and/or comment content with the following filters.').'</p>'.
-				'<p><label for="post_formater">'.__('Post content formatter:').'</label> '.
-				form::combo('post_formater',$this->formaters,$this->vars['post_formater']).'</p>'.
-				'<p><label for="comment_formater">'.__('Comment content formatter:').'</label> '
-				.form::combo('comment_formater',$this->formaters,$this->vars['comment_formater']).'</label></p>'
+				'<p><label for="post_formater">'.__('Post content formatter:').' '.form::combo('post_formater',$this->formaters,$this->vars['post_formater']).'</label></p>'.
+				'<p><label for="comment_formater">'.__('Comment content formatter:').' '.form::combo('comment_formater',$this->formaters,$this->vars['comment_formater']).'</label></p>'
 				);
 				break;
Index: plugins/importExport/index.php
===================================================================
--- plugins/importExport/index.php	(revision 1358)
+++ plugins/importExport/index.php	(revision 840)
@@ -74,12 +74,7 @@
 
 if ($type && $module !== null) {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			$title => $p_url,
-			'<span class="page-title">'.html::escapeHTML($module->name).'</span>' => ''
-		));
-
 	echo
+	'<h2><a href="'.$p_url.'">'.$title.'</a>'.
+	' &rsaquo; <span class="page-title">'.html::escapeHTML($module->name).'</span></h2>'.
 	'<div id="ie-gui">';
 	
@@ -89,11 +84,6 @@
 }
 else {
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.$title.'</span>' => ''
-		));
-
 	echo
+	'<h2 class="page-title">'.$title.'</h2>'.
 	'<h3>'.__('Import').'</h3>'.listImportExportModules($core,$modules['import']).
 	'<h3>'.__('Export').'</h3>'.listImportExportModules($core,$modules['export']);
Index: plugins/importExport/locales/fr/main.po
===================================================================
--- plugins/importExport/locales/fr/main.po	(revision 1499)
+++ plugins/importExport/locales/fr/main.po	(revision 841)
@@ -223,5 +223,5 @@
 
 #: inc/class.dc.import.flat.php:184
-msgid "This will import a single blog backup as new content in the current blog: <strong>%s</strong>."
+msgid "This will import a single blog backup as new content in the current blog: %s."
 msgstr "Ceci va charger une sauvegarde de blog comme un nouveau contenu dans le blog en cours : %s."
 
Index: plugins/maintenance/index.php
===================================================================
--- plugins/maintenance/index.php	(revision 1358)
+++ plugins/maintenance/index.php	(revision 1179)
@@ -69,11 +69,5 @@
 
 <body>
-<?php
-	echo dcPage::breadcrumb(
-		array(
-			__('Plugins') => '',
-			'<span class="page-title">'.__('Maintenance').'</span>' => ''
-		));
-?>
+<h2 class="page-title"><?php echo __('Maintenance'); ?></h2>
 
 <?php
Index: plugins/maintenance/locales/fr/help/maintenance.html
===================================================================
--- plugins/maintenance/locales/fr/help/maintenance.html	(revision 1280)
+++ plugins/maintenance/locales/fr/help/maintenance.html	(revision 1272)
@@ -10,8 +10,8 @@
 <dl>
   <dt>Optimiser l'espace de la base de données</dt>
-  <dd>Au fur at à mesure des suppressions ou modifications dans vos billets, les tables de la 
+  <dd>Au fur et à mesure des suppressions ou modifications dans vos billets, les tables de la 
   base de données se fragmentent. L'opération d'optimisation permet de compacter celles-ci.<br />
   Cette opération n'a aucun impact sur l'intégrité de vos données.<br />
-  Il est fortement conseillé d'optimiser la base de données avant tout export de blog</dd>
+  Il est fortement conseillé d'optimiser la base de données avant tout export de blog.</dd>
   
   <dt>Compteurs</dt>
Index: plugins/pages/_admin.php
===================================================================
--- plugins/pages/_admin.php	(revision 1503)
+++ plugins/pages/_admin.php	(revision 1179)
@@ -15,6 +15,4 @@
 $core->addBehavior('adminDashboardFavs','pages_dashboard_favs');
 $core->addBehavior('adminDashboardFavsIcon','pages_dashboard_favs_icon');
-$core->addBehavior('adminUsersActionsHeaders','pages_users_actions_headers');
-
 function pages_dashboard($core,$icons)
 {
@@ -43,8 +41,4 @@
 	}
 }
-function pages_users_actions_headers()
-{
-	return dcPage::jsLoad('index.php?pf=pages/_users_actions.js');
-}
 
 $_menu['Blog']->addItem(__('Pages'),'plugin.php?p=pages','index.php?pf=pages/icon.png',
Index: plugins/pages/_install.php
===================================================================
--- plugins/pages/_install.php	(revision 1445)
+++ plugins/pages/_install.php	(revision 1494)
@@ -20,6 +20,4 @@
 /* Create first page
 -------------------------------------------------------- */
-$core->setBlog('default');
-
 $core->blog->settings->addNamespace('pages');
 
Index: plugins/pages/_users_actions.js
===================================================================
--- plugins/pages/_users_actions.js	(revision 1503)
+++ 	(revision )
@@ -1,47 +1,0 @@
-jQuery.fn.updatePagesPermissionsForm = function() {
-	return this.each(function() {
-		
-		var perms = {};
-		var re = /^perm\[(.+?)\]\[(.+?)\]$/;
-		var e,prop;
-		
-		// Building a nice object of form elements
-		for (var i=0; i<this.elements.length; i++) {
-			e = this.elements[i];
-			
-			if (e.name == undefined) {
-				continue;
-			}
-			var prop;
-			prop = e.name.match(re);
-			if (!prop) {
-				continue;
-			}
-			if (perms[prop[1]] == undefined) {
-				perms[prop[1]] = {};
-			}
-			perms[prop[1]][prop[2]] = e;
-			
-			// select related permissions for admin
-			if (prop[2] == 'admin') {
-				if (e.checked) {
-					admin(e,perms,re);
-				}
-				$(e).click(function(){
-					admin(this,perms,re);
-				});
-			}
-		}
-		
-		function admin(E,perms,re) {
-					P = E.name.match(re);
-					
-					perms[P[1]]['pages'].checked = E.checked;
-					perms[P[1]]['pages'].disabled = E.checked;
-		}
-	});
-};
-
-$(function() {
-	$('#permissions-form').updatePagesPermissionsForm();
-});
Index: plugins/pages/list.php
===================================================================
--- plugins/pages/list.php	(revision 1464)
+++ plugins/pages/list.php	(revision 1179)
@@ -44,5 +44,5 @@
 			}
 			
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 			
 			$blocks = explode('%s',$html_block);
@@ -57,5 +57,5 @@
 			echo $blocks[1];
 			
-			echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 		}
 	}
@@ -66,14 +66,14 @@
 		switch ($this->rs->post_status) {
 			case 1:
-				$img_status = sprintf($img,__('Published'),'check-on.png');
+				$img_status = sprintf($img,__('published'),'check-on.png');
 				break;
 			case 0:
-				$img_status = sprintf($img,__('Unpublished'),'check-off.png');
+				$img_status = sprintf($img,__('unpublished'),'check-off.png');
 				break;
 			case -1:
-				$img_status = sprintf($img,__('Scheduled'),'scheduled.png');
+				$img_status = sprintf($img,__('scheduled'),'scheduled.png');
 				break;
 			case -2:
-				$img_status = sprintf($img,__('Pending'),'check-wrn.png');
+				$img_status = sprintf($img,__('pending'),'check-wrn.png');
 				break;
 		}
@@ -81,10 +81,10 @@
 		$protected = '';
 		if ($this->rs->post_password) {
-			$protected = sprintf($img,__('Protected'),'locker.png');
+			$protected = sprintf($img,__('protected'),'locker.png');
 		}
 		
 		$selected = '';
 		if ($this->rs->post_selected) {
-			$selected = sprintf($img,__('Hidden'),'hidden.png');
+			$selected = sprintf($img,__('hidden'),'hidden.png');
 		}
 		
@@ -101,5 +101,5 @@
 		$res .=
 		'<td class="nowrap">'.
-		form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable(),'title="'.__('Select this page').'"').'</td>'.
+		form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable(),'title="'.__('select this page').'"').'</td>'.
 		'<td class="maximal"><a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'">'.
 		html::escapeHTML($this->rs->post_title).'</a></td>'.
@@ -145,15 +145,15 @@
 if ($core->auth->check('publish,contentadmin',$core->blog->id))
 {
-	$combo_action[__('Publish')] = 'publish';
-	$combo_action[__('Unpublish')] = 'unpublish';
-	$combo_action[__('Schedule')] = 'schedule';
-	$combo_action[__('Mark as pending')] = 'pending';
+	$combo_action[__('publish')] = 'publish';
+	$combo_action[__('unpublish')] = 'unpublish';
+	$combo_action[__('schedule')] = 'schedule';
+	$combo_action[__('mark as pending')] = 'pending';
 }
 if ($core->auth->check('admin',$core->blog->id)) {
-	$combo_action[__('Change author')] = 'author';
+	$combo_action[__('change author')] = 'author';
 }
 if ($core->auth->check('delete,contentadmin',$core->blog->id))
 {
-	$combo_action[__('Delete')] = 'delete';
+	$combo_action[__('delete')] = 'delete';
 }
 
@@ -177,11 +177,5 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Pages').'</span>' => ''
-	));
-
-echo
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Pages').'</span></h2>'.
 '<p class="top-add"><a class="button add" href="'.$p_url.'&amp;act=page">'.__('New page').'</a></p>';
 
Index: plugins/pages/page.php
===================================================================
--- plugins/pages/page.php	(revision 1480)
+++ plugins/pages/page.php	(revision 1239)
@@ -124,5 +124,5 @@
 		if ($next_rs !== null) {
 			$next_link = sprintf($post_link,$next_rs->post_id,
-				html::escapeHTML($next_rs->post_title),__('Next page').'&nbsp;&#187;');
+				html::escapeHTML($next_rs->post_title),__('next page').'&nbsp;&#187;');
 			$next_headlink = sprintf($post_headlink,'next',
 				html::escapeHTML($next_rs->post_title),$next_rs->post_id);
@@ -131,5 +131,5 @@
 		if ($prev_rs !== null) {
 			$prev_link = sprintf($post_link,$prev_rs->post_id,
-				html::escapeHTML($prev_rs->post_title),'&#171;&nbsp;'.__('Previous page'));
+				html::escapeHTML($prev_rs->post_title),'&#171;&nbsp;'.__('previous page'));
 			$prev_headlink = sprintf($post_headlink,'previous',
 				html::escapeHTML($prev_rs->post_title),$prev_rs->post_id);
@@ -302,4 +302,5 @@
   dcPage::jsToolBar().
   dcPage::jsModal().
+  dcPage::jsMetaEditor().
   dcPage::jsLoad('js/_post.js').
   dcPage::jsConfirmClose('entry-form','comment-form').
@@ -315,32 +316,4 @@
 <?php
 
-if ($post_id) {
-	switch ($post_status) {
-		case 1:
-			$img_status = sprintf($img_status_pattern,__('Published'),'check-on.png');
-			break;
-		case 0:
-			$img_status = sprintf($img_status_pattern,__('Unpublished'),'check-off.png');
-			break;
-		case -1:
-			$img_status = sprintf($img_status_pattern,__('Scheduled'),'scheduled.png');
-			break;
-		case -2:
-			$img_status = sprintf($img_status_pattern,__('Pending'),'check-wrn.png');
-			break;
-		default:
-			$img_status = '';
-	}
-	$edit_entry_title = '&ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
-} else {
-	$edit_entry_title = $page_title;
-}
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Pages') => $p_url,
-		'<span class="page-title">'.$edit_entry_title.'</span>' => ''
-	));
-
 if (!empty($_GET['upd'])) {
 	dcPage::message(__('Page has been successfully updated.'));
@@ -366,6 +339,29 @@
 }
 
+echo '<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="'.$p_url.'">'.__('Pages').'</a> &rsaquo; <span class="page-title">'.$page_title; 
+	if ($post_id) {
+		switch ($post_status) {
+			case 1:
+				$img_status = sprintf($img_status_pattern,__('published'),'check-on.png');
+				break;
+			case 0:
+				$img_status = sprintf($img_status_pattern,__('unpublished'),'check-off.png');
+				break;
+			case -1:
+				$img_status = sprintf($img_status_pattern,__('scheduled'),'scheduled.png');
+				break;
+			case -2:
+				$img_status = sprintf($img_status_pattern,__('pending'),'check-wrn.png');
+				break;
+			default:
+				$img_status = '';
+		}
+		echo ' &ldquo;'.$post_title.'&rdquo;'.' '.$img_status;
+	}
+echo	'</span></h2>';
+
 if ($post_id && $post->post_status == 1) {
-	echo '<p><a class="onblog_link" href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this page on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
+	echo '<p><a href="'.$post->getURL().'" onclick="window.open(this.href);return false;" title="'.$post_title.' ('.__('new window').')'.'">'.__('Go to this page on the site').' <img src="images/outgoing-blue.png" alt="" /></a></p>';
 }
 
@@ -374,7 +370,7 @@
 if ($post_id)
 {
-	echo '<p class="nav_prevnext">';
+	echo '<p>';
 	if ($prev_link) { echo $prev_link; }
-	if ($next_link && $prev_link) { echo ' | '; }
+	if ($next_link && $prev_link) { echo ' - '; }
 	if ($next_link) { echo $next_link; }
 	
@@ -403,10 +399,9 @@
 	
 	echo
-	'<p class="col"><label for="post_title" class="required no-margin"><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,html::escapeHTML($post_title),'maximal').
-	'</p>'.
-	
-	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').
-	'<span class="form-note">'.__('Add an introduction to the page.').'</span></label> '.
+	'</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>'.
@@ -418,6 +413,5 @@
 	
 	echo
-	'<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').
-	'<span class="form-note">'.__('Add unpublished notes.').'</span></label>'.
+	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
 	form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
 	'</p>';
@@ -427,5 +421,5 @@
 	
 	echo
-	'<p class="border-top">'.
+	'<p>'.
 	($post_id ? form::hidden('id',$post_id) : '').
 	'<input type="submit" value="'.__('Save').' (s)" '.
@@ -455,15 +449,15 @@
 	
 	echo
-	'<p><label for="post_status" class="ib">'.__('Page status:').'</label> '.
+	'<p><label for="post_status">'.__('Page status:').
 	form::combo('post_status',$status_combo,$post_status,'','',!$can_publish).
-	'</p>'.
-	
-	'<p><label for="post_dt" class="ib">'.__('Published on:').'</label>'.
-	form::field('post_dt',16,16,$post_dt,($bad_dt ? 'invalid' : '')).'</p>'.
-	
-	'<p><label for="post_format" class="ib">'.__('Text formating:').'</label>'.
+	'</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).
-	($post_id && $post_format != 'xhtml' ? '<a class="button" href="'.html::escapeURL($redir_url).'&amp;id='.$post_id.'&amp;xconv=1">'.__('Convert to XHTML').'</a>' : '').
-	'</p>'.
+	($post_id && $post_format != 'xhtml' ? '<a href="'.html::escapeURL($redir_url).'&amp;id='.$post_id.'&amp;xconv=1">'.__('Convert to XHTML').'</a>' : '').
+	'</label></p>'.
 	
 	'<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment).' '.
@@ -489,19 +483,19 @@
 	'</p>'.
 
-	'<p><label for="post_position" class="classic">'.__('Page position:').'</label> '.
+	'<p><label for="post_position" class="classic">'.__('Page position:').' '.
 	form::field('post_position',3,3,(string) $post_position).
-	'</p>'.
-	
-	'<p><label for="post_lang" class="ib">'.__('Page lang:').'</label>'.
-	form::combo('post_lang',$lang_combo,$post_lang).'</p>'.
-	
-	'<p><label for="post_password" class="ib">'.__('Page password:').'</label>'.
+	'</label></p>'.
+	
+	'<p><label for="post_lang">'.__('Page lang:').
+	form::combo('post_lang',$lang_combo,$post_lang).'</label></p>'.
+	
+	'<p><label for="post_password">'.__('Page password:').
 	form::field('post_password',10,32,html::escapeHTML($post_password),'maximal').
-	'</p>'.
-	
-	'<div class="lockable ib">'.
-	'<p><label for="post_url" class="ib">'.__('Basename:').'</label>'.
+	'</label></p>'.
+	
+	'<div class="lockable">'.
+	'<p><label for="post_url">'.__('Basename:').
 	form::field('post_url',10,255,html::escapeHTML($post_url),'maximal').
-	'</p>'.
+	'</label></p>'.
 	'<p class="form-note warn">'.
 	__('Warning: If you set the URL manually, it may conflict with another page.').
@@ -512,5 +506,5 @@
 	{
 		echo
-		'<h4 class="clear">'.__('Attachments').'</h4>';
+		'<h3 class="clear">'.__('Attachments').'</h3>';
 		foreach ($post_media as $f)
 		{
@@ -532,5 +526,5 @@
 			'<li class="media-action"><a class="attachment-remove" id="attachment-'.$f->media_id.'" '.
 			'href="post_media.php?post_id='.$post_id.'&amp;media_id='.$f->media_id.'&amp;remove=1">'.
-			'<img src="images/check-off.png" alt="'.__('Remove').'" /></a>'.
+			'<img src="images/check-off.png" alt="'.__('remove').'" /></a>'.
 			'</li>'.
 			
@@ -541,7 +535,7 @@
 		
 		if (empty($post_media)) {
-			echo '<p class="form-note">'.__('No attachment.').'</p>';
-		}
-		echo '<p><a class="button" href="media.php?post_id='.$post_id.'">'.__('Add files to this page').'</a></p>';
+			echo '<p>'.__('No attachment.').'</p>';
+		}
+		echo '<p><a href="media.php?post_id='.$post_id.'">'.__('Add files to this page').'</a></p>';
 	}
 	
@@ -579,8 +573,8 @@
 	if ($can_edit_page && $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';
 	}
 	
@@ -641,15 +635,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> '.__('Comment:').'</label> '.
@@ -706,14 +700,14 @@
 		switch ($rs->comment_status) {
 			case 1:
-				$img_status = sprintf($img,__('Published'),'check-on.png');
+				$img_status = sprintf($img,__('published'),'check-on.png');
 				break;
 			case 0:
-				$img_status = sprintf($img,__('Unpublished'),'check-off.png');
+				$img_status = sprintf($img,__('unpublished'),'check-off.png');
 				break;
 			case -1:
-				$img_status = sprintf($img,__('Pending'),'check-wrn.png');
+				$img_status = sprintf($img,__('pending'),'check-wrn.png');
 				break;
 			case -2:
-				$img_status = sprintf($img,__('Junk'),'junk.png');
+				$img_status = sprintf($img,__('junk'),'junk.png');
 				break;
 		}
@@ -724,5 +718,5 @@
 		
 		'<td class="nowrap">'.
-		($has_action ? form::checkbox(array('comments[]'),$rs->comment_id,'','','',0,'title="'.__('Select this comment').'"') : '').'</td>'.
+		($has_action ? form::checkbox(array('comments[]'),$rs->comment_id,'','','',0,'title="'.__('select this comment').'"') : '').'</td>'.
 		'<td class="maximal">'.$rs->comment_author.'</td>'.
 		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$rs->comment_dt).'</td>'.
Index: plugins/pings/_admin.php
===================================================================
--- plugins/pings/_admin.php	(revision 1398)
+++ plugins/pings/_admin.php	(revision 1179)
@@ -33,5 +33,5 @@
 
 $core->addBehavior('adminPostHeaders',array('pingsBehaviors','pingJS'));
-$core->addBehavior('adminPostFormItems',array('pingsBehaviors','pingsFormItems'));
+$core->addBehavior('adminPostFormSidebar',array('pingsBehaviors','pingsForm'));
 $core->addBehavior('adminAfterPostCreate',array('pingsBehaviors','doPings'));
 $core->addBehavior('adminAfterPostUpdate',array('pingsBehaviors','doPings'));
Index: plugins/pings/index.php
===================================================================
--- plugins/pings/index.php	(revision 1454)
+++ plugins/pings/index.php	(revision 1179)
@@ -51,10 +51,5 @@
 <body>
 <?php
-
-echo dcPage::breadcrumb(
-	array(
-		__('Plugins') => '',
-		'<span class="page-title">'.__('Pings configuration').'</span>' => ''
-	));
+echo '<h2 class="page-title">'.__('Pings configuration').'</h2>';
 
 if (!empty($_GET['up'])) {
@@ -64,6 +59,6 @@
 echo
 '<form action="'.$p_url.'" method="post">'.
-'<p><label for="pings_active" class="classic">'.form::checkbox('pings_active',1,$core->blog->settings->pings->pings_active).'</label> '.
-__('Activate pings extension').'</p>';
+'<p><label for="pings_active" class="classic">'.form::checkbox('pings_active',1,$core->blog->settings->pings->pings_active).' '.
+__('Activate pings extension').'</label></p>';
 
 $i = 0;
@@ -71,8 +66,8 @@
 {
 	echo
-	'<p><label for="pings_srv_name-'.$i.'" class="classic">'.__('Service name:').'</label> '.
-	form::field(array('pings_srv_name[]','pings_srv_name-'.$i),20,128,html::escapeHTML($n)).' '.
-	'<label for="pings_srv_uri-'.$i.'" class="classic">'.__('Service URI:').'</label> '.
-	form::field(array('pings_srv_uri[]','pings_srv_uri-'.$i),40,255,html::escapeHTML($u));
+	'<p><label for="pings_srv_name-'.$i.'" class="classic">'.__('Service name:').' '.
+	form::field(array('pings_srv_name[]','pings_srv_name-'.$i),20,128,html::escapeHTML($n)).'</label> '.
+	'<label for="pings_srv_uri-'.$i.'" class="classic">'.__('Service URI:').' '.
+	form::field(array('pings_srv_uri[]','pings_srv_uri-'.$i),40,255,html::escapeHTML($u)).'</label>';
 	
 	if (!empty($_GET['test']))
@@ -80,7 +75,7 @@
 		try {
 			pingsAPI::doPings($u,'Example site','http://example.com');
-			echo ' <img src="images/check-on.png" alt="OK" />';
+			echo ' <img src="images/check-on.png" alt="ok" />';
 		} catch (Exception $e) {
-			echo ' <img src="images/check-off.png" alt="'.__('Error').'" /> '.$e->getMessage();
+			echo ' <img src="images/check-off.png" alt="'.__('error').'" /> '.$e->getMessage();
 		}
 	}
@@ -91,8 +86,8 @@
 
 echo
-'<p><label for="pings_srv_name2" class="classic">'.__('Service name:').'</label> '.
-form::field(array('pings_srv_name[]','pings_srv_name2'),20,128).' '.
-'<label for="pings_srv_uri2" class="classic">'.__('Service URI:').'</label> '.
-form::field(array('pings_srv_uri[]','pings_srv_uri2'),40,255).
+'<p><label for="pings_srv_name2" class="classic">'.__('Service name:').' '.
+form::field(array('pings_srv_name[]','pings_srv_name2'),20,128).'</label> '.
+'<label for="pings_srv_uri2" class="classic">'.__('Service URI:').' '.
+form::field(array('pings_srv_uri[]','pings_srv_uri2'),40,255).'</label>'.
 '</p>'.
 
@@ -101,5 +96,5 @@
 '</form>';
 
-echo '<p><a class="button" href="'.$p_url.'&amp;test=1">'.__('Test ping services').'</a></p>';
+echo '<p><a href="'.$p_url.'&amp;test=1">'.__('Test ping services').'</a></p>';
 ?>
 </body>
Index: plugins/pings/lib.pings.php
===================================================================
--- plugins/pings/lib.pings.php	(revision 1398)
+++ plugins/pings/lib.pings.php	(revision 1179)
@@ -41,5 +41,5 @@
 	}
 	
-	public static function pingsFormItems($main,$sidebar,$post)
+	public static function pingsForm($post)
 	{
 		$core =& $GLOBALS['core'];
@@ -59,9 +59,9 @@
 		}
 		
-		$item = '<h5 class="ping-services">'.__('Pings').'</h5>';
+		echo '<h3 class="ping-services">'.__('Pings:').'</h3>';
 		$i = 0;
 		foreach ($pings_uris as $k => $v)
 		{
-			$item .=
+			echo
 			'<p class="ping-services"><label for="pings_do-'.$i.'" class="classic">'.
 			form::checkbox(array('pings_do[]','pings_do-'.$i),html::escapeHTML($v),in_array($v,$pings_do)).' '.
@@ -69,6 +69,4 @@
 			$i++;
 		}
-		$sidebar['options-box']['items']['pings']=$item;
-		
 	}
 	
Index: plugins/pings/post.js
===================================================================
--- plugins/pings/post.js	(revision 1365)
+++ plugins/pings/post.js	(revision 0)
@@ -12,5 +12,5 @@
 			$('p.ping-services:last').after(p.append(a));
 		}
-		$('h5.ping-services').toggleWithLegend($('p.ping-services'),{
+		$('h3.ping-services').toggleWithLegend($('p.ping-services'),{
 			cookie: 'dcx_ping_services'
 		});
Index: plugins/simpleMenu/_admin.php
===================================================================
--- plugins/simpleMenu/_admin.php	(revision 1292)
+++ plugins/simpleMenu/_admin.php	(revision 1179)
@@ -25,5 +25,5 @@
 }
 
-$_menu['Blog']->addItem(__('Simple menu'),'plugin.php?p=simpleMenu','index.php?pf=simpleMenu/icon-small.png',
+$_menu['Plugins']->addItem(__('Simple menu'),'plugin.php?p=simpleMenu','index.php?pf=simpleMenu/icon-small.png',
                 preg_match('/plugin.php\?p=simpleMenu(&.*)?$/',$_SERVER['REQUEST_URI']),
                 $core->auth->check('usage,contentadmin',$core->blog->id));
Index: plugins/simpleMenu/index.php
===================================================================
--- plugins/simpleMenu/index.php	(revision 1474)
+++ plugins/simpleMenu/index.php	(revision 1273)
@@ -233,5 +233,5 @@
 				
 					// All done successfully, return to menu items list
-					http::redirect($p_url.'&amp;added=1');
+					http::redirect($p_url.'&added=1');
 				} else {
 					throw new Exception(__('Label and URL of menu item are mandatory.'));
@@ -268,5 +268,5 @@
 				
 				// All done successfully, return to menu items list
-				http::redirect($p_url.'&amp;removed=1');
+				http::redirect($p_url.'&removed=1');
 			} else {
 				throw new Exception(__('No menu items selected.'));
@@ -302,5 +302,5 @@
 
 			// All done successfully, return to menu items list
-			http::redirect($p_url.'&amp;updated=1');
+			http::redirect($p_url.'&updated=1');
 		}
 		catch (Exception $e) {
@@ -339,5 +339,5 @@
 
 			// All done successfully, return to menu items list
-			http::redirect($p_url.'&amp;neworder=1');
+			http::redirect($p_url.'&neworder=1');
 		} 
 		catch (Exception $e) {
@@ -368,19 +368,4 @@
 <?php
 
-if ($step) {
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			$page_title => $p_url,
-			'<span class="page-title">'.__('Add item').'</span>' => ''
-		));
-} else {
-	echo dcPage::breadcrumb(
-		array(
-			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.$page_title.'</span>' => ''
-		));
-}
-
 if (!empty($_GET['added'])) {
 	dcPage::message(__('Menu item has been successfully added.'));
@@ -396,7 +381,9 @@
 }
 
-if ($step)
+if ($step) 
 {
 	// Formulaire d'ajout d'un item
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_title.'</a> &rsaquo; <span class="page-title">'.__('Add item').'</span></h2>';
+	
 	switch ($step) {
 		case 1:
@@ -467,6 +454,10 @@
 // Liste des items
 if (!$step) {
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
+}
+
+if (!$step) {
 	echo '<form id="menuitemsappend" action="'.$p_url.'&amp;add=1" method="post">';
-	echo '<p class="top-add">'.$core->formNonce().'<input class="button add" type="submit" name="appendaction" value="'.__('Add an item').'" /></p>';
+	echo '<p>'.$core->formNonce().'<input class="add" type="submit" name="appendaction" value="'.__('Add an item').'" /></p>';
 	echo '</form>';
 }
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 1471)
+++ plugins/tags/_admin.php	(revision 1239)
@@ -18,8 +18,10 @@
 require dirname(__FILE__).'/_widgets.php';
 
-$core->addBehavior('adminPostFormItems',array('tagsBehaviors','tagsField'));
+$core->addBehavior('adminPostFormSidebar',array('tagsBehaviors','tagsField'));
 
 $core->addBehavior('adminAfterPostCreate',array('tagsBehaviors','setTags'));
 $core->addBehavior('adminAfterPostUpdate',array('tagsBehaviors','setTags'));
+
+$core->addBehavior('adminPageHeaders',array('tagsBehaviors','pageHeaders'));
 
 $core->addBehavior('adminPostHeaders',array('tagsBehaviors','postHeaders'));
@@ -71,5 +73,5 @@
 	}
 	
-	public static function tagsField($main,$sidebar,$post)
+	public static function tagsField($post)
 	{
 		$meta =& $GLOBALS['core']->meta;
@@ -80,7 +82,8 @@
 			$value = ($post) ? $meta->getMetaStr($post->post_meta,'tag') : '';
 		}
-		$sidebar['metas-box']['items']['post_tags']=
-		'<h5><label class="s-tags" for="post_tags">'.__('Tags').'</label></h5>'.
-		'<div class="p s-tags" id="tags-edit">'.form::textarea('post_tags',20,3,$value,'maximal').'</div>';
+		
+		echo
+		'<h3><label for="post_tags">'.__('Tags:').'</label></h3>'.
+		'<div class="p" id="tags-edit">'.form::textarea('post_tags',20,3,$value,'maximal').'</div>';
 	}
 	
@@ -98,4 +101,33 @@
 			}
 		}
+	}
+
+	public static function pageHeaders()
+	{
+		$tag_url = $GLOBALS['core']->blog->url.$GLOBALS['core']->url->getURLFor('tag');
+		
+		$opts = $GLOBALS['core']->auth->getOptions();
+		$type = isset($opts['tag_list_format']) ? $opts['tag_list_format'] : 'more';
+		
+		return 
+		'<script type="text/javascript" src="index.php?pf=tags/js/jquery.autocomplete.js"></script>'.
+		'<script type="text/javascript" src="index.php?pf=tags/js/page.js"></script>'.
+		'<script type="text/javascript">'."\n".
+		"//<![CDATA[\n".
+		"metaEditor.prototype.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag=';\n".
+		"metaEditor.prototype.meta_type = '".html::escapeJS($type)."';\n".
+		"metaEditor.prototype.text_confirm_remove = '".html::escapeJS(__('Are you sure you want to remove this %s?'))."';\n".
+		"metaEditor.prototype.text_add_meta = '".html::escapeJS(__('Add a %s to this entry'))."';\n".
+		"metaEditor.prototype.text_choose = '".html::escapeJS(__('Choose from list'))."';\n".
+		"metaEditor.prototype.text_all = '".html::escapeJS(__('all'))."';\n".
+		"metaEditor.prototype.text_separation = '';\n".
+		"jsToolBar.prototype.elements.tag.title = '".html::escapeJS(__('Tag'))."';\n".
+		"jsToolBar.prototype.elements.tag.url = '".html::escapeJS($tag_url)."';\n".
+		"dotclear.msg.tags_autocomplete = '".html::escapeJS(__('used in %e - frequency %p%'))."';\n".
+		"dotclear.msg.entry = '".html::escapeJS(__('entry'))."';\n".
+		"dotclear.msg.entries = '".html::escapeJS(__('entries'))."';\n".
+		"\n//]]>\n".
+		"</script>\n".
+		'<link rel="stylesheet" type="text/css" href="index.php?pf=tags/style.css" />';
 	}
 	
@@ -229,16 +261,11 @@
 		if ($action == 'tags')
 		{
-			echo dcPage::breadcrumb(
-				array(
-					html::escapeHTML($core->blog->name) => '',
-					__('Entries') => 'posts.php',
-					'<span class="page-title">'.__('Add tags to entries').'</span>' => ''
-			)).
+			echo
+			'<h2 class="page-title">'.__('Add tags to entries').'</h2>'.
 			'<form action="'.$form_uri.'" method="post">'.
-			$hidden_fields->getEntries().
 			'<div><label for="new_tags" class="area">'.__('Tags to add:').'</label> '.
 			form::textarea('new_tags',60,3).
 			'</div>'.
-			$hidden_fields->getHidden().
+			$hidden_fields.
 			$core->formNonce().
 			form::hidden(array('action'),'tags').
@@ -264,10 +291,6 @@
 				}
 			}
-			echo dcPage::breadcrumb(
-				array(
-					html::escapeHTML($core->blog->name) => '',
-					__('Entries') => 'posts.php',
-					'<span class="page-title">'.__('Remove selected tags from entries').'</span>' => ''
-			));
+			
+			echo '<h2 class="page-title">'.__('Remove selected tags from entries').'</h2>';
 			
 			if (empty($tags)) {
@@ -322,7 +345,7 @@
 		echo
 		'<fieldset><legend>'.__('Tags').'</legend>'.
-		'<p><label for="user_tag_list_format">'.__('Tags list format:').'</label> '.
+		'<p><label for="user_tag_list_format">'.__('Tags list format:').' '.
 		form::combo('user_tag_list_format',$combo,$value).
-		'</p></fieldset>';
+		'</label></p></fieldset>';
 	}
 	
Index: plugins/tags/_define.php
===================================================================
--- plugins/tags/_define.php	(revision 1392)
+++ plugins/tags/_define.php	(revision 1179)
@@ -18,6 +18,5 @@
 	/* Version */			'1.2',
 	array(
-		'permissions' =>	'usage,contentadmin',
-		'priority' =>		998
+		'permissions' =>	'usage,contentadmin'
 	)
 );
Index: plugins/tags/js/page.js
===================================================================
--- plugins/tags/js/page.js	(revision 1240)
+++ plugins/tags/js/page.js	(revision 1240)
@@ -0,0 +1,70 @@
+$(function () {
+    $('#edit-entry').onetabload(function () {
+        var tags_edit = $('#tags-edit');
+        var post_id = $('#id');
+        var meta_field = null;
+        if (tags_edit.length > 0) {
+            post_id = (post_id.length > 0) ? post_id.get(0).value : false;
+            if (post_id == false) {
+                meta_field = $('<input type="hidden" name="post_tags" />');
+                meta_field.val($('#post_tags').val());
+            }
+            var mEdit = new metaEditor(tags_edit, meta_field, 'tag');
+            mEdit.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag=';
+            mEdit.displayMeta('tag', post_id);
+            window.dc_tag_editor = mEdit;
+        }
+    });
+});
+jsToolBar.prototype.elements.tagSpace = {
+    type: 'space'
+};
+jsToolBar.prototype.elements.tag = {
+    type: 'button',
+    title: 'Keyword',
+    fn: {}
+};
+jsToolBar.prototype.elements.tag.context = 'post';
+jsToolBar.prototype.elements.tag.icon = 'index.php?pf=tags/img/tag-add.png';
+jsToolBar.prototype.elements.tag.fn.wiki = function () {
+    this.encloseSelection('', '', function (str) {
+        if (str == '') {
+            window.alert(dotclear.msg.no_selection);
+            return '';
+        }
+        if (str.indexOf(',') != -1) {
+            return str;
+        } else {
+            return '[' + str + '|tag:' + str + ']';
+        }
+    });
+};
+jsToolBar.prototype.elements.tag.fn.xhtml = function () {
+    var url = this.elements.tag.url;
+    this.encloseSelection('', '', function (str) {
+        if (str == '') {
+            window.alert(dotclear.msg.no_selection);
+            return '';
+        }
+        if (str.indexOf(',') != -1) {
+            return str;
+        } else {
+            return '<a href="' + this.stripBaseURL(url + '/' + str) + '">' + str + '</a>';
+        }
+    });
+};
+jsToolBar.prototype.elements.tag.fn.wysiwyg = function () {
+    var t = this.getSelectedText();
+    if (t == '') {
+        window.alert(dotclear.msg.no_selection);
+        return;
+    }
+    if (t.indexOf(',') != -1) {
+        return;
+    }
+    var n = this.getSelectedNode();
+    var a = document.createElement('a');
+    a.href = this.stripBaseURL(this.elements.tag.url + '/' + t);
+    a.appendChild(n);
+    this.insertNode(a);
+};
Index: plugins/tags/js/post.js
===================================================================
--- plugins/tags/js/post.js	(revision 1392)
+++ plugins/tags/js/post.js	(revision 1112)
@@ -58,9 +58,4 @@
 		});
 	});
-			
-	$('h5 .s-tags').toggleWithLegend($('.s-tags').not('label'),{
-			cookie: 'post_tags'
-	});
-
 });
 
Index: plugins/tags/tag_posts.php
===================================================================
--- plugins/tags/tag_posts.php	(revision 1480)
+++ plugins/tags/tag_posts.php	(revision 1288)
@@ -109,12 +109,6 @@
 <body>
 
-<?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Tags') => $p_url.'&amp;m=tags',
-		'<span class="page-title">'.__('Tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'.'</span>' => ''
-	));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
+<span class="page-title"><?php echo __('Edit tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'; ?></span></h2>
 
 <?php
@@ -130,7 +124,6 @@
 	{
 		echo
-		'<div class="fieldset">'.
 		'<form action="'.$this_url.'" method="post">'.
-		'<h3>'.__('Actions for this tag').'</h3>'.
+		'<div class="fieldset"><h3>'.__('Actions for this tag').'</h3>'.
 		'<p><label for="new_tag_id">'.__('Edit tag name:').'</label>'.
 		form::field('new_tag_id',20,255,html::escapeHTML($tag)).
@@ -162,5 +155,5 @@
 	'<p class="col right"><label for="action" class="classic">'.__('Selected entries action:').'</label> '.
 	form::combo('action',$combo_action).
-	'<input type="submit" value="'.__('OK').'" /></p>'.
+	'<input type="submit" value="'.__('ok').'" /></p>'.
 	form::hidden('post_type','').
 	form::hidden('redir',$p_url.'&amp;m=tag_posts&amp;tag='.
Index: plugins/tags/tags.php
===================================================================
--- plugins/tags/tags.php	(revision 1358)
+++ plugins/tags/tags.php	(revision 1179)
@@ -20,11 +20,6 @@
 
 <body>
-<?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Tags').'</span>' => ''
-	));
-?>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
+<span class="page-title"><?php echo __('Tags'); ?></span></h2>
 
 <?php
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 1454)
+++ plugins/themeEditor/_admin.php	(revision 1179)
@@ -26,5 +26,5 @@
 	{
 		if ($id != 'default' && $core->auth->isSuperAdmin()) {
-			return '<p><a href="plugin.php?p=themeEditor" class="button">'.__('Edit theme files').'</a></p>';
+			return '<p><a href="plugin.php?p=themeEditor" class="button">'.__('Theme Editor').'</a></p>';
 		}
 	}
@@ -54,8 +54,8 @@
 		
 		'<p><label for="colorsyntax" class="classic">'.
-		form::checkbox('colorsyntax',1,$core->auth->user_prefs->interface->colorsyntax).'</label>'.
-		__('Syntax color').
+		form::checkbox('colorsyntax',1,$core->auth->user_prefs->interface->colorsyntax).' '.
+		__('Syntax color').'</label></p>'.
+
 		'<br class="clear" />'. //Opera sucks
-		'</p>'.
 		'</fieldset>';
 	}
Index: plugins/themeEditor/index.php
===================================================================
--- plugins/themeEditor/index.php	(revision 1382)
+++ plugins/themeEditor/index.php	(revision 1179)
@@ -61,5 +61,5 @@
 <html>
 <head>
-  <title><?php echo __('Edit theme files'); ?></title>
+  <title><?php echo __('Theme Editor'); ?></title>
   <link rel="stylesheet" type="text/css" href="index.php?pf=themeEditor/style.css" />
   <script type="text/javascript">
@@ -86,12 +86,6 @@
 
 <body>
-<?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Edit theme files').'</span>' => ''
-	));
-?>
+<?php echo '<h2>'.html::escapeHTML($core->blog->name).
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Theme Editor').'</span></h2>'; ?>
 
 <p><strong><?php echo sprintf(__('Your current theme on this blog is "%s".'),html::escapeHTML($T['name'])); ?></strong></p>
Index: plugins/userPref/_admin.php
===================================================================
--- plugins/userPref/_admin.php	(revision 1293)
+++ plugins/userPref/_admin.php	(revision 1179)
@@ -12,5 +12,5 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$_menu['System']->addItem('user:preferences','plugin.php?p=userPref','index.php?pf=userPref/icon.png',
+$_menu['Plugins']->addItem('user:preferences','plugin.php?p=userPref','index.php?pf=userPref/icon.png',
 		preg_match('/plugin.php\?p=userPref(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin());
Index: plugins/userPref/index.php
===================================================================
--- plugins/userPref/index.php	(revision 1474)
+++ plugins/userPref/index.php	(revision 1274)
@@ -81,5 +81,5 @@
 	
 	return
-	'<tr class="line">'.
+	'<tr>'.
 	'<td scope="row"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
@@ -93,4 +93,9 @@
   <title>user:preferences</title>
   <?php echo dcPage::jsPageTabs($part); ?>
+  <style type="text/css">
+	table.prefs { border: 1px solid #999; margin-bottom: 2em; }
+	table.prefs th { background: #f5f5f5; color: #444; padding-top: 0.3em; padding-bottom: 0.3em; }
+	p.anchor-nav {float: right; }
+  </style>
 	<script type="text/javascript">
 	//<![CDATA[
@@ -111,11 +116,4 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		__('System') => '',
-		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.__('user:preferences').'</span>' => ''
-	));
-
 if (!empty($_GET['upd'])) {
 	dcPage::message(__('Preferences successfully updated'));
@@ -126,9 +124,10 @@
 }
 ?>
-
-<div id="local" class="multi-part" title="<?php echo __('User preferences'); ?>">
+<h2><?php echo html::escapeHTML($core->auth->userID()); ?> &rsaquo; <span class="page-title">user:preferences</span></h2>
+
+<div id="local" class="multi-part" title="<?php echo __('user preferences'); ?>">
 
 <?php 
-$table_header = '<table class="prefs" id="%s"><caption class="as_h3">%s</caption>'.
+$table_header = '<table class="prefs" id="%s"><caption>%s</caption>'.
 '<thead>'.
 '<tr>'."\n".
@@ -185,5 +184,5 @@
 </div>
 
-<div id="global" class="multi-part" title="<?php echo __('Global preferences'); ?>">
+<div id="global" class="multi-part" title="<?php echo __('global preferences'); ?>">
 
 <?php
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 1280)
+++ plugins/widgets/_widgets_functions.php	(revision 1253)
@@ -29,8 +29,6 @@
 		($w->title ? '<h2><label for="q">'.html::escapeHTML($w->title).'</label></h2>' : '').
 		'<form action="'.$core->blog->url.'" method="get">'.
-		'<fieldset>'.
 		'<p><input type="text" size="10" maxlength="255" id="q" name="q" value="'.$value.'" /> '.
 		'<input type="submit" class="submit" value="ok" /></p>'.
-		'</fieldset>'.
 		'</form>'.
 		($w->content_only ? '' : '</div>');
Index: plugins/widgets/class.widgets.php
===================================================================
--- plugins/widgets/class.widgets.php	(revision 1474)
+++ plugins/widgets/class.widgets.php	(revision 1179)
@@ -238,13 +238,13 @@
 				case 'text':
 					$res .=
-					'<p><label for="'.$wfid.'">'.$s['title'].'</label> '.
+					'<p><label for="'.$wfid.'">'.$s['title'].' '.
 					form::field(array($iname,$wfid),20,255,html::escapeHTML($s['value']),'maximal').
-					'</p>';
+					'</label></p>';
 					break;
 				case 'textarea':
 					$res .=
-					'<p><label for="'.$wfid.'">'.$s['title'].'</label> '.
+					'<p><label for="'.$wfid.'">'.$s['title'].' '.
 					form::textarea(array($iname,$wfid),30,5,html::escapeHTML($s['value']),'maximal').
-					'</p>';
+					'</label></p>';
 					break;
 				case 'check':
@@ -257,7 +257,7 @@
 				case 'combo':
 					$res .=
-					'<p><label for="'.$wfid.'">'.$s['title'].'</label> '.
+					'<p><label for="'.$wfid.'">'.$s['title'].' '.
 					form::combo(array($iname,$wfid),$s['options'],$s['value']).
-					'</p>';
+					'</label></p>';
 					break;
 			}
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 1483)
+++ plugins/widgets/index.php	(revision 1179)
@@ -188,15 +188,10 @@
 <body>
 <?php
-echo dcPage::breadcrumb(
-	array(
-		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Widgets').'</span>' => ''
-	));
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Widgets').'</span></h2>';
 
 # All widgets
 echo
 '<form id="listWidgets" action="'.$p_url.'" method="post"  class="widgets">'.
-'<h3>'.__('Available widgets').'</h3>'.
-__('Move widgets from this list to one of the sidebars.').
+'<fieldset><legend>'.__('Available widgets').'</legend>'.
 '<div id="widgets">';
 
@@ -206,7 +201,7 @@
 	'<div>'.form::hidden(array('w[void][0][id]'),html::escapeHTML($w->id())).
 	'<p class="widget-name">'.form::field(array('w[void][0][order]'),2,3,0,'hideControl').' '.
-	$w->name().($w->desc() != '' ? ' <span class="form-note">'.__($w->desc()).'</span>' : '').'</p>'.
-	'<p class="js-remove"><label class="classic">'.__('Append to:').'</label> '.
-	form::combo(array('addw['.$w->id().']'),$append_combo).'</p>'.
+	$w->name().($w->desc() != '' ? ' <span class="form-note">('.__($w->desc()).')</span>' : '').'</p>'.
+	'<p class="js-remove"><label class="classic">'.__('Append to:').' '.
+	form::combo(array('addw['.$w->id().']'),$append_combo).'</label></p>'.
 	'<div class="widgetSettings">'.$w->formSettings('w[void][0]',$j).'</div>'.
 	'</div>';
@@ -216,4 +211,5 @@
 echo
 '</div>'.
+'</fieldset>'.
 '<p><input type="submit" class="js-remove" name="append" value="'.__('Add widgets to sidebars').'" />'.
 $core->formNonce().'</p>'.
@@ -223,5 +219,5 @@
 # Nav sidebar
 echo
-'<div id="sidebarNav" class="widgets fieldset">'.
+'<div id="sidebarNav" class="widgets">'.
 sidebarWidgets('dndnav',__('Navigation sidebar'),$widgets_nav,'nav',$__default_widgets['nav'],$j).
 '</div>';
@@ -229,5 +225,5 @@
 # Extra sidebar
 echo
-'<div id="sidebarExtra" class="widgets fieldset">'.
+'<div id="sidebarExtra" class="widgets">'.
 sidebarWidgets('dndextra',__('Extra sidebar'),$widgets_extra,'extra',$__default_widgets['extra'],$j).
 '</div>';
@@ -235,5 +231,5 @@
 # Custom sidebar
 echo
-'<div id="sidebarCustom" class="widgets fieldset">'.
+'<div id="sidebarCustom" class="widgets">'.
 sidebarWidgets('dndcustom',__('Custom sidebar'),$widgets_custom,'custom',$__default_widgets['custom'],$j).
 '</div>';
@@ -252,5 +248,5 @@
 'drag it from the Available widgets list on the left to one of the sidebars on the right of this page. You can order '.
 'your widgets in a sidebar by dragging them up or down. You must update sidebars to apply your changes.').'</p>'.
-'<p>'.__('Once included in a sidebar, widgets have configuration options that you can reach by clicking on the arrow next '.
+'<p>'.__('Once included in a sidebar, widgets have configuration options that you can reach by clicking on the + sign next '.
 'to their name.').'</p>'.
 '<p>'.__('Reset sidebars to get back to default widgets installation.').'</p>'.
@@ -316,5 +312,5 @@
 function sidebarWidgets($id,$title,$widgets,$pr,$default_widgets,&$j)
 {
-	$res = '<h3>'.$title.'</h3><div id="'.$id.'">';
+	$res = '<fieldset><legend>'.$title.'</legend><div id="'.$id.'">';
 	
 	if (!($widgets instanceof dcWidgets))
@@ -335,5 +331,5 @@
 		'<div>'.form::hidden(array($iname.'[id]'),html::escapeHTML($w->id())).
 		'<p class="widget-name">'.form::field(array($iname.'[order]'),2,3,(string) $i,'js-hide','',0,'title="'.__('order').'"').' '.
-		$w->name().($w->desc() != '' ? ' <!-- <span class="form-note">'.__($w->desc()).'</span> -->' : '').'</p>'.
+		$w->name().($w->desc() != '' ? ' <span class="form-note">('.__($w->desc()).')</span>' : '').'</p>'.
 		'<p class="removeWidget js-remove"><label class="classic">'.
 		form::checkbox(array($iname.'[_rem]'),'1',0).' '.__('Remove widget').
@@ -346,5 +342,5 @@
 	}
 	
-	$res .= '</div>';
+	$res .= '</div></fieldset>';
 	
 	return $res;
Index: plugins/widgets/style.css
===================================================================
--- plugins/widgets/style.css	(revision 1483)
+++ plugins/widgets/style.css	(revision 665)
@@ -1,51 +1,53 @@
 #listWidgets {
 	float: left;
-	width: 45%;
-	background: #eee;
-	padding: 1.5em 1%; 
-	border: 1px solid #ccc;
-	margin-left: 1.5em;
-}
-#widgets .widget-name {
-	background: #fff;
-	min-height: 3em;
-}
-#listWidgets h3 {
-	color: #333;
+	width: 33%;
 }
 
 #sidebarsWidgets {
 	float: left;
-	width: 45%;
-	margin-left: 3%;
-	padding: 0 1%;
+	width: 65%;
+	margin-left: 1%;
 }
+#sidebarNav {
+	float: left;
+	width: 50%;
+	margin-left: 0%;
+}
+#sidebarExtra {
+	float: left;
+	width: 49%;
+	margin-left: 1%;
+}
+#sidebarCustom {
+	float: left;
+	width: 100%;
+}
+
 #sidebarsControl {
 	clear: left;
 }
-.widgets.fieldset {
-	margin-bottom: 2em;
-}
 
-#widgets, #dndnav, #dndextra, #dndcustom {
+#widgets, #dndnav, #dndextra {
 	padding: 1em 0;
 }
 
-.widget-name {
-	background: #eef;
+.widgets fieldset {
+	border: 1px solid #999;
+}
+.widgets legend {
+	border: 1px solid #999;
+}
+
+.widgets p.widget-name {
+	background: #E5E3DA;
 	color: #000;
-	padding: 4px 6px;
+	padding: 4px;
 	margin: 0.5em 0 0 0;
 	border-width: 1px 1px 1px 1px;
 	border-style: solid;
-	border-color: #999;
+	border-color: #666;
 	font-weight: bold;
 }
-.widget-name span {
-	display: block;
-	font-style: normal;
-	font-size: 1.1rem;
-}
-.widget-name img {
+.widgets p.widget-name img {
 	cursor: pointer;
 	margin-bottom: -1px;
@@ -56,6 +58,6 @@
 	border-style: solid;
 	border-color: #666;
-	padding: 4px 6px;
-	background: #f5f5f5;
+	padding: 4px;
+	background: #E5E3DA;
 }
 
