﻿var ELEMENTOS_ENVIO_EMAIL = ["sucesso_envio", "falha_envio", "enviando_mensagem", "envio_parcial"];

function monta_mensagens_envio(tipo, mensagem, mensagem_extra) {
	mensagem = getModuleOption("envia_email", "mensagem_" + tipo, mensagem);
	var html = "<p class='envio_mensagem_principal'>" + mensagem + "</p>";
	
	var opcao_mensagem_extra = getModuleOption("envia_email", "mensagem_" + tipo + "_extra", mensagem_extra);
	mensagem_extra = (mensagem_extra == undefined) ? opcao_mensagem_extra : mensagem_extra;
	if (mensagem_extra)
		html += "<p>" + mensagem_extra + "</p>";
	
	return html;
}

function envia_email_com_status(destinatario, assunto, conteudo) {
	showOnlyElement("enviando_mensagem", ELEMENTOS_ENVIO_EMAIL);
	envia_email(
		destinatario, assunto, conteudo,
		function(resultado, erros) {
			var mostrar;
			if (resultado == "sucesso") {
				mostrar = "sucesso_envio";
				$("sucesso_envio").innerHTML = monta_mensagens_envio("sucesso", "Mensagem enviada com sucesso!", false);
			} else if (resultado == "falha") {
				mostrar = "falha_envio";
				$("falha_envio").innerHTML = monta_mensagens_envio("falha", "Não foi possível enviar a mensagem.", "Tente novamente mais tarde ou contate o administrador do site.");
			} else if (resultado == "parcial") {
				mostrar = "envio_parcial";
				var mensagem_erros = "A mensagem não pôde ser enviada para os seguintes destinatários:</p><p>" + erros.split(",").map(function(erro) {return "&nbsp;&nbsp;&nbsp;&nbsp;" + erro}).join("<br />");
				$("envio_parcial").innerHTML = monta_mensagens_envio("parcial", "Alguns dos destinatários não receberam a mensagem.", mensagem_erros);
			}
			
			showOnlyElement(mostrar, ELEMENTOS_ENVIO_EMAIL);
		}
	);
}

function escreve_div_email(id, texto) {
	document.write("<div style='display: none' id='" + id + "' class='resultado_envio'>");
	if (texto)
		document.write("<p class='envio_mensagem_principal'>" + texto + "</p>");
	document.write("</div>");
}

function prepara_envio_email() {
	loadCSS("/modelos/envio_email.css");
	escreve_div_email("sucesso_envio");
	escreve_div_email("falha_envio");
	escreve_div_email("envio_parcial");
	escreve_div_email("enviando_mensagem", "Aguarde: enviando a mensagem...");
}


function envia_email(destinatario, assunto, conteudo, func) {
	window.id_frame_envio_email = createIframe(
		function() {
			if (estado_envio_email == "preenchendo") {
				estado_envio_email = "enviando";
				var doc = iframeDocument(frame_envio_email);
				_$(doc, "destinatario").value = destinatario;
				_$(doc, "assunto").value = assunto;
				_$(doc, "conteudo").value = conteudo;
				_$(doc, "host").value = window.location.host;
				doc.forms[0].submit();
			}
		}
	);
	window.frame_envio_email = $(id_frame_envio_email);
	window.estado_envio_email = "preenchendo";
	window.terminou_envio_email = func;
	iframeNavigate(frame_envio_email, "/scripts/form_email.html");
	
	/*
	var request = new IframeRequest("/scripts/sendmail.aspx", ["destinatario", "assunto", "conteudo"], "POST");
	request.send(
		[destinatario, assunto, conteudo],
		function(doc) {
			if (func)
				func($T(_$(doc, "resultado")), $T(_$(doc, "erros")));
		}
	);
	*/
}

