Index: /trunk/expressoMail1_2/index.php
===================================================================
--- /trunk/expressoMail1_2/index.php	(revision 7414)
+++ /trunk/expressoMail1_2/index.php	(revision 7420)
@@ -234,4 +234,5 @@
 	$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['quick_search_default'] = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['quick_search_default'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['quick_search_default'] : 1;
 	$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['confirm_read_message'] = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['confirm_read_message'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['confirm_read_message'] : 0;
+	$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['alert_message_attachment'] = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_message_attachment'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_message_attachment'] : 0;
 	// 	ACL for block edit Personal Data.
 	$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['enable_quickadd_telephonenumber'] = $current_config['expressoMail_enable_quickadd_telephonenumber'] == 'true' ? $current_config['expressoMail_enable_quickadd_telephonenumber'] : "";
@@ -331,4 +332,5 @@
 		var token_param = "'.$var_tokens.'";
 		var locale = "'.$GLOBALS['phpgw']->common->getPreferredLanguage().'";
+		var language = "'.$_SESSION['phpgw_info']['expressomail']['user']['preferences']['common']['lang'].'";
 		var defaultCalendar = "'.  (isset($config['defaultCalendar']) ?  $config['defaultCalendar']  :  "calendar" )    .'";
 		$("#sideboxdragarea").hide();
Index: /trunk/expressoMail1_2/setup/phpgw_pt-br.lang
===================================================================
--- /trunk/expressoMail1_2/setup/phpgw_pt-br.lang	(revision 7414)
+++ /trunk/expressoMail1_2/setup/phpgw_pt-br.lang	(revision 7420)
@@ -626,4 +626,5 @@
 Voided message	expressoMail1_2	pt-br	Mensagem violada
 Would you like to send the read receipt?	expressoMail1_2	pt-br	Deseja enviar a mensagem de confirmação de leitura?
+Would you like to activate the alert for message attachment?	expressoMail1_2	pt-br	Exibir confirmação de envio de mensagem quando houver a palavra 'anexo'	no corpo do email e não houver anexos?
 Warning: Your Mailbox is almost full!	expressoMail1_2	pt-br	Aviso: Sua caixa postal está quase cheia!
 was succefully removed	expressoMail1_2	pt-br	 foi removida com sucesso
@@ -674,4 +675,5 @@
 You must wait while the messages will be exported...	expressoMail1_2	pt-br	Aguarde enquanto as mensagens serão exportadas...
 You must wait while the messages will be imported...	expressoMail1_2	pt-br	Aguarde enquanto as mensagens serão importadas...
+You wrote "%1" in your message, but there are no files attached. Send it anyway?	expressoMail1_2	pt-br	Você escreveu "%1" na sua mensagem, mas não há arquivos anexados. Enviar assim mesmo?
 Your Mailbox is 100% full! You must free more space or will not receive messages.	expressoMail1_2	pt-br	Sua caixa postal está 100% cheia! Libere espaço ou não irá receber mensagens.
 Your mailbox is shared with	expressoMail1_2	pt-br	Sua caixa postal está compartilhada com
Index: /trunk/expressoMail1_2/inc/hook_settings.inc.php
===================================================================
--- /trunk/expressoMail1_2/inc/hook_settings.inc.php	(revision 6996)
+++ /trunk/expressoMail1_2/inc/hook_settings.inc.php	(revision 7420)
@@ -514,4 +514,5 @@
 
 create_check_box('Would you like to have a read receipt option to read messages?','confirm_read_message','');
+create_check_box('Would you like to activate the alert for message attachment?','alert_message_attachment','');
 
 $default = array(
Index: /trunk/expressoMail1_2/js/main.js
===================================================================
--- /trunk/expressoMail1_2/js/main.js	(revision 7414)
+++ /trunk/expressoMail1_2/js/main.js	(revision 7420)
@@ -2988,30 +2988,79 @@
 }
 
+/* 
+ * Método que verifica se existe algum item de 'words' em 'body'. 
+ * Se houver, retorna a primeira ocorrência encontrada de words, caso contrário retorna false. 
+ */
+function verifyBodyWords(body, words) {
+	for(i = 0; i < words.length; i++) {
+		if(body.search(words[i]) != -1) {
+			return words[i]; 
+		}
+	}
+	return false;
+}
+
+
 function send_message(ID, folder, folder_name){
-    if(!zebraDiscardEventDialog && $('#fileupload_msg'+ID).find('.att-box-loading').length )
-    {
-        zebraDiscardEventDialog = true;
-        window.setTimeout(function() {
-            $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', {
-                'type':     'question',
-                'overlay_opacity': '0.5',
-                'buttons':  ['Descartar anexos e enviar', 'Continuar editando e esperar anexos'],
-                'width' : 500,
-                'onClose':  function(clicked) {
-                    if(clicked == 'Descartar anexos e enviar' ){ 
-                        $.each($('#fileupload_msg'+ID).find('.att-box'), function(index, value){
-                            if($(value).find(".att-box-loading").length)
-                                $(value).find('.att-box-delete').trigger("click");
-                        });
-                        send_valided_message(ID, folder, folder_name);
-                    }
-                    window.setTimeout(function() {
-                        zebraDiscardEventDialog = false;
-                    }, 500);
-                }
-            })
-        }, 300); 
-    }else
-        send_valided_message(ID, folder, folder_name);     
+	var content_body  = RichTextEditor.getData('body_'+ID);     
+	/* 
+		Funcionalidade que verifica se o usuário escreveu a palavra anexo no corpo da mensagem e não anexou nenhum arquivo.
+		Esta funcionalidade é ativada nas preferências do módulo ExpressoMail.
+	*/	
+	/* Lista de palavras que vão ser procuradas no corpo do email, referente às variantes da palavra anexo em português, inglês e espanhol. */
+	if(language == "pt-br") //Português brasileiro
+		var words = ['anexo', 'anexos', 'anexada', 'anexado', 'anexei', 'anexando'];
+	else if(language == "es") //Espanhol
+		var words = ['adjunto', 'adjuntos', 'adjuntado'];
+	else //Inglês ('en') 
+		var words = ['attach', 'attachment', 'attached', 'annex', 'appending'];
+
+	if($('#fileupload_msg'+ID).find('.att-box').length == 0 && preferences.alert_message_attachment == '1' ) {
+		var bodyWord = verifyBodyWords(content_body, words);
+		if(bodyWord) {		
+			$.Zebra_Dialog(get_lang('You wrote "%1" in your message, but there are no files attached. Send it anyway?', bodyWord), {
+				'type':     'question',
+				'overlay_opacity': '0.5',
+				'buttons':  ['OK', 'Cancelar'],
+				'width' : 500,
+				'onClose':  function(clicked) {
+					if(clicked == 'OK' ){
+						send_valided_message(ID, folder, folder_name);				
+						return;
+					} else {
+						return;
+					}
+				}
+			});
+		}
+		else
+			send_valided_message(ID, folder, folder_name);	
+	}
+	else if(!zebraDiscardEventDialog && $('#fileupload_msg'+ID).find('.att-box-loading').length)
+	{
+		zebraDiscardEventDialog = true;
+		window.setTimeout(function() {
+			$.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', {
+				'type':     'question',
+				'overlay_opacity': '0.5',
+				'buttons':  ['Descartar anexos e enviar', 'Continuar editando e esperar anexos'],
+				'width' : 500,
+				'onClose':  function(clicked) {
+					if(clicked == 'Descartar anexos e enviar' ){ 
+						$.each($('#fileupload_msg'+ID).find('.att-box'), function(index, value){
+							if($(value).find(".att-box-loading").length)
+								$(value).find('.att-box-delete').trigger("click");
+						});
+						send_valided_message(ID, folder, folder_name);
+					}
+					window.setTimeout(function() {
+						zebraDiscardEventDialog = false;
+					}, 500);
+				}
+			})
+		}, 300); 
+	}else {
+		send_valided_message(ID, folder, folder_name);
+		}
 }
 
