diff --git a/apps/susimail/src/js/compose.js b/apps/susimail/src/js/compose.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f897526d80e34db91235b3f6397a7ea996b4eac
--- /dev/null
+++ b/apps/susimail/src/js/compose.js
@@ -0,0 +1,5 @@
+// onbeforeunload() is in the servlet because it has a translated string
+
+function cancelPopup() {
+	window.onbeforeunload = null;
+}
diff --git a/apps/susimail/src/js/folder.js b/apps/susimail/src/js/folder.js
new file mode 100644
index 0000000000000000000000000000000000000000..6b01b7c77d7778fd507ea871b0acfc27a0a3d8ad
--- /dev/null
+++ b/apps/susimail/src/js/folder.js
@@ -0,0 +1,20 @@
+function deleteboxclicked() {
+	var hasOne = false;
+	var hasAll = true;
+	var hasNone = true;
+	var form = document.forms[0];
+	for(i = 0; i < form.elements.length; i++) {
+		var elem = form.elements[i];
+		if (elem.type == 'checkbox') {
+			if (elem.checked) {
+				hasOne = true;
+				hasNone = false;
+			} else {
+				hasAll = false;
+			}
+		}
+	}
+	form.delete.disabled = !hasOne;
+	form.markall.disabled = hasAll;
+	form.clearselection.disabled = hasNone;
+}
diff --git a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java
index f562cb6cb523c7a2fc70c079aa8878d99858df67..5e8454aa67ef7bb69e64743ff9c1bb23decb4089 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java
@@ -1692,17 +1692,18 @@ public class WebMail extends HttpServlet
 				if (sessionObject.state == STATE_NEW) {
 					// TODO cancel if to and body are empty
 					out.println(
-						"<script type = \"text/javascript\">\n" +
+						"<script type=\"text/javascript\">\n" +
 							"window.onbeforeunload = function () {" +
 								"return \"" + _("Message has not been sent. Do you want to discard it?") + "\";" +
 							"};\n" +
-							"function cancelPopup() {" +
-								"window.onbeforeunload = null;" +
-							"};\n" +
 						"</script>"
 					);
+					out.println("<script src=\"/susimail/js/compose.js\" type=\"text/javascript\"></script>");
+				} else if (sessionObject.state == STATE_LIST) {
+					out.println("<script src=\"/susimail/js/folder.js\" type=\"text/javascript\"></script>");
 				}
-				out.println( "</head>\n<body>\n" +
+				out.print("</head>\n<body" + (sessionObject.state == STATE_LIST ? " onload=\"deleteboxclicked()\">" : ">"));
+				out.println(
 					"<div class=\"page\"><div class=\"header\"><img class=\"header\" src=\"" + sessionObject.imgPath + "susimail.png\" alt=\"Susimail\"></div>\n" +
 					"<form method=\"POST\" enctype=\"multipart/form-data\" action=\"" + myself + "\" accept-charset=\"UTF-8\">" );
 
@@ -2154,6 +2155,7 @@ public class WebMail extends HttpServlet
 			//		", clear=" + sessionObject.clear );
 			out.println( "<tr class=\"list" + bg + "\">" +
 					"<td><input type=\"checkbox\" class=\"optbox\" name=\"check" + i + "\" value=\"1\"" + 
+					" onclick=\"deleteboxclicked();\" " +
 					( idChecked ? "checked" : "" ) + ">" + "</td><td " + jslink + ">" +
 					(mail.isNew() ? "<img src=\"/susimail/icons/flag_green.png\" alt=\"\" title=\"" + _("Message is new") + "\">" : "&nbsp;") + "</td><td " + jslink + ">" +
 					link + mail.shortSender + "</a></td><td " + jslink + ">" +
@@ -2183,7 +2185,6 @@ public class WebMail extends HttpServlet
 						"</p>" + button( REALLYDELETE, _("Yes, really delete them!") ) +
 						"<br>" + button( CLEAR, _("Cancel")));
 			} else {
-				// TODO js
 				out.println(button( DELETE, _("Delete Selected") ) + "<br>");
 				out.print(
 					button( MARKALL, _("Mark All") ) +