Index: /sandbox/2.4.2-expresso2/expressoMail1_2/js/common_functions.js
===================================================================
--- /sandbox/2.4.2-expresso2/expressoMail1_2/js/common_functions.js	(revision 6795)
+++ /sandbox/2.4.2-expresso2/expressoMail1_2/js/common_functions.js	(revision 6810)
@@ -1121,4 +1121,5 @@
 	var len_main_list = main_list.length;
 	var folder = '"'+$('#content_folders ul.filetree').find('.selected').attr('title')+'"';
+	var filterFlag = search_box_type != "ALL" ? get_lang(search_box_type) + "s": "";
 	var div = $('.select-all-messages');	
 	if (select)
@@ -1139,9 +1140,9 @@
 			selectedPagingMsgs[main_list[i].id] = true;
 		}		
-		if (totalSelected() == parseInt($('#tot_m').text())){
+		if (totalSelected() == totalFolderMsgs && totalSelected() > 0){
 			allMsgsSelected = true;
 			div.html("");
 			var link = "<a class='select-link' href='#'>Limpar seleção?</a>";
-			var info = "Todas as "+$('#tot_m').text()+" mensagens em "+folder+" foram selecionadas. "+link;
+			var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link;
 			div.html("<span>"+info+"<span>");
 			div.show();
@@ -1153,5 +1154,5 @@
 		else if (!allMsgsSelected && total_pages > 1){
 			div.html("");
-			var link = "<a class='select-link' href='#'>Selecionar todas as "+$('#tot_m').text()+" mensagens em "+folder+"?</a>";
+			var link = "<a class='select-link' href='#'>Selecionar todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+"?</a>";
 			var info = "Todas as "+$('#table_box tr').length+" mensagens desta página foram selecionadas. "+link;
 			div.html("<span>"+info+"<span>");
@@ -1179,5 +1180,5 @@
 		else if (totalSelected() > 0){
 			var link = "<a class='select-link' href='#'>Limpar seleção?</a>";
-			var info = "Foram selecionadas "+totalSelected()+" mensagens em "+folder+". "+link;
+			var info = "Foram selecionadas "+totalSelected()+" mensagens "+filterFlag+" em "+folder+". "+link;
 			div.html("<span>"+info+"<span>");
 			div.show();
Index: /sandbox/2.4.2-expresso2/expressoMail1_2/js/draw_api.js
===================================================================
--- /sandbox/2.4.2-expresso2/expressoMail1_2/js/draw_api.js	(revision 6796)
+++ /sandbox/2.4.2-expresso2/expressoMail1_2/js/draw_api.js	(revision 6810)
@@ -14,4 +14,5 @@
 selectedPagingMsgs = {};
 allMsgsSelected = false;
+totalFolderMsgs = 0;
 
 onceOpenedHeadersMessages = {};
@@ -539,5 +540,5 @@
 				 msg_range_end: "0", 					
 				sort_box_type: "SORTARRIVAL", 
-				search_box_type: "ALL",
+				search_box_type: search_box_type,
 				sort_box_reverse: "1"
 				}),
@@ -1086,4 +1087,5 @@
 	var folder = '"'+$('#content_folders ul.filetree').find('.selected').attr('title')+'"';
 	var div = $('.select-all-messages');
+	var filterFlag = search_box_type != "ALL" ? get_lang(search_box_type) + "s": "";
 	/*Seleciona as mensagens ao navegar pelas páginas*/
 	if (allMsgsSelected && msg_number == undefined){
@@ -1111,9 +1113,9 @@
 	}
 	/*Todas as mensagens selecionadas uma a uma*/
-	if (totalSelected() > 0 && totalSelected() == parseInt($('#tot_m').text())){
+	if (totalSelected() > 0 && totalSelected() == totalFolderMsgs){
 		allMsgsSelected = true;
 		div.html("");
 		var link = "<a class='select-link' href='#'>Limpar seleção?</a>";
-		var info = "Todas as "+$('#tot_m').text()+" mensagens em "+folder+" foram selecionadas. "+link;
+		var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link;
 		div.html("<span>"+info+"<span>");
 		div.show();
@@ -1123,5 +1125,5 @@
 	else if (totalSelected() > 0 && !allMsgsSelected){
 		var link = "<a class='select-link' href='#'>Limpar seleção?</a>";
-		var info = "Foram selecionadas "+totalSelected()+" mensagens em "+folder+". "+link;
+		var info = "Foram selecionadas "+totalSelected()+" mensagens "+filterFlag+" em "+folder+". "+link;
 		div.html("<span>"+info+"<span>");
 		div.show();
@@ -1133,5 +1135,5 @@
 	else if (allMsgsSelected){
 		var link = "<a class='select-link' href='#'>Limpar seleção?</a>";
-		var info = "Todas as "+$('#tot_m').text()+" mensagens em "+folder+" foram selecionadas. "+link;
+		var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link;
 		div.html("<span>"+info+"<span>");
 		div.show();
@@ -1149,11 +1151,11 @@
 /*Seleciona ou desseleciona todas as mensagens da pasta*/
 function selectAllFolderMsgs(select){
-	var folder = get_current_folder().split(cyrus_delimiter);
-	folder = folder.indexOf('INBOX') != -1 ? get_lang(folder[folder.length - 1]) : folder ;
+	var folder = '"'+$('#content_folders ul.filetree').find('.selected').attr('title')+'"';
+	var filterFlag = search_box_type != "ALL" ? get_lang(search_box_type) + "s": "";
 	var div = $('.select-all-messages');
 	if (select){
 		allMsgsSelected = true;
 		var link = "<a class='select-link' href='#'>Limpar seleção?</a>";
-		var info = "Todas as "+$('#tot_m').text()+" mensagens em "+folder+" foram selecionadas. "+link;
+		var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link;
 		div.html("<span>"+info+"<span>");
 		div.show();
@@ -1181,11 +1183,14 @@
 function populateSelectedMsgs(data){
 	this.selectedPagingMsgs = {};
+	var total = 0;
 	$.each(data, function(index, value){
 		if(value != undefined){
 			selectedPagingMsgs[value] = false;
+			total++;
 		}
 	});
 	delete selectedPagingMsgs[undefined];
 	allMsgsSelected = false;
+	this.totalFolderMsgs = total;
 }
 
@@ -2046,4 +2051,5 @@
 
 function sort_box(search, sort){
+	selectAllFolderMsgs(false);
 	if (cellResized)
 		return;
@@ -2071,5 +2077,34 @@
 	sort_box_type = sort;
 	search_box_type = search;
-
+		$.ajax({			
+			url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3", 
+				folder: folder,
+				 msg_range_begin: "0",
+				 msg_range_end: "0", 					
+				sort_box_type: "SORTARRIVAL", 
+				search_box_type: search_box_type,
+				sort_box_reverse: "1"
+				}),
+			success: function(data){
+				data = connector.unserialize(data);
+				if(data){
+					var _data = {};
+					$.each(data,function(index,value){
+						if (data[index] && data[index].msg_number){
+							_data[data[index].msg_number] = data[index].msg_number;
+						}
+					});
+					populateSelectedMsgs(_data);
+					_data = {};
+				
+				}
+			},
+			beforeSend: function( jqXHR, settings ){
+				connector.showProgressBar();
+			},
+			complete: function( jqXHR, settings ){
+				connector.hideProgressBar();
+			}
+		});
 	proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box);
 	current_page = 1;
