var XmlHttpObj;
var noenviados="";
var enviarmailing=1;
var numenviados=0;
var numnoenviados=0;

var correoAProcesar=0;
var listaEmails;
var totalEmails;
var contadorEmails=0;

function CreateXmlHttpObj()
{
	try
	{
		XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
	
	}
	catch(e)
	{
		try
		{
			XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttpObj = null;
		}
	}
		if(!XmlHttpObj && typeof XMLHttpRequest != "undefined") 
	{
		XmlHttpObj = new XMLHttpRequest();
	}
}

function CreateXmlHttpObj2()
{
	try
	{
		XmlHttpObj2 = new ActiveXObject("Msxml2.XMLHTTP");
	
	}
	catch(e)
	{
		try
		{
			XmlHttpObj2 = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttpObj2 = null;
		}
	}
		if(!XmlHttpObj2 && typeof XMLHttpRequest != "undefined") 
	{
		XmlHttpObj2 = new XMLHttpRequest();
	}
}

function EnviarMailing(lista,correo) {
noenviados="";
numenviados=0;
numnoenviados=0;
correoAProcesar=correo;
var enlaces=document.getElementById("enlaces");
enlaces.style.display="none";
var to=document.getElementById("advice");
to.innerHTML="<img src='../lib/majordomo/imgsrc/loading.gif' align='absmiddle'>Leyendo lista de correos...";
   var requestUrl;

     requestUrl = "../lib/majordomo/xmlmails.php" + "?id=" + encodeURIComponent(lista)+"&correo=" + encodeURIComponent(correo);
	CreateXmlHttpObj();
	
	if(XmlHttpObj)
	{
	
		XmlHttpObj.onreadystatechange = CargarMails;
		XmlHttpObj.open( "POST", requestUrl, true );
		XmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XmlHttpObj.send('');		
	}
}

function SendEmailNow(email,correo) {
   var requestUrl;

     requestUrl = "../lib/majordomo/xmlsendmailing.php" + "?id=" + encodeURIComponent(correo)+"&mail=" + encodeURIComponent(email);
	CreateXmlHttpObj();
	
	if(XmlHttpObj)
	{
	
		XmlHttpObj.onreadystatechange = MailSended;
		XmlHttpObj.open( "POST", requestUrl, true );
		XmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XmlHttpObj.send('');		
	}
}


function CargarMails()
{
	if(XmlHttpObj.readyState == 4)
	{
		if(XmlHttpObj.status == 200)
		{			
			ProcesarEnvio(XmlHttpObj.responseXML.documentElement);
		}
		else
		{
			alert("Código de error: "  + XmlHttpObj.status);
		}
	}
}


function MailSended()
{
	if(XmlHttpObj.readyState == 4)
	{
		if(XmlHttpObj.status == 200)
		{			
			VerEstadoEnvio(XmlHttpObj.responseXML.documentElement);
		}
		else
		{
			alert("Código de error: "  + XmlHttpObj.status);
		}
	}
}


function ProcesarEnvio(mailsNode)
{	

	var Nodos = mailsNode.getElementsByTagName('mail');
	var correo; 
	correo = GetInnerText(Nodos[0]);
	listaEmails = mailsNode.getElementsByTagName('email');
	totalEmails = listaEmails.length
	var to=document.getElementById("advice");
	to.innerHTML= totalEmails + " correos en la lista.";
	contadorEmails=0;
	correoAProcesar=correo;
	ProcesarElemento();
}

function VerEstadoEnvio(envioNode)
{	

	var Nodos = envioNode.getElementsByTagName('envio');
	var Email = envioNode.getElementsByTagName('email');
	var textValue; 
	textValue = GetInnerText(Nodos[0]);
	var EmailValue;
	EmailValue= GetInnerText(Email[0]);
	if (textValue==0)
	{
	noenviados=noenviados+EmailValue+"<br />";
	numnoenviados=numnoenviados+1;
	}
	if (textValue==1)
	{
	numenviados=numenviados+1;
	}
	contadorEmails=contadorEmails+1;
	if (contadorEmails<totalEmails) { ProcesarElemento(); }
	if (contadorEmails>=totalEmails) { FinalizarProceso(); }
}

function GetInnerText (node)
{
	 return (node.textContent || node.innerText || node.text) ;
}

function ProcesarElemento() {
	var to=document.getElementById("advice");
	var to2=document.getElementById("sending");
	to2.innerHTML="<img src='../lib/majordomo/imgsrc/loading.gif' align='absmiddle'>Enviando correo a <strong>" + GetInnerText(listaEmails[contadorEmails]); + "</strong>";
	to.innerHTML= totalEmails + " correos en la lista. Quedan por enviar " + (totalEmails-contadorEmails-1) + " mensajes.";
	SendEmailNow(GetInnerText(listaEmails[contadorEmails]),correoAProcesar);	
}

function FinalizarProceso() {
	var enlaces=document.getElementById("enlaces");
	enlaces.style.display="block";
	var to=document.getElementById("advice");
	var to2=document.getElementById("sending");
	var ponertexto="Se han enviado el correo a " + numenviados+ " destinatarios";
	if (numnoenviados>0) {
	ponertexto=ponertexto+" y falló el envio de " + numnoenviados+":<br />"+noenviados;
	}
	to.innerHTML="";
	to2.innerHTML=ponertexto;	
}


function checkmailnow(correo,lista) {
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (correo.length == 0 ) 
	{ 
	alert("No se ha escrito ninguna dirección de correo.");
	return true;
	}
if (filter.test(correo)) {
	var requestUrl;
	requestUrl = "../lib/majordomo/xmlcheckmail.php" + "?mail=" + encodeURIComponent(correo) + "&lista=" + encodeURIComponent(lista);
	CreateXmlHttpObj();
	if(XmlHttpObj)
		{
		XmlHttpObj.onreadystatechange = newsletterChangeHandler;
		XmlHttpObj.open( "POST", requestUrl, true );
		XmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XmlHttpObj.send('');		
		}
	}
else
	{
	alert("Escriba una dirección de correo válida.");
	document.getElementById('email').focus();
	}
}


function subscribenow(correo,lista) {
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (correo.length == 0 ) 
	{ 
	alert("No se ha escrito ninguna dirección de correo.");
	return true;
	}
if ((filter.test(correo)) && (provincia!=0)) {
	var requestUrl;
	requestUrl = "../lib/majordomo/xmlsubscribe.php" + "?mail=" + encodeURIComponent(correo) + "&lista=" + encodeURIComponent(lista);
	CreateXmlHttpObj();
	if(XmlHttpObj)
		{
		XmlHttpObj.onreadystatechange = newsletterChangeHandler;
		XmlHttpObj.open( "POST", requestUrl, true );
		XmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XmlHttpObj.send('');		
		}
	}
else
	{
	alert("Escriba una dirección de correo válida y seleccione su provincia de residencia.");
	document.getElementById('email').focus();
	}
}

function unsubscribenow(correo,lista) {
var correo = document.getElementById('email').value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (correo.length == 0 ) return true;
if (filter.test(correo)) {
	var requestUrl;
	requestUrl = "../lib/xmlunsubscribe.php" + "?mail=" + encodeURIComponent(correo) + "&lista=" + encodeURIComponent(lista);
	CreateXmlHttpObj();
	if(XmlHttpObj)
		{
		XmlHttpObj.onreadystatechange = newsletterChangeHandler;
		XmlHttpObj.open( "POST", requestUrl, true );
		XmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XmlHttpObj.send('');		
		}
	}
else
	{
	alert("Ingrese una dirección de correo válida");
	document.getElementById('email').focus();
	}
}

function newsletterChangeHandler()
{
	if(XmlHttpObj.readyState == 4)
	{
		if(XmlHttpObj.status == 200)
		{			
			PopulateNewsletter(XmlHttpObj.responseXML.documentElement);
		}
		else
		{
			alert("Código de error: "  + XmlHttpObj.status);
		}
	}
}

function PopulateNewsletter(usersNode)
{	

	var Nodos = usersNode.getElementsByTagName('code');
	var textValue; 
	textValue = GetInnerText(Nodos[0]);
	if (textValue==1)
	{
	alert("Se ha suscrito a la lista de correos.");
	}
	if (textValue==0)
	{
	alert("No se ha podido realizar la suscripción");
	}
    if (textValue==-1)
	{
	alert("Se ha cancelado la suscripción a la lista de correos");
	}
}


