var emails, subject, titulo, msg;
var campanha = 1;
var erro_con = 0;
var erro_send = 0;
var deferredTask = $.Deferred();
var arquivar = 0;
var aquivo = '';
var count_envios = 0;
function startTask(i) {

    
    deferredTask = $.Deferred();
    
    var data = {
        email : emails[i],
        subject:  subject,
        titulo:  titulo,
        msg:  msg,
        campanha:  campanha,
        arquivar: arquivar,
        arquivo: arquivo
    };
        $.ajax(
            {
                url: base_url+'newsletter/handler/long_task',
                dataType: 'json',
                type: 'POST',
                data: data,
                success: function(retorno)
                {
                    if (retorno.valid === true)
                    {
                        if(retorno.bg == 'success')
                            count_envios++;
                       atualiza(i,true,retorno.bg,retorno.msg);
                    }
                    else
                    {
                        if(retorno.interrompe === true){
                            $('#enviar_emails').show();
                    	    addLog('Processo Concluído');
                    	    addErro('Processo Concluído');
                        }
                        else{
                             atualiza(i,false,retorno.bg,retorno.msg);
                        }
                    }
                },
                error: function(error)
                {
                    atualiza(i,false,'warning','Erro Servidor');
                },
        });   
}



function atualiza(i, sucess, bg = '', msg = '')
{
    if(sucess === true)
        addLog(emails[i],bg,msg);
    else
        addErro(emails[i],bg,msg);

    var progress = ((i+1)/emails.length)*100;
    document.getElementById("progress-bar").style.width = progress+'%';
    $('#qnt-p').html(progress.toFixed(0)+'%')
    $('#qnt-r').html((i+1)+'/'+emails.length)
    
    if(i+1 < emails.length)
    {
        deferredTask.resolve(i+1);
    }
    else
    {
        
        $('#enviar_emails').show();
	    addLog('Processo Concluído');
	    addErro('Processo Concluído');
	}
    
    deferredTask.done(function(i){
	    startTask(i);
    });
}
  
function stopTask() {
    es.close();
    addLog('Interrupted');
}

function addLog(email, bg = '', msg = '') {
    
    if(msg != '')
        msg = ' - '+msg;
    message = '<p class="text-'+bg+'" style="margin: 0;">'+email+msg+'</p>';
    var r = document.getElementById('results');
    r.innerHTML += message;
    r.scrollTop = r.scrollHeight;
    
    if(email == 'Processo Concluído')
    {
        setTimeout(function() {alert(count_envios+' E-mails enviados');}, 1000);
    }
    
    
    
}
function addErro(email, bg = '', msg = '') {
    
    if(msg != '')
        msg = ' - '+msg;
    message = '<p class="text-'+bg+'" style="margin: 0;">'+email+msg+'</p>';
    var r = document.getElementById('erros');
    r.innerHTML += message;

    r.scrollTop = r.scrollHeight;
}

function limpaLog() {
   $('#erros').html('');
   $('#results').html('');
   document.getElementById("progress-bar").style.width = '0%';
    $('#qnt-p').html('0%');
    $('#qnt-r').html('0/0');
}




jQuery(document).ready(function($) 
{
    $('.search').each(function(key)
    {
        var key = $(this).data('key');
        $('#search'+key).multiselect({
            search: {
                left: '<input type="text" name="q" class="form-control" placeholder="Search..." />',
                right: '<input type="text" name="q" class="form-control" placeholder="Search..." />',
            },
            fireSearch: function(value) {
                return value.length > 3;
            },
            right: '#js_multiselect_to_'+key,
            rightAll: '#js_right_All_'+key,
            rightSelected: '#js_right_Selected_'+key,
            leftSelected: '#js_left_Selected_'+key,
            leftAll: '#js_left_All_'+key
        });
    });
});

$("form[id=form-envia-emails]").submit(function(e)
{
    e.preventDefault();
    count_envios = 0;
    emails = $('input[name=emails]').val();
    subject = $('input[name=subject]').val();
    titulo = $('input[name=titulo]').val();
    msg = $('textarea[name=msg]').val();
    arquivar = $('input[name=arquivar]:checked').val();
    arquivo = $('select[name=arquivo]').val();
    
    
    if(emails !== "")    {
        emails = emails.split(",");
    }
    else
    {
        emails = new Array();
    }
    $.map($('.search_to option'), function (el, i) 
    {
        emails.push($(el).val());
    });

    if(emails.length < 1){
      alert('Selecione algum email');
      return
    }
    
    if (confirm("Tem certeza que deseja enviar para "+emails.length+" emails?") == true) {
      
    } else {
        alert('Nenhum email enviado.');
        return
    }

    if(!(campanha > 1))
    {
        if(subject === undefined || subject === ''){
            alert('subject vazio');
            return
        }
        if(titulo === undefined || titulo === ''){
            alert('titulo vazio');
            return
        }
        if(msg === undefined || msg === ''){
            alert('mensagem vazio');
            return
        }
    }
    
    if(arquivar == 1 && arquivo == ''){
        alert('Selecione o arquivo!');
            return
    }

    limpaLog();

    $('#enviar_emails').hide();

    startTask(0);



});



$('#select_campanha').change(function() {
  campanha = $(this).val();
  if(campanha > 1)  {
      $('.inputs_default').hide();
  }
  else  {
      $('.inputs_default').show();
  }
});

$('.ipt-arquivar').change(function() {
  arquivar = $('input[name=arquivar]:checked').val();
  if(arquivar > 0)  {
      $('.grupo_nome_arquivo').show();
  }
  else  {
      $('.grupo_nome_arquivo').hide();
  }
});


$("#emails").select2({



        placeholder: " + E-mails",

        width: '100%',

        tags: true,

        multiple: true,

        minimumInputLength: 1,

        tokenSeparators: [',', ' ', '\n'],

        allowNewValues: true,

  

});


$(".select2-arquivos").select2(
{
    width: '100%',
}    
);






















/*$('#login-form').submit(function(event)

{

        email = $('#login-form input[name=login]').val()

        var password = $('#login-form input[name=senha]').val()

        var referer = $('#login-form input[name=referer]').val()



        //if($('#login-form input[name=lembrar]').is(':checked')){

        //	var lembrar = 1;

        //}else{

        var lembrar = 0;

        //}

        var target = $(this).attr('action');



        var data = {

            email: email,

            password: password,

            lembrar: lembrar,

            referer: referer

        }



        var original_text = $('.div-submit-login').html();

        $('.div-submit-login').html('<a class="btn btn-default"><i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i> Processando</a>');



        $.ajax(

        {

            url: target,

            dataType: 'json',

            type: 'POST',

            data: data,

            success: function(retorno)

            {

                if (retorno.valid === true)

                {

                    document.location.href = retorno.redirect;

                }

                else

                {

                    $('.div-submit-login').html(original_text);

                    $('.msg-erro-login').html(retorno.msg).show();



                    $('#login-form').shake({

                        speed:80,

                        distance:10

                    });

                }

            },

            error: function(error)

            {

                $('.msg-erro-login').html('Não foi possível realizar o acesso! Falha na Comunicação.');

            }

        });

        return false;

    });*/