Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 3126)
+++ admin/comments.php	(revision 3182)
@@ -267,5 +267,5 @@
 	form::combo('action',$comments_actions_page->getCombo(),$default,'','','','title="'.__('Actions').'"').
 	$core->formNonce().
-	'<input type="submit" value="'.__('ok').'" /></p>'.
+	'<input id="do-action" type="submit" value="'.__('ok').'" /></p>'.
 	form::hidden(array('type'),$type).
 	form::hidden(array('sortby'),$sortby).
Index: admin/js/_comments.js
===================================================================
--- admin/js/_comments.js	(revision 2566)
+++ admin/js/_comments.js	(revision 3182)
@@ -60,8 +60,9 @@
 	});
 	$('.checkboxes-helpers').each(function() {
-		dotclear.checkboxesHelpers(this);
+		dotclear.checkboxesHelpers(this,undefined,'#form-comments td input[type=checkbox]','#form-comments #do-action');
 	});
 	$('#form-comments td input[type=checkbox]').enableShiftClick();
 	dotclear.commentsActionsHelper();
+	dotclear.condSubmit('#form-comments td input[type=checkbox]','#form-comments #do-action');
 	$('form input[type=submit][name=delete_all_spam]').click(function(){
 		return window.confirm(dotclear.msg.confirm_spam_delete);
Index: admin/js/_media.js
===================================================================
--- admin/js/_media.js	(revision 3153)
+++ admin/js/_media.js	(revision 3182)
@@ -135,6 +135,7 @@
 
 	$('.checkboxes-helpers').each(function() {
-		dotclear.checkboxesHelpers(this);
+		dotclear.checkboxesHelpers(this,undefined,'#form-medias input[type="checkbox"]','#form-medias #delete_medias');
 	});
+	dotclear.condSubmit('#form-medias input[type="checkbox"]','#form-medias #delete_medias');
 
 	$('#form-medias #delete_medias').click(function(e) {
Index: admin/js/_posts_actions.js
===================================================================
--- admin/js/_posts_actions.js	(revision 1806)
+++ admin/js/_posts_actions.js	(revision 3182)
@@ -13,3 +13,4 @@
 		legend_click: true
 	});
+	dotclear.condSubmit('table.posts-list td input[type=checkbox]','input[type=submit]');
 });
Index: admin/js/_posts_list.js
===================================================================
--- admin/js/_posts_list.js	(revision 2811)
+++ admin/js/_posts_list.js	(revision 3182)
@@ -60,7 +60,8 @@
 	});
 	$('.checkboxes-helpers').each(function() {
-		dotclear.checkboxesHelpers(this);
+		dotclear.checkboxesHelpers(this,undefined,'#form-entries td input[type=checkbox]','#form-entries #do-action');
 	});
 	$('#form-entries td input[type=checkbox]').enableShiftClick();
+	dotclear.condSubmit('#form-entries td input[type=checkbox]','#form-entries #do-action');
 	dotclear.postsActionsHelper();
 });
Index: admin/js/_users.js
===================================================================
--- admin/js/_users.js	(revision 2566)
+++ admin/js/_users.js	(revision 3182)
@@ -1,6 +1,7 @@
 $(function() {
 	$('.checkboxes-helpers').each(function() {
-		dotclear.checkboxesHelpers(this);
+		dotclear.checkboxesHelpers(this,undefined,'#form-users input[type="checkbox"]','#form-users #do-action');
 	});
+	dotclear.condSubmit('#form-users input[type="checkbox"]','#form-users #do-action');
 	$('#form-users').submit(function() {
 		var action = $(this).find('select[name="action"]').val();
Index: admin/js/_users_actions.js
===================================================================
--- admin/js/_users_actions.js	(revision 2566)
+++ admin/js/_users_actions.js	(revision 3182)
@@ -93,6 +93,7 @@
 $(function() {
 	$('.checkboxes-helpers').each(function() {
-		dotclear.checkboxesHelpers(this);
+		dotclear.checkboxesHelpers(this,undefined,'#form-blogs input[type="checkbox"]','#form-blogs #do-action');
 	});
+	dotclear.condSubmit('#form-blogs input[type="checkbox"]','#form-blogs #do-action');
 	$('#permissions-form').updatePermissionsForm();
 });
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 2810)
+++ admin/js/common.js	(revision 3182)
@@ -311,4 +311,31 @@
 	msg: {},
 
+	condSubmit: function(chkboxes,target) {
+		var checkboxes = $(chkboxes),
+		    submitButt = $(target);
+
+		if (checkboxes === undefined || submitButt === undefined) {
+			return;
+		}
+
+		// Set initial state
+	    submitButt.attr("disabled", !checkboxes.is(":checked"));
+	    if (!checkboxes.is(":checked")) {
+	    	submitButt.addClass('disabled');
+	    } else {
+	    	submitButt.removeClass('disabled');
+	    }
+
+		checkboxes.click(function() {
+			// Update target state
+		    submitButt.attr("disabled", !checkboxes.is(":checked"));
+		    if (!checkboxes.is(":checked")) {
+		    	submitButt.addClass('disabled');
+		    } else {
+		    	submitButt.removeClass('disabled');
+		    }
+		});
+	},
+
 	hideLockable: function() {
 		$('div.lockable').each(function() {
@@ -342,5 +369,5 @@
 	},
 
-	checkboxesHelpers: function(e, target) {
+	checkboxesHelpers: function(e, target, c, s) {
 		$(e).append(document.createTextNode(dotclear.msg.to_select));
 		$(e).append(document.createTextNode(' '));
@@ -352,5 +379,7 @@
 				$(e).parents('form').find('input[type="checkbox"]').check();
 			}
-
+			if (c !== undefined && s !== undefined) {
+				dotclear.condSubmit(c,s);
+			}
 			return false;
 		}).appendTo($(e));
@@ -363,5 +392,7 @@
 				$(e).parents('form').find('input[type="checkbox"]').unCheck();
 			}
-
+			if (c !== undefined && s !== undefined) {
+				dotclear.condSubmit(c,s);
+			}
 			return false;
 		}).appendTo($(e));
@@ -374,5 +405,7 @@
 				$(e).parents('form').find('input[type="checkbox"]').toggleCheck();
 			}
-
+			if (c !== undefined && s !== undefined) {
+				dotclear.condSubmit(c,s);
+			}
 			return false;
 		}).appendTo($(e));
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 3117)
+++ admin/posts.php	(revision 3182)
@@ -389,5 +389,5 @@
 	'<p class="col right"><label for="action" class="classic">'.__('Selected entries action:').'</label> '.
 	form::combo('action',$posts_actions_page->getCombo()).
-	'<input type="submit" value="'.__('ok').'" /></p>'.
+	'<input id="do-action" type="submit" value="'.__('ok').'" disabled /></p>'.
 	form::hidden(array('user_id'),$user_id).
 	form::hidden(array('cat_id'),$cat_id).
Index: admin/search.php
===================================================================
--- admin/search.php	(revision 2785)
+++ admin/search.php	(revision 3182)
@@ -127,5 +127,5 @@
 		'<p class="col right"><label for="action1" class="classic">'.__('Selected entries action:').'</label> '.
 		form::combo(array('action','action1'),$posts_actions_page->getCombo()).
-		'<input type="submit" value="'.__('ok').'" /></p>'.
+		'<input id="do-action" type="submit" value="'.__('ok').'" /></p>'.
 		$core->formNonce().
 		$posts_actions_page->getHiddenFields().
@@ -155,5 +155,5 @@
 		'<p class="col right"><label for="action2" class="classic">'.__('Selected comments action:').'</label> '.
 		form::combo(array('action','action2'),$comments_actions_page->getCombo()).
-		'<input type="submit" value="'.__('ok').'" /></p>'.
+		'<input id="do-action" type="submit" value="'.__('ok').'" /></p>'.
 		$core->formNonce().
 		$comments_actions_page->getHiddenFields().
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 3105)
+++ admin/users.php	(revision 3182)
@@ -169,5 +169,5 @@
 	form::combo('action',$combo_action).
 	'</label> '.
-	'<input type="submit" value="'.__('ok').'" />'.
+	'<input id="do-action" type="submit" value="'.__('ok').'" />'.
 	form::hidden(array('q'),html::escapeHTML($q)).
 	form::hidden(array('sortby'),$sortby).
Index: admin/users_actions.php
===================================================================
--- admin/users_actions.php	(revision 3046)
+++ admin/users_actions.php	(revision 3182)
@@ -244,5 +244,5 @@
 		'</table></div>'.
 		'<p class="checkboxes-helpers"></p>'.
-		'<p><input type="submit" value="'.__('Set permissions').'" />'.
+		'<p><input id="do-action" type="submit" value="'.__('Set permissions').'" />'.
 		$hidden_fields.
 		form::hidden(array('action'),'perms').
