Index: sandbox/2.5.0-expresso1/expressoMail1_2/setup/phpgw_pt-br.lang
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/setup/phpgw_pt-br.lang	(revision 7238)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/setup/phpgw_pt-br.lang	(revision 7331)
@@ -939,4 +939,5 @@
 Starting to move messages	expressoMail1_2	pt-br	Iniciando a movimentação de mensagens
 MailArchiver does not seems to be running or installed at this workstation, local messages are disabled. Check it out!	expressoMail1_2	pt-br	O MailArchiver não parece estar rodando ou instalado nesta estação de trabalho, as mensagens locais estão desativadas. Verifique!
+Starting to unarchive messages	expressoMail1_2	pt-br	Iniciando o desarquivamento de mensagens
 Messages successfully unarchived	expressoMail1_2	pt-br	Mensagens desarquivadas com sucesso
 All done. End of archive messages operation	expressoMail1_2	pt-br	Concluído. Operação de arquivamento encerrada
@@ -946,4 +947,5 @@
 Message successfully unarchived	expressoMail1_2	pt-br	Mensagem desarquivada com sucesso
 Unarchiving message %1 of %2	expressoMail1_2	pt-br	Desarquivando mensagem %1 de %2
+Message %1 of %2 successfully archived	expressoMail1_2	pt-br	Mensagem %1 de %2 arquivada com sucesso
 Sorry, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off local messages!	expressoMail1_2	pt-br	Desculpe, mas o Mail Archiver não parece estar rodando ou instalado nesta estação de trabalho. De momento, estamos desativando as mensagens locais!
 Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!	expressoMail1_2	pt-br	Desculpe, mas o Mail Archiver parece continuar offline. Verifique os serviços do seu sistema!
Index: sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php	(revision 7195)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php	(revision 7331)
@@ -4643,22 +4643,27 @@
 			
         $return['msg_no'] = $status->uidnext - 1;
-	$return['error'] = imap_last_error();
-	if(!$return['error'] && $flags != '' ){
-
-                  $flags_array=explode(':',$flags);
-                  //"Answered","Draft","Flagged","Unseen"
-                  $flags_fixed = "";
-                  if($flags_array[0] == 'A')
-                        $flags_fixed.="\\Answered ";
-                  if($flags_array[1] == 'X')
-                        $flags_fixed.="\\Draft ";
-                  if($flags_array[2] == 'F')
-                        $flags_fixed.="\\Flagged ";
-                  if($flags_array[3] != 'U')
-                        $flags_fixed.="\\Seen ";
-                  if($flags_array[4] == 'F')
-                        $flags_fixed.="\\Answered \\Draft ";
-                  imap_setflag_full($mbox_stream, $return['msg_no'], $flags_fixed, ST_UID);
-                }
+		
+		//Marcosw inicio - inserida validação para inserir flags
+        $return['error'] = '';
+		if(imap_last_error() && imap_last_error() != "SECURITY PROBLEM: insecure server advertised AUTH=PLAIN")
+            $return['error'] = imap_last_error();
+        //Marcosw fim
+
+		if(!$return['error'] && $flags != '' ){
+			$flags_array=explode(':',$flags);
+			//"Answered","Draft","Flagged","Unseen"
+			$flags_fixed = "";
+			if($flags_array[0] == 'A')
+			    $flags_fixed.="\\Answered ";
+			if($flags_array[1] == 'X')
+			    $flags_fixed.="\\Draft ";
+			if($flags_array[2] == 'F')
+			    $flags_fixed.="\\Flagged ";
+			if($flags_array[3] != 'U')
+			    $flags_fixed.="\\Seen ";
+			if($flags_array[4] == 'F')
+			    $flags_fixed.="\\Answered \\Draft ";
+			imap_setflag_full($mbox_stream, $return['msg_no'], $flags_fixed, ST_UID);
+        }
 	
         //Ignorando erro de AUTH=Plain
@@ -5498,37 +5503,36 @@
 
     //MailArchiver -> get message flags only, invoked at archive operation
-    //Marcosw início - modificação da estrutura da função, removendo estr. de repetição desnecessária
-    function get_msg_flags($args){       
-		$msg_folder = $args['folder'];
+    //Marcosw início - Inserido código novo MailArchiver
+    function get_msg_flags($args){  
+        $msg_folder = $args['folder'];
         $msg_n = $args['msg_number'];
+        $arr_msg = explode(",", $msg_n);
+       
+        for($i=0; $i<count($arr_msg); $i++){
+                        
+            if(!$this->mbox || !is_resource($this->mbox))
+                $this->mbox = $this->open_mbox($msg_folder);
         
-        if(!$this->mbox || !is_resource($this->mbox))
-            $this->mbox = $this->open_mbox($msg_folder);
-    
-        if(!is_resource($this->mbox))
-            return(false);
-          
-        $msgno_imap = imap_msgno($this->mbox, $msg_n);          
-        $header = @imap_headerinfo($this->mbox, $msgno_imap, 80, 255);
-		
-        if (!is_object($header))
-            return false;
-
-        $taglist["msgid"] = $msg_n;
-        $taglist["unseen"] = $header->Unseen;
-        $taglist["recent"] = $header->Recent;
-        $taglist["flagged"] = $header->Flagged;
-        $taglist["draft"] = $header->Draft;
-        $taglist["answered"] = $header->Answered;
-        $taglist["deleted"] = $header->Deleted;
-    
-        if($header->Answered =='A' && $header->Draft == 'X')
-            $taglist['forwarded'] = 'F';
-        else
-            $taglist['forwarded'] = ' ';
-    
-        if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {
-            $flag = preg_match('/importance *: *(.*)\r/i',imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_n)),$importance);
-            $taglist["importance"] = $flag==0?"Normal":$importance[1];
+            if(!is_resource($this->mbox))
+                return(false);
+                       
+            $msgno_imap = imap_msgno($this->mbox, $msg_n);          
+        	$header = @imap_headerinfo($this->mbox, $msgno_imap, 80, 255);
+                
+            if (!is_object($header))
+                return false;
+
+            $taglist[$i]["msgid"] = $msg_n;
+            $taglist[$i]["unseen"] = $header->Unseen;
+            $taglist[$i]["recent"] = $header->Recent;
+            $taglist[$i]["flagged"] = $header->Flagged;
+            $taglist[$i]["draft"] = $header->Draft;
+            $taglist[$i]["answered"] = $header->Answered;
+            $taglist[$i]["deleted"] = $header->Deleted;
+        
+            if($header->Answered =='A' && $header->Draft == 'X')
+                $taglist[$i]['forwarded'] = 'F';
+            else
+                $taglist[$i]['forwarded'] = ' ';
         }
 
@@ -5539,5 +5543,4 @@
 	 * Fim dos métodos 
 	 */
-	
 }
 ?>
Index: sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js	(revision 7296)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/js/mail_archiver.js	(revision 7331)
@@ -523,5 +523,9 @@
     expresso_mail_archive.messages_processed++;
     if(expresso_mail_archive.message_list.length > 1){
-       //document.getElementById('main_title').innerHTML = get_lang("Message %1 of %2 successfully archived", expresso_mail_archive.messages_processed, expresso_mail_archive.total_messages);
+
+       //Marcosw inicio - Adicionado mensagem informando progresso de arquivamento
+       write_msg(get_lang("Message %1 of %2 successfully archived", expresso_mail_archive.messages_processed, expresso_mail_archive.total_messages));
+       //Marcosw fim
+       
        expresso_mail_archive.message_list.shift();
        expresso_mail_archive.Archive(expresso_mail_archive.folder_origin, expresso_mail_archive.folder_destination, expresso_mail_archive.message_list);
@@ -684,5 +688,7 @@
                     //Flagged tag
                     if(expresso_mail_archive.messageslisted[w]["Flagged"])
-                        if(expresso_mail_archive.messageslisted[w]["Flagged"] == true)
+                        //Marcosw inicio - alterado o valor de Flagged de 'true' para 'F', para evitar inconsistencia
+                        if(expresso_mail_archive.messageslisted[w]["Flagged"] == 'F')
+                        //Marcosw fim
                             flags += 'F'+':';                                        
                         else
Index: sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js
===================================================================
--- sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js	(revision 7320)
+++ sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js	(revision 7331)
@@ -332,15 +332,68 @@
 	
 	messages_proxy.prototype.proxy_set_messages_flag = function (flag,msg_number){
-		if(this.is_local_folder(get_current_folder())) {
+        //Marcosw inicio - inserido código novo MailArchiver
+        //MAILARCHIVER
+        if(this.is_local_folder(get_current_folder())) {           
+            var msglist = get_selected_messages();    
+            var arrlist = msglist.split(",");
+            var operation;
+            var strtag;
+            
+            for(var i in arrlist){
+                switch(flag.toLowerCase()){
+                    case 'unseen':
+                        strtag = "unseen";
+                        operation = 0;
+                        set_msg_as_unread(arrlist[i]);
+                        break;
+                    case 'seen':
+                        strtag = "unseen";
+                        operation = 1;
+                        set_msg_as_read(arrlist[i]);
+                        break;
+                    case 'flagged':
+                        strtag = "flagged, importance_high";
+                        operation = 0;
+                        set_msg_as_flagged(arrlist[i]);
+                        break;
+                    case 'unflagged':
+                        strtag = "flagged, importance_high";
+                        operation = 1;
+                        set_msg_as_unflagged(arrlist[i]);
+                        break;
+                }
+                expresso_mail_archive.currenttag = flag;
+                var tl = expresso_mail_archive.pattern.tagConfig(strtag, arrlist[i], operation);
+                expresso_mail_archive.taglist = tl;                             
+                expresso_mail_archive.progressbar = window.setTimeout("expresso_mail_archive.tagMessage()",1);
+            }
+        }
+        else {
+            set_messages_flag(flag,msg_number);
+            // Verifica se a pasta que esta selecionada contem a opção "Não lidas" ativada
+            // caso exista, ele chama novamente a opção "Não lidas" para atualizar a pasta.
+            if('UNSEEN' == search_box_type)
+                return sort_box('UNSEEN','SORTARRIVAL');
+        }
+        //Marcosw fim
+
+
+        //Marcosw inicio - comentádo código antigo gears
+        /*
+        if(this.is_local_folder(get_current_folder())) {
+            //adir
             //mail archiver
-			//expresso_local_messages.set_messages_flag(msg_number,flag);
-		}
-		else {
-			set_messages_flag(flag,msg_number);
-				// Verifica se a pasta que esta selecionada contem a opção "Não lidas" ativada
-				// caso exista, ele chama novamente a opção "Não lidas" para atualizar a pasta.
-				if('UNSEEN' == search_box_type)
-					return sort_box('UNSEEN','SORTARRIVAL');
-		}
+            //todo: ainda não sei se o mail archive esta suportando flags, pelo menos no codigo da serpro esta comentado sempre TODO nas funcoes de marcação de flag
+            //expresso_local_messages.set_messages_flag(msg_number,flag);
+        }
+        else {
+            set_messages_flag(flag,msg_number);
+                // Verifica se a pasta que esta selecionada contem a opção "Não lidas" ativada
+                // caso exista, ele chama novamente a opção "Não lidas" para atualizar a pasta.
+                if('UNSEEN' == search_box_type)
+                    return sort_box('UNSEEN','SORTARRIVAL');
+        }
+        */
+        //Marcosw fim
 	}
 	
