Index: admin/install/index.php
===================================================================
--- admin/install/index.php	(revision 240)
+++ admin/install/index.php	(revision 199)
@@ -191,13 +191,5 @@
 		$core->auth->user_prefs->dashboard->put('dcnews',true,'boolean','',null,true);
 		$core->auth->user_prefs->dashboard->put('quickentry',true,'boolean','',null,true);
-
-		# Add accessibility options
-		$core->auth->user_prefs->addWorkspace('accessibility');
-		$core->auth->user_prefs->accessibility->put('nodragdrop',false,'boolean','',null,true);
-
-		# Add user interface options
-		$core->auth->user_prefs->addWorkspace('interface');
-		$core->auth->user_prefs->interface->put('enhanceduploader',false,'boolean','',null,true);
-
+		
 		# Add default favorites
 		$core->auth->user_prefs->addWorkspace('favorites');
Index: admin/js/_index.js
===================================================================
--- admin/js/_index.js	(revision 234)
+++ admin/js/_index.js	(revision 3)
@@ -4,10 +4,10 @@
 		var contentTb = new jsToolBar($('#post_content',f)[0]);
 		contentTb.switchMode($('#post_format',f).val());
-
+		
 		$('input[name=save]',f).click(function() {
 			quickPost(f,-2);
 			return false;
 		});
-
+		
 		if ($('input[name=save-publish]',f).length > 0) {
 			var btn = $('<input type="submit" value="' + $('input[name=save-publish]',f).val() + '" tabindex="3" />');
@@ -19,10 +19,10 @@
 			});
 		}
-
+		
 		function quickPost(f,status) {
 			if (contentTb.getMode() == 'wysiwyg') {
 				contentTb.syncContents('iframe');
 			}
-
+			
 			var params = {
 				f: 'quickPost',
@@ -35,7 +35,7 @@
 				post_lang: $('#post_lang',f).val()
 			}
-
+			
 			$('p.qinfo',f).remove();
-
+			
 			$.post('services.php',params,function(data) {
 				if ($('rsp[status=failed]',data).length > 0) {
@@ -57,13 +57,13 @@
 					}
 				}
-
+				
 				$('fieldset',f).prepend(msg);
 			});
 		}
 	}
-
+	
 	// allow to hide quick entry div, and remember choice
 	$('#quick h3').toggleWithLegend($('#quick').children().not('h3'),{
 		cookie: 'dcx_quick_entry',
-	}, positionFooter);
+	});
 });
Index: admin/js/_media.js
===================================================================
--- admin/js/_media.js	(revision 250)
+++ admin/js/_media.js	(revision 224)
@@ -17,5 +17,12 @@
 	
 	if (!$.browser.opera) {
-		if (dotclear.candyUpload_force_init == '1') {
+		var cue = $('<a/>').attr({'id':'candyupload-enable','href':'#'}).append(dotclear.msg.activate_enhanced_uploader)
+		.click(function() {
+			candyUploadInit();
+			return false;
+		});
+		$('#media-upload>fieldset').append($('<div></div>').append(cue));
+		
+		if ($.cookie('dc_candy_upl') == 1) {
 			candyUploadInit();
 		}
@@ -36,6 +43,16 @@
 				createControls: function() {
 					var _this = this;
+					var cud = $('<a/>').attr({'id':'candyupload-disable','href':'#'}).append(dotclear.msg.disable_enhanced_uploader)
+					.click(function() {
+						_this.upldr.destroy();
+						_this.ctrl.block.empty().remove();
+						$('#media-upload').show();
+						delete _this;
+						$.cookie('dc_candy_upl','',{expires: -1});
+						return false;
+					});
 					this.ctrl.btn_browse.hide();
 					this.ctrl.msg.html(dotclear.msg.load_enhanced_uploader);
+					this.ctrl.disable = $('<div class="cu-disable"></div>').append(cud).appendTo(this.ctrl.block);
 				},
 				flashReady: function() {
@@ -50,4 +67,5 @@
 						});
 					});
+					this.ctrl.block.append(this.ctrl.disable);
 				},
 				uploadSuccess: function(o,data) {
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 234)
+++ admin/js/common.js	(revision 163)
@@ -315,29 +315,4 @@
 	}
 };
-
-/* Sticky footer
--------------------------------------------------------- */
-function positionFooter() {
-	$("#wrapper").css({ overflow: "auto" });
-	var page_height = $("#top").height() + $("#wrapper").height() - $("#footer").height();
-	if( page_height < $(window).height() ){
-		// calcul de la largeur
-		var page_width = $(document).width() - 30;
-		$("#footer").css({
-			position: "absolute",
-			bottom: "10px",
-			width: page_width+"px",
-			padding: ".75em 0",
-			marginbottom: "0"
-		});
-	} else {
-		$("#footer").css({
-			position: "static",
-			padding: ".75em 0",
-			width: "auto",
-		});
-	}
-
-}
 
 /* On document ready
@@ -392,5 +367,28 @@
 	// Sticky footer
 	positionFooter();
+	function positionFooter() {
+		$("#wrapper").css({ overflow: "auto" });
+		var page_height = $("#top").height() + $("#wrapper").height() - $("#footer").height();
+		if( page_height < $(window).height() ){
+			// calcul de la largeur
+			var page_width = $(document).width() - 30;
+			$("#footer").css({
+				position: "absolute",
+				bottom: "10px",
+				width: page_width+"px",
+				padding: ".75em 0",
+				marginbottom: "0"
+			});
+		} else {
+			$("#footer").css({
+				position: "static",
+				padding: ".75em 0",
+				width: "auto",
+			});
+		}
+
+	}
 	$(window).resize(positionFooter);
+
 });
 
Index: admin/js/filters.js
===================================================================
--- admin/js/filters.js	(revision 226)
+++ admin/js/filters.js	(revision 226)
@@ -0,0 +1,5 @@
+$(function() {
+	$('#toggle-filters').click(function(e) {
+		$('#filters').toggle('slow');
+	});
+});
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 241)
+++ admin/media.php	(revision 217)
@@ -242,16 +242,7 @@
 /* DISPLAY Main page
 -------------------------------------------------------- */
-$core->auth->user_prefs->addWorkspace('interface');
-$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
-
 call_user_func($open_f,__('Media manager'),
-	'<script type="text/javascript">'."\n".
-	"//<![CDATA["."\n".
-	dcPage::jsVar('dotclear.candyUpload_force_init',$user_ui_enhanceduploader)."\n".
-	"//]]>".
-	"</script>".
 	dcPage::jsLoad('js/_media.js').
-	(($user_ui_enhanceduploader && $core_media_writable) ? dcPage::jsCandyUpload(array('d='.$d)) : '')
-	);
+	($core_media_writable ? dcPage::jsCandyUpload(array('d='.$d)) : ''));
 
 if (!empty($_GET['mkdok'])) {
@@ -346,6 +337,6 @@
 	'<input type="file" id="upfile" name="upfile" size="20" />'.
 	'</label></p>'.
-	'<p><label for="upfiletitle">'.__('Title:').form::field(array('upfiletitle','upfiletitle'),35,255).'</label></p>'.
-	'<p><label for="upfilepriv" class="classic">'.form::checkbox(array('upfilepriv','upfilepriv'),1).' '.
+	'<p><label for="upfiletitle">'.__('Title:').form::field(array('upfiletitle'),35,255).'</label></p>'.
+	'<p><label for="upfilepriv" class="classic">'.form::checkbox(array('upfilepriv'),1).' '.
 	__('Private').'</label></p>'.
 	'<p><input type="submit" value="'.__('send').'" />'.
@@ -361,5 +352,5 @@
 	$core->formNonce().
 	'<p><label for="newdir">'.__('Directory Name:').
-	form::field(array('newdir','newdir'),35,255).'</label></p>'.
+	form::field(array('newdir'),35,255).'</label></p>'.
 	'<p><input type="submit" value="'.__('Save').'" />'.
 	form::hidden(array('d'),html::escapeHTML($d)).'</p>'.
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 158)
+++ admin/posts.php	(revision 242)
@@ -48,5 +48,4 @@
 	# Filter form we'll put in html_block
 	$users_combo = $categories_combo = array();
-	$users_combo['-'] = $categories_combo['-'] = '';
 	while ($users->fetch())
 	{
@@ -69,5 +68,4 @@
 	
 	$status_combo = array(
-	'-' => ''
 	);
 	foreach ($core->blog->getAllPostStatus() as $k => $v) {
@@ -76,5 +74,4 @@
 	
 	$selected_combo = array(
-	'-' => '',
 	__('selected') => '1',
 	__('not selected') => '0'
@@ -82,10 +79,8 @@
 	
 	# Months array
-	$dt_m_combo['-'] = '';
 	while ($dates->fetch()) {
 		$dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month();
 	}
 	
-	$lang_combo['-'] = '';
 	while ($langs->fetch()) {
 		$lang_combo[$langs->post_lang] = $langs->post_lang;
@@ -138,15 +133,4 @@
 /* Get posts
 -------------------------------------------------------- */
-$user_id = !empty($_GET['user_id']) ?	$_GET['user_id'] : '';
-$cat_id = !empty($_GET['cat_id']) ?	$_GET['cat_id'] : '';
-$status = isset($_GET['status']) ?	$_GET['status'] : '';
-$selected = isset($_GET['selected']) ?	$_GET['selected'] : '';
-$month = !empty($_GET['month']) ?		$_GET['month'] : '';
-$lang = !empty($_GET['lang']) ?		$_GET['lang'] : '';
-$sortby = !empty($_GET['sortby']) ?	$_GET['sortby'] : 'post_dt';
-$order = !empty($_GET['order']) ?		$_GET['order'] : 'desc';
-
-$show_filters = false;
-
 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
 $nb_per_page =  30;
@@ -159,70 +143,55 @@
 }
 
+$params = new ArrayObject();
 $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
 $params['no_content'] = true;
 
-# - User filter
-if ($user_id !== '' && in_array($user_id,$users_combo)) {
-	$params['user_id'] = $user_id;
-	$show_filters = true;
-}
-
-# - Categories filter
-if ($cat_id !== '' && in_array($cat_id,$categories_combo)) {
-	$params['cat_id'] = $cat_id;
-	$show_filters = true;
-}
-
-# - Status filter
-if ($status !== '' && in_array($status,$status_combo)) {
-	$params['post_status'] = $status;
-	$show_filters = true;
-}
-
-# - Selected filter
-if ($selected !== '' && in_array($selected,$selected_combo)) {
-	$params['post_selected'] = $selected;
-	$show_filters = true;
-}
-
-# - Month filter
-if ($month !== '' && in_array($month,$dt_m_combo)) {
-	$params['post_month'] = substr($month,4,2);
-	$params['post_year'] = substr($month,0,4);
-	$show_filters = true;
-}
-
-# - Lang filter
-if ($lang !== '' && in_array($lang,$lang_combo)) {
-	$params['post_lang'] = $lang;
-	$show_filters = true;
-}
-
-# - Sortby and order filter
-if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
-	if ($order !== '' && in_array($order,$order_combo)) {
-		$params['order'] = $sortby.' '.$order;
-	}
-	
-	if ($sortby != 'post_dt' || $order != 'desc') {
-		$show_filters = true;
-	}
-}
+$filterSet = new dcFilterSet('posts.php');
+class monthComboFilter extends comboFilter {
+	public function applyFilter($params) {
+		$month=$this->values[0];
+		$params['post_month'] = substr($month,4,2);
+		$params['post_year'] = substr($month,0,4);
+	}
+}
+$filterSet
+	->addFilter(new comboFilter(
+		'users',__('Author'), 'user', $users_combo))
+	->addFilter(new comboFilter(
+		'category',__('Category'), 'cat_id', $categories_combo))
+	->addFilter(new comboFilter(
+		'post_status',__('Status'), 'post_status', $status_combo,array('singleval' => 1)))
+	->addFilter(new comboFilter(
+		'post_selected',__('Selected'), 'post_selected', $selected_combo))
+	->addFilter(new comboFilter(
+		'lang',__('Lang'), 'post_lang', $lang_combo))
+	->addFilter(new monthComboFilter(
+		'month',__('Month'), 'post_month', $dt_m_combo,array('singleval' => 1)));
+$filterSet->setValues($_GET);
 
 # Get posts
 try {
+	$nfparams = $params->getArrayCopy();
+	$filtered = $filterSet->applyFilters($params);
 	$posts = $core->blog->getPosts($params);
 	$counter = $core->blog->getPosts($params,true);
+	if ($filtered) {
+		$totalcounter = $core->blog->getPosts($nfparams,true);
+		$page_title = sprintf(__('Entries / %s filtered out of %s'),$counter->f(0),$totalcounter->f(0));
+	} else {
+		$page_title = __('Entries');
+	}
 	$post_list = new adminPostList($core,$posts,$counter->f(0));
 } catch (Exception $e) {
 	$core->error->add($e->getMessage());
 }
+
+$filterSet->setColumnsForm($post_list->getColumnsForm());
 
 /* DISPLAY
 -------------------------------------------------------- */
 $starting_script = dcPage::jsLoad('js/_posts_list.js');
-if (!$show_filters) {
-	$starting_script .= dcPage::jsLoad('js/filter-controls.js');
-}
+
+$starting_script = $filterSet->header();
 
 dcPage::open(__('Entries'),$starting_script);
@@ -231,48 +200,9 @@
 {
 	echo 
-	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Entries').'</h2>'.
+	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.$page_title.'</h2>'.
 	'<p class="top-add"><a class="button add" href="post.php">'.__('New entry').'</a></p>';
-	
-	if (!$show_filters) {
-		echo '<p><a id="filter-control" class="form-control" href="#">'.
-		__('Filters').'</a></p>';
-	}
-	
-	echo
-	'<form action="posts.php" method="get" id="filters-form">'.
-	'<fieldset><legend>'.__('Filters').'</legend>'.
-	'<div class="three-cols">'.
-	'<div class="col">'.
-	'<label for="user_id">'.__('Author:').
-	form::combo('user_id',$users_combo,$user_id).'</label> '.
-	'<label for="cat_id">'.__('Category:').
-	form::combo('cat_id',$categories_combo,$cat_id).'</label> '.
-	'<label for="status">'.__('Status:').
-	form::combo('status',$status_combo,$status).'</label> '.
-	'</div>'.
-	
-	'<div class="col">'.
-	'<label for="selected">'.__('Selected:').
-	form::combo('selected',$selected_combo,$selected).'</label> '.
-	'<label for="month">'.__('Month:').
-	form::combo('month',$dt_m_combo,$month).'</label> '.
-	'<label for="lang">'.__('Lang:').
-	form::combo('lang',$lang_combo,$lang).'</label> '.
-	'</div>'.
-	
-	'<div class="col">'.
-	'<p><label for="sortby">'.__('Order by:').
-	form::combo('sortby',$sortby_combo,$sortby).'</label> '.
-	'<label for="order">'.__('Sort:').
-	form::combo('order',$order_combo,$order).'</label></p>'.
-	'<p><label for="nb" class="classic">'.	form::field('nb',3,3,$nb_per_page).' '.
-	__('Entries per page').'</label></p> '.
-	'<p><input type="submit" value="'.__('Apply filters').'" /></p>'.
-	'</div>'.
-	'</div>'.
-	'<br class="clear" />'. //Opera sucks
-	'</fieldset>'.
-	'</form>';
-	
+
+	$filterSet->display();
+
 	# Show posts
 	$post_list->display($page,$nb_per_page,
@@ -287,14 +217,5 @@
 	form::combo('action',$combo_action).
 	'<input type="submit" value="'.__('ok').'" /></p>'.
-	form::hidden(array('user_id'),$user_id).
-	form::hidden(array('cat_id'),$cat_id).
-	form::hidden(array('status'),$status).
-	form::hidden(array('selected'),$selected).
-	form::hidden(array('month'),$month).
-	form::hidden(array('lang'),$lang).
-	form::hidden(array('sortby'),$sortby).
-	form::hidden(array('order'),$order).
-	form::hidden(array('page'),$page).
-	form::hidden(array('nb'),$nb_per_page).
+	$filterSet->getFormFieldsAsHidden().
 	$core->formNonce().
 	'</div>'.
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 247)
+++ admin/preferences.php	(revision 190)
@@ -34,13 +34,7 @@
 
 $core->auth->user_prefs->addWorkspace('accessibility');
-$user_acc_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop;
-
-$core->auth->user_prefs->addWorkspace('interface');
-$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
-if ($core->auth->isSuperAdmin()) {
-	$user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
-}
-
-$default_tab = !empty($_GET['tab']) ? html::escapeHTML($_GET['tab']) : 'user-profile';
+$user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop;
+
+$default_tab = 'user-profile';
 
 if (!empty($_GET['append']) || !empty($_GET['removed']) || !empty($_GET['neworder']) || !empty($_GET['replaced'])) {
@@ -48,7 +42,4 @@
 } elseif (!empty($_GET['updated'])) {
 	$default_tab = 'user-options';
-}
-if (($default_tab != 'user-profile') && ($default_tab != 'user-options') && ($default_tab != 'user-favorites')) {
-	$default_tab = 'user-profile';
 }
 
@@ -153,10 +144,5 @@
 		$core->auth->user_prefs->dashboard->put('dcnews',!empty($_POST['user_dm_dcnews']),'boolean');
 		$core->auth->user_prefs->dashboard->put('quickentry',!empty($_POST['user_dm_quickentry']),'boolean');
-		$core->auth->user_prefs->accessibility->put('nodragdrop',!empty($_POST['user_acc_nodragdrop']),'boolean');
-		$core->auth->user_prefs->interface->put('enhanceduploader',!empty($_POST['user_ui_enhanceduploader']),'boolean');
-		if ($core->auth->isSuperAdmin()) {
-			# Applied to all users
-			$core->auth->user_prefs->interface->put('hide_std_favicon',!empty($_POST['user_ui_hide_std_favicon']),'boolean',null,true,true);
-		}
+		$core->auth->user_prefs->accessibility->put('nodragdrop',!empty($_POST['user_dm_nodragdrop']),'boolean');
 		
 		# Udate user
@@ -306,5 +292,5 @@
 dcPage::open($page_title,
 	dcPage::jsLoad('js/_preferences.js').
-	($user_acc_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
+	($user_dm_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
 	dcPage::jsLoad('js/jquery/jquery-ui-1.8.12.custom.min.js').
 	dcPage::jsPageTabs($default_tab).
@@ -336,6 +322,4 @@
 echo '<h2>'.$page_title.'</h2>';
 
-$tabindex = 2;
-
 # User profile
 echo '<div class="multi-part" id="user-profile" title="'.__('My profile').'">';
@@ -347,17 +331,17 @@
 '<div class="col">'.
 '<p><label for="user_name">'.__('Last Name:').
-form::field('user_name',20,255,html::escapeHTML($user_name),'',$tabindex++).'</label></p>'.
+form::field('user_name',20,255,html::escapeHTML($user_name),'',2).'</label></p>'.
 
 '<p><label for="user_firstname">'.__('First Name:').
-form::field('user_firstname',20,255,html::escapeHTML($user_firstname),'',$tabindex++).'</label></p>'.
+form::field('user_firstname',20,255,html::escapeHTML($user_firstname),'',3).'</label></p>'.
 
 '<p><label for="user_displayname">'.__('Display name:').
-form::field('user_displayname',20,255,html::escapeHTML($user_displayname),'',$tabindex++).'</label></p>'.
+form::field('user_displayname',20,255,html::escapeHTML($user_displayname),'',4).'</label></p>'.
 
 '<p><label for="user_email">'.__('Email:').
-form::field('user_email',20,255,html::escapeHTML($user_email),'',$tabindex++).'</label></p>'.
+form::field('user_email',20,255,html::escapeHTML($user_email),'',5).'</label></p>'.
 
 '<p><label for="user_url">'.__('URL:').
-form::field('user_url',30,255,html::escapeHTML($user_url),'',$tabindex++).'</label></p>'.
+form::field('user_url',30,255,html::escapeHTML($user_url),'',6).'</label></p>'.
 
 '</div>'.
@@ -366,8 +350,8 @@
 
 '<p><label for="user_lang">'.__('User language:').
-form::combo('user_lang',$lang_combo,$user_lang,'l10n',$tabindex++).'</label></p>'.
+form::combo('user_lang',$lang_combo,$user_lang,'l10n',10).'</label></p>'.
 
 '<p><label for="user_tz">'.__('User timezone:').
-form::combo('user_tz',dt::getZones(true,true),$user_tz,'',$tabindex++).'</label></p>'.
+form::combo('user_tz',dt::getZones(true,true),$user_tz,'',11).'</label></p>'.
 
 '</div>'.
@@ -383,8 +367,8 @@
 	
 	'<p><label for="new_pwd">'.__('New password:').
-	form::password('new_pwd',20,255,'','',$tabindex++).'</label></p>'.
+	form::password('new_pwd',20,255,'','',30).'</label></p>'.
 	
 	'<p><label for="new_pwd_c">'.__('Confirm password:').
-	form::password('new_pwd_c',20,255,'','',$tabindex++).'</label></p>'.
+	form::password('new_pwd_c',20,255,'','',31).'</label></p>'.
 	'</fieldset>'.
 	
@@ -392,5 +376,5 @@
 	'<p>'.__('If you want to change your email or password you must provide your current password.').'</p>'.
 	'<p><label for="cur_pwd">'.__('Your password:').
-	form::password('cur_pwd',20,255,'','',$tabindex++).'</label></p>'.
+	form::password('cur_pwd',20,255,'','',32).'</label></p>'.
 	'</fieldset>';
 }
@@ -412,29 +396,15 @@
 
 '<p><label for="user_post_format">'.__('Preferred format:').
-form::combo('user_post_format',$formaters_combo,$user_options['post_format'],'',$tabindex++).'</label></p>'.
+form::combo('user_post_format',$formaters_combo,$user_options['post_format'],'',7).'</label></p>'.
 
 '<p><label for="user_post_status">'.__('Default entry status:').
-form::combo('user_post_status',$status_combo,$user_post_status,'',$tabindex++).'</label></p>'.
+form::combo('user_post_status',$status_combo,$user_post_status,'',8).'</label></p>'.
 
 '<p><label for="user_edit_size">'.__('Entry edit field height:').
-form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',$tabindex++).'</label></p>'.
+form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',9).'</label></p>'.
 
 '<p><label for="user_wysiwyg" class="classic">'.
-form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg'],'',$tabindex++).' '.
+form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg'],'',12).' '.
 __('Enable WYSIWYG mode').'</label></p>'.
-
-'<p><label for="user_ui_enhanceduploader" class="classic">'.
-form::checkbox('user_ui_enhanceduploader',1,$user_ui_enhanceduploader,'',$tabindex++).' '.
-__('Activate enhanced uploader in media manager').'</label></p>';
-
-if ($core->auth->isSuperAdmin()) {
-	echo
-	'<p><label for="user_ui_hide_std_favicon" class="classic">'.
-	form::checkbox('user_ui_hide_std_favicon',1,$user_ui_hide_std_favicon,'',$tabindex++).' '.
-	__('Do not use standard favicon').'</label></p>'.
-	'<p class="clear form-note info">'.__('This will be applied for all users').'</p>';
-}
-
-echo 
 '<br class="clear" />'. //Opera sucks
 '</fieldset>';
@@ -443,6 +413,6 @@
 '<fieldset><legend>'.__('Accessibility options').'</legend>'.
 
-'<p><label for="user_acc_nodragdrop" class="classic">'.
-form::checkbox('user_acc_nodragdrop',1,$user_acc_nodragdrop,'',$tabindex++).' '.
+'<p><label for="user_dm_nodragdrop" class="classic">'.
+form::checkbox('user_dm_nodragdrop',1,$user_dm_nodragdrop,'',13).' '.
 __('Disable javascript powered drag and drop for ordering items').'</label></p>'.
 
@@ -454,13 +424,13 @@
 
 '<p><label for="user_dm_doclinks" class="classic">'.
-form::checkbox('user_dm_doclinks',1,$user_dm_doclinks,'',$tabindex++).' '.
+form::checkbox('user_dm_doclinks',1,$user_dm_doclinks,'',14).' '.
 __('Display documentation links').'</label></p>'.
 
 '<p><label for="user_dm_dcnews" class="classic">'.
-form::checkbox('user_dm_dcnews',1,$user_dm_dcnews,'',$tabindex++).' '.
+form::checkbox('user_dm_dcnews',1,$user_dm_dcnews,'',15).' '.
 __('Display Dotclear news').'</label></p>'.
 
 '<p><label for="user_dm_quickentry" class="classic">'.
-form::checkbox('user_dm_quickentry',1,$user_dm_quickentry,'',$tabindex++).' '.
+form::checkbox('user_dm_quickentry',1,$user_dm_quickentry,'',16).' '.
 __('Display quick entry form').'</label></p>'.
 
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 217)
+++ admin/style/default.css	(revision 251)
@@ -1080,4 +1080,7 @@
 label input, label select, label span {
 	display: block;
+}
+#filters-form label {
+	display: inline;
 }
 p.form-note {
@@ -1300,2 +1303,23 @@
 	background-color: #2373A8;
 }
+
+form#filters {font-size: 100%; background: #f0f0f0; padding: 1em; border-radius: .5em; border: 1px solid #ddd;}
+form#filters .margintop {padding-top: 1.33em;}
+form#filters ul {list-style-type:none;margin: 0; padding: 0; margin-left: 1em;}
+form#filters .col30 {border-left: 1px solid #999;}
+form#filters .col30 h3 {margin-left: 1em;}
+p.line, li.line { position: relative; padding: 3px 0 0 28px; margin: 0 0 1em 0;}
+p.line input[type=submit] {position: absolute; left:0;top:0; padding: 0 .1em; margin: 0;}
+p.line input[type=checkbox], li.line input[type=checkbox] {position: absolute; left: 0; top: .2em; padding: 0 .1em; margin: 0;}
+p.line select { margin-right: 2em;}
+p.line label { display: block; width: 8em; float: left;}
+p.line label img {margin-right: 8px;}
+p.line label.or {
+	text-align: right;
+	margin-left: 5em;
+	font-weight: bold;
+}
+p.line label.or + select {margin-left: 2em;}
+li.line { padding: 0 0 0 20px; height: 1em;}
+li.line label {width: auto;}
+#available_filters input[type=submit] {padding: 0 .1em; margin-left: .5em;}
Index: admin/user.php
===================================================================
--- admin/user.php	(revision 230)
+++ admin/user.php	(revision 181)
@@ -236,9 +236,9 @@
 '</label></p>'.
 
-'<p><label for="user_edit_size">'.__('Entry edit field height:').' '.
+'<p><label>'.__('Entry edit field height:').' '.
 form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',12).
 '</label></p>'.
 
-'<p><label for="user_lang">'.__('User language:').' '.
+'<p><label for="user_edit_size">'.__('User language:').' '.
 form::combo('user_lang',$lang_combo,$user_lang,'l10n',13).
 '</label></p>'.
