Index: /branches/2.2/expressoMail1_2/inc/class.imap_functions.inc.php
===================================================================
--- /branches/2.2/expressoMail1_2/inc/class.imap_functions.inc.php	(revision 3860)
+++ /branches/2.2/expressoMail1_2/inc/class.imap_functions.inc.php	(revision 3872)
@@ -3836,5 +3836,5 @@
 ///expressoMail1_2/imap.py para inserir uma msg com o horário correto pois isso não é porssível com a função imap_append do php.
 
-    function insert_email($source,$folder,$timestamp){
+    function insert_email($source,$folder,$timestamp,$flagged){
         $username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
         $password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
@@ -3846,5 +3846,5 @@
         {
             imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}".$folder));
-       }
+       	}
         if($timestamp){
             $tempDir = ini_get("session.save_path");
@@ -3859,10 +3859,15 @@
         }
         $status = imap_status($mbox_stream, "{".$this->imap_server.":".$this->imap_port."}".$folder, SA_UIDNEXT);
+			
         $return['msg_no'] = $status->uidnext - 1;
-		$return['error'] = imap_last_error();
+				$return['error'] = imap_last_error();
+				
+				if(!$return['error'])
+					if($flagged && $flagged == "F")
+						$this->set_messages_flag(array('folder'=>$folder,'msgs_to_set'=>$return['msg_no'],'flag'=>'flagged'));
+
         if($mbox_stream)
-			imap_close($mbox_stream);
+					imap_close($mbox_stream);
         return $return;
-
     }
 
@@ -3948,12 +3953,14 @@
         $sources = explode("#@#@#@",$params['source']);
         $timestamps = explode("#@#@#@",$params['timestamp']);
+        $flaggeds = explode("#@#@#@",$params['flagged']);
+
         foreach($sources as $index=>$src)
         {
             if($src!="")
             {
-				$source = $this->treat_base64_from_post($src);
-				$insert = $this->insert_email($source,$dest_folder,$timestamps[$index]);
-            }
-		}
+							$source = $this->treat_base64_from_post($src);
+							$insert = $this->insert_email($source,$dest_folder,$timestamps[$index],$flaggeds[$index]);
+        		}
+				}
         
         return $insert;
Index: /branches/2.2/expressoMail1_2/js/local_messages.js
===================================================================
--- /branches/2.2/expressoMail1_2/js/local_messages.js	(revision 3870)
+++ /branches/2.2/expressoMail1_2/js/local_messages.js	(revision 3872)
@@ -381,5 +381,5 @@
 	//Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do
 	//tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]"
-	//são substituidos pelos links dos anexos capturados pelo gears.
+	//sÃ£o substituidos pelos links dos anexos capturados pelo gears.
 
 	var thumbs= retorno.thumbs;
@@ -713,7 +713,7 @@
 	for (var i in mail.thumbs) { 
 		/*
-		 * Os thumbs contêm aspas simples que impactam na sql. 
+		 * Os thumbs contÃªm aspas simples que impactam na sql. 
 		 * Aqui eu substituo as aspas simples por duas simples(escape no sqlite),
-		 * Caso já venham duas juntas, elas continuam sem serem duplicadas.
+		 * Caso jÃ¡ venham duas juntas, elas continuam sem serem duplicadas.
 		 */
 		mail.thumbs[i] = mail.thumbs[i].replace(/([^'])'([^'])('?)/g,"$1''$2$3$3");
@@ -907,5 +907,5 @@
     var id_folder = rs.field(0);
     rs.close();
-    this.dbGears.execute("update mail set id_folder="+id_folder+" where rowid in ("+msgs_number.toString()+")"); //usando statement nï¿œo tava funcionando quando tinha mais de um email...
+    this.dbGears.execute("update mail set id_folder="+id_folder+" where rowid in ("+msgs_number.toString()+")"); //usando statement nÃ£o tava funcionando quando tinha mais de um email...
     this.finalize();
 }
@@ -1128,5 +1128,5 @@
 
     if (!AJAX) {
-	alert('ERRO :(Seu navegador não suporta a aplicação usada neste site');
+	alert('ERRO :(Seu navegador nÃ£o suporta a aplicaÃ§Ã£o usada neste site');
 	return false;
     }
@@ -1149,5 +1149,5 @@
 
 //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Dessarquiva msgs locais pegando o codigo fonte das mesmas e mandando via POST para o servidor
-//para que elas sejam inseridas no imap pela funï¿œï¿œo  imap_functions.unarchive_mail.
+//para que elas sejam inseridas no imap pela funÃ§Ã£o  imap_functions.unarchive_mail.
 local_messages.prototype.unarchive_msgs = function (folder,new_folder,msgs_number){
 
@@ -1158,8 +1158,8 @@
     var handler_unarchive = function(data)
     {
-	if(data.error == '')
-	    write_msg(get_lang('All messages are successfully unarchived'));
-	else
-	    alert(data.error);
+		if(data.error == '')
+		    write_msg(get_lang('All messages are successfully unarchived'));
+		else
+		    alert(data.error);
     }
 
@@ -1170,35 +1170,39 @@
     if(msgs_number =='selected' || !msgs_number)
     {
-	msgs_number = get_selected_messages()
-	if (!msgs_number){
-	    write_msg(get_lang('No selected message.'));
-	    return;
-	}
-	var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in ("+msgs_number+")");
-	var source="";
-	var timestamp="";
-	while(rs.isValidRow()) {
-	    mail=connector.unserialize(rs.field(0));
-	    mail.msg_source?source_tmp = escape(mail.msg_source):source_tmp = escape(this.get_src(mail.url_export_file));
-//	    source_tmp=escape(this.get_src(mail.url_export_file));
-	    source+="#@#@#@"+source_tmp;
-	    timestamp+="#@#@#@"+rs.field(1);
-	    rs.next();
-	}
-	rs.close();
-	this.finalize();
+		msgs_number = get_selected_messages()
+		if (!msgs_number){
+		    write_msg(get_lang('No selected message.'));
+		    return;
+		}
+		var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in ("+msgs_number+")");
+		var source="";
+		var	flagged="";
+		var timestamp="";
+	
+		while(rs.isValidRow()) {
+			mail=connector.unserialize(rs.field(0));
+			mail.msg_source?source_tmp = escape(mail.msg_source):source_tmp = escape(this.get_src(mail.url_export_file));
+
+			flagged+="#@#@#@"+mail["Flagged"];
+			source+="#@#@#@"+source_tmp;
+			timestamp+="#@#@#@"+rs.field(1);
+			rs.next();
+		}
+		rs.close();
+		this.finalize();
     }
     else
     {
-	var rs = this.dbGears.execute("select mail,timestamp from mail where rowid="+msgs_number);
-	mail=connector.unserialize(rs.field(0));
-	var source ="";
-//	source = this.get_src(mail.url_export_file);
-	mail.msg_source?source = mail.msg_source:source = this.get_src(mail.url_export_file);
-	timestamp=rs.field(1);
-	rs.close();
-	this.finalize();
-    }
-    params="&folder="+new_folder+"&source="+source+"&timestamp="+timestamp;
+		var rs = this.dbGears.execute("select mail,timestamp from mail where rowid="+msgs_number);
+		mail=connector.unserialize(rs.field(0));
+		var source ="";
+
+		mail.msg_source?source = mail.msg_source:source = this.get_src(mail.url_export_file);
+		flagged = mail["Flagged"];
+		timestamp=rs.field(1);
+		rs.close();
+		this.finalize();
+    }
+    params="&folder="+new_folder+"&source="+source+"&timestamp="+timestamp+"&flagged="+flagged;
     cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params);
 }
@@ -1733,5 +1737,5 @@
 		var tempNomeArquivo = rs_attach.field(0).split("/");
 		var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length-1];
-		nomeArquivo = nomeArquivo.substring(0,nomeArquivo.length - 4); //Anexos no gears sï¿œo todos com extensï¿œo .php. tenho que tirar a extensï¿œo para ficar o nome real do arquivo.
+		nomeArquivo = nomeArquivo.substring(0,nomeArquivo.length - 4); //Anexos no gears sÃ¯Â¿Âœo todos com extensÃ¯Â¿Âœo .php. tenho que tirar a extensÃ¯Â¿Âœo para ficar o nome real do arquivo.
 		is_local_forward = true;
 		tmp_field = addForwardedFile('queue_' + rs.field(8), nomeArquivo, 'nothing');
