TITULO = 'Central do Assinante Supercabo'
sucesso = function(tipo) {
    $('#status_block span').remove();
    if (tipo=='del') {
        $('#status_block').append('<span class="bold">Email marcado para exclusão com sucesso. Após 60 dias o email será excluído definitivamente.</span>');
    } else if (tipo=='rev'){
        $('#status_block').append('<span class="bold">Exclusão de email revertida com sucesso.</span>');
    } else {
        $('#status_block').append('<span class="bold">Alteração de ' + tipo + ' realizada com sucesso</span>');
    }
    $('#status_block span').click(function(){$(this).remove();});
    setTimeout(function() { $('#status_block span').remove() }, 15000);
}

cancelar = function(id_obj) {
    $('[id^=editando_]').remove();
}

verificar_senha = function(id_obj) {
    if ($('#alter_senha_' + id_obj).attr('value') != $('#alter_confirmar_' + id_obj).attr('value')) {
        Boxy.alert('Senha diferente da confirmação',  
                   function() {
                        $('#alter_senha_' + id_obj).attr('value', '');
                        $('#alter_confirmar_' + id_obj).attr('value', '');
                        $('#alter_senha_' + id_obj).focus();
                   }, 
                   {title: TITULO, unloadOnHide: true});
        return false;
    }
    return true;
}

alterar_quota = function(link, mail) {
    cancelar(mail);
    a = get_quota_maxima();
    b = parseInt(a);
    quotamaxima = b + parseInt($(link).text().split(' '));
    var item = $(
        '<tr id="editando_' + mail + '">' +
            '<td colspan="6">' +
                '<div class="alterar-item alterar-quota destaque-box">' +
                    '<p>Quota máxima: <strong>' + quotamaxima + ' MB</strong></p>' + 
                    '<p>' +
                        '<input type="text" id="alter_quota_' + mail + '" size="10" maxlength="32" onkeypress="mascara(this, somenteNumeros)" />' +
                    '</p>' +
                    '<p class="botoes-mini">' +
                        '<a href="javascript:;" class="icone confirmar" title="Confirmar" onclick="to_alterar_quota(' + mail + ')" >Confirmar</a>' +
                        '<a href="javascript:;" class="icone excluir" title="Cancelar" onclick="cancelar(' + mail + ')" >Cancelar</a>' +
                    '</p>' +
                '</div>' +
            '</td>' +
        '</tr>'
    );
    $(link).parent().parent().after(item);
    $('#alter_quota_' + mail).focus();
}

to_alterar_quota = function(mail) {
    $('#editando_' + mail + ' div.alterar-quota').addClass('loading');
    $('#editando_' + mail + ' div.alterar-quota p').hide();
    quota = $('#alter_quota_' + mail).attr('value');
    $.ajax({
        type: 'POST',
        url: '/email/alterar_quota/',
        dataType: 'json',
        data: 'email_id=' + mail + '&quota=' + quota,
        success: function(retorno) {
            $('#quota_' + mail).text(quota + ' MB');
            cancelar(mail);
            sucesso('Quota');
            atualizar_quota_maxima(retorno['quota_maxima']);
        },
        error: function(retorno) {
            texto = 'Ocorreu um erro alterar a quota';
            if(!(retorno.responseText.length > 80 || retorno.responseText.length < 5)) {
                texto = retorno.responseText;
            }
            Boxy.alert(texto,  
                        function() {
                            cancelar(mail);
                        }, 
                        {title: TITULO, unloadOnHide: true});
            }
    });
}

alterar_senha = function(link, mail) {
    cancelar(mail);
    var item = $(
        '<tr id="editando_' + mail + '">' +
            '<td colspan="6">' +
                '<div class="alterar-item alterar-senha destaque-box">' +
                    '<table class="limpa">' +
                        '<thead>' +
                            '<th>Nova Senha:</th>' +
                            '<th>Confirmar:</th>' +
                        '</thead>' +
                        '<tbody>' +
                            '<tr>' +
                                '<td>' +
                                    '<input name="senha" type="password" id="alter_senha_' + mail + '" size="10" maxlength="32" />' +
                                '</td>' +
                                '<td>' +
                                    '<input name="confirmar" type="password" id="alter_confirmar_' + mail + '" size="10" maxlength="32" />' +
                                '</td>' +
                            '</tr>' +
                        '</tbody>' +
                    '</table>' +
                    '<p class="botoes-mini">' +
                        '<a href="javascript:;" class="icone confirmar" title="Confirmar" onclick="to_alterar_senha(' + mail + ')">Confirmar</a>' +
                        '<a href="javascript:;" class="icone excluir" title="Cancelar" onclick="cancelar(' + mail + ')">Cancelar</a>' +
                    '</p>' +
                '</div>' +
            '</td>' +
        '</tr>'
    );
    $(link).parent().parent().after(item);
    $('#alter_senha_' + mail).focus();
}

to_alterar_senha = function(mail) {
    if (verificar_senha(mail)) {
        $('#editando_' + mail + ' div.alterar-senha').addClass('loading');
        $('#editando_' + mail + ' div.alterar-senha table, #editando_' + mail + ' div.alterar-senha p').hide();
        $.ajax({
            type: 'POST',
            url: '/email/alterar_senha/',
            dataType: 'json',
            data: 'email_id=' + mail + '&senha=' + $('#alter_senha_' + mail).attr('value'),
            success: function(retorno) {
                cancelar(mail);
                sucesso('Senha');
                atualizar_quota_maxima(retorno['quota_maxima']);
            },
            error: function(retorno) {
            texto = 'Ocorreu um erro alterar a senha';
            if(!(retorno.responseText.length > 80 || retorno.responseText.length < 5)) {
                texto = retorno.responseText;
            }
            Boxy.alert(texto,  
                        function() {
                            cancelar(mail);
                        },
                        {title: TITULO, unloadOnHide: true});
            }
        });
    }
}

alterar_nome = function(link, mail) {
    cancelar(mail);
    var item = $(
        '<tr id="editando_' + mail + '">' +
            '<td colspan="6">' +
                '<div class="alterar-item alterar-nome destaque-box">' +
                    '<p>Alterar nome:</p>' +
                    '<p>' +
                        '<input type="text" id="alter_nome_' + mail + '" size="42" maxlength="60" value="' + $(link).text() + '" />' +
                    '</p>' +
                    '<p class="botoes-mini">' +
                        '<a href="javascript:;" class="icone confirmar" title="Confirmar" onclick="to_alterar_nome(' + mail + ')">Confirmar</a>' +
                        '<a href="javascript:;" class="icone excluir" title="Cancelar" onclick="cancelar(' + mail + ')">Cancelar</a>' +
                    '</p>' +
                '</div>' +
            '</td>' +
        '</tr>'
    );
    $(link).parent().parent().after(item);
    $('#alter_nome_' + mail).focus();
}

to_alterar_nome = function(mail) {
    $('#editando_' + mail + ' div.alterar-nome').addClass('loading');
    $('#editando_' + mail + ' div.alterar-nome p').hide();
    $.ajax({
        type: 'POST',
        url: '/email/alterar_nome/',
        dataType: 'json',
        data: 'email_id=' + mail + '&nome=' + $('#alter_nome_' + mail).attr('value'),
        success: function(retorno) {
            $('#nome_' + mail).text(retorno['nome']);
            cancelar(mail);
            sucesso('Nome');
            atualizar_quota_maxima(retorno['quota_maxima']);
        },
        error: function(retorno) {
            texto = 'Ocorreu um erro ao alterar o nome';
            if(!(retorno.responseText.length > 80 || retorno.responseText.length < 5)) {
                texto = retorno.responseText;
            }
            Boxy.alert(texto,  
                        function() {
                            cancelar(mail);
                        }, 
                        {title: TITULO, unloadOnHide: true});
            }
    });
}

excluir = function(link, usuario, dominio, mail) {
    cancelar(mail);
    var msg = '<div>' + 
            '<span>Deseja realmente excluir o email <span class="destaque">' + usuario +'@' + dominio + '</span>? <br />' + 
            '<strong>Esta operação não poderá ser desfeita.</strong></span>' + 
            '<div class="submits">' + 
                '<input onclick="Boxy.get(this).hide(); return false" id="close" type="button" class="botao botao-cancelar" value="Cancelar" />' + 
                '<input type="button" class="botao botao-ok" value="Excluir" onclick="Boxy.get(this).hide(to_excluir(' + mail + '))" />' + 
            '</div>' + 
        '</div>';
    new Boxy(msg, {modal: true, unloadOnHide: true, title: 'Central do Assinante Supercabo', closeable: false});
    $('#close').focus();
}

excluir_sem_email = function(link, mail) {
    cancelar(mail);
    var msg = '<div>' + 
            '<span>Deseja realmente excluir o email selecionado? <br />' + 
            '<strong>Esta operação somente poderá ser desfeita em um prazo determinado.</strong></span>' + 
            '<div class="submits">' + 
                '<input onclick="Boxy.get(this).hide(); return false" id="close" type="button" class="botao botao-cancelar" value="Cancelar" />' + 
                '<input type="button" class="botao botao-ok" value="Excluir" onclick="Boxy.get(this).hide(to_excluir(' + mail + '))" />' + 
            '</div>' + 
        '</div>';
    new Boxy(msg, {modal: true, unloadOnHide: true, title: 'Central do Assinante Supercabo', closeable: false});
    $('#close').focus();
}

to_excluir = function(mail) {
    email_tr = $('#mail_' + mail).html();
    $('#mail_' + mail).addClass('loading');
    $('#mail_' + mail).html('<td colspan="6">&nbsp;</td>');
    $.ajax({
        type: 'POST',
        url: '/email/excluir_email/' + mail,
        dataType: 'json',
        data: '',
        success: function(retorno) {
            $('#mail_' + mail).removeClass('loading');
            $('#mail_' + mail).html(email_tr);
            $('#mail_' + mail).attr('title', "Esta conta de Email está marcada para exclusão - Ela será excluída definitivamente seis meses após o momento em que ela foi marcada. Para cancelar a exclusão, clique em 'Reverter', se esta opção estiver disponível.");
            $('#mail_' + mail).addClass('email-cancelado');
            $('#mail_' + mail + ' td:last-child').html(
                '<a onclick="reverter_exclusao(' + mail + ')" class="opcoes-email icone reverter-exclusao" title="Reverter a exclusão do Email" href="javascript:;">Reverter</a>'
            );
            $('#nome_' + mail).before($('#nome_' + mail).text()).remove();
            quota_texto = '<span class="icone quota">' + $('#quota_' + mail).text() + '</span>';
            $('#quota_' + mail).before(quota_texto).remove();
            $($('#mail_' + mail).children().get(4)).html('');
            sucesso('del');
            atualizar_quota_maxima(retorno['quota_maxima']);
            toogle_tooltip_especifico('mail_' + mail);
        },
        error: function(retorno) {
            texto = 'Ocorreu um erro ao excluir o email';
            if(!(retorno.responseText.length > 80 || retorno.responseText.length < 5)) {
                texto = retorno.responseText;
            }
            Boxy.alert(texto,  
                        function() {
                            $('#mail_' + mail).removeClass('loading');
                            $('#mail_' + mail).html(email_tr);
                        }, 
                        {title: TITULO, unloadOnHide: true});
        }
    });
}

reverter_exclusao = function(mail) {
    cancelar(mail);
    var msg = '<div>' + 
            '<p>Deseja reverter a exclusão do email selecionado? </p>' + 
            '<div class="submits">' + 
                '<input onclick="Boxy.get(this).hide(); return false" id="close" type="button" class="botao botao-cancelar" value="Cancelar" />' + 
                '<input type="button" class="botao botao-ok" value="Reverter Exclusão" onclick="Boxy.get(this).hide(to_reverter_exclusao(' + mail + '))" />' + 
            '</div>' + 
        '</div>';
    new Boxy(msg, {modal: true, unloadOnHide: true, title: 'Central do Assinante Supercabo', closeable: false});
    $('#close').focus();
}

to_reverter_exclusao = function(mail) {
    email_tr = $('#mail_' + mail).html();
    $('#mail_' + mail).addClass('loading');
    $('#mail_' + mail).html('<td colspan="6">&nbsp;</td>');
    $.ajax({
        type: 'POST',
        url: '/email/reverter_exclusao/' + mail,
        dataType: 'json',
        data: '',
        success: function(retorno) {
            $('#mail_' + mail).removeClass('loading');
            $('#mail_' + mail).html(email_tr);
            $('#mail_' + mail).removeClass('email-cancelado');
            $('#mail_' + mail).removeAttr('title');
            $('#mail_' + mail + ' td:last-child').html(
                '<a onclick="excluir_sem_email(this, ' + mail + ')" class="opcoes-email icone excluir" title="Excluir Email" href="javascript:;">Excluir</a>'
            );
            $($('#mail_' + mail).children().get(0)).html(
                '<a class="opcoes-email" onclick="alterar_nome(this, ' + mail + ')" id="nome_' + mail + '" title="Alterar Nome" href="javascript:;">' + $($('#mail_' + mail).children().get(0)).html() + '</a>'
            );
            $($('#mail_' + mail).children().get(2)).html(
                '<a class="opcoes-email icone quota" onclick="alterar_quota(this, ' + mail + ')" id="quota_' + mail + '" title="Alterar Quota" href="javascript:;">' + $('span', $($('#mail_' + mail).children().get(2))).html() + '</a>'
            );
            $($('#mail_' + mail).children().get(4)).html(
                '<a onclick="alterar_senha(this, ' + mail + ')" class="opcoes-email icone senha" title="Alterar Senha" href="javascript:;">Alterar Senha</a>'
            );
            sucesso('rev');
            atualizar_quota_maxima(retorno['quota_maxima']);
            toogle_tooltip_especifico('mail_' + mail);
        },
        error: function(retorno) {
            //FIXME: tirar isso abaixo
            texto = 'Ocorreu um erro ao excluir o email';
            if(!(retorno.responseText.length > 300 || retorno.responseText.length < 5)) {
                texto = retorno.responseText;
            }
            Boxy.alert(texto,  
                        function() {
                            $('#mail_' + mail).removeClass('loading');
                            $('#mail_' + mail).html(email_tr);
                        }, 
                        {title: TITULO, unloadOnHide: true});
        }
    });
}

atualizar_quota_maxima = function(quota_maxima) {
    $('#quota_maxima').text(quota_maxima);
}

get_quota_maxima = function() {
    return $('#quota_maxima').text();
}

toogle_tooltip_especifico = function(id) {
    $('#' + id).tooltip({
        track: true,
        delay: 0,
        fade: 250,
        showURL: false,
        showBody: " - ",
        extraClass: "aviso-email-cancelado",
        fixPNG: true,
        left: -120
    });
}

function verificar_trafego(is_ie) {
    $('#tabela_trafego').addClass('loading');
    extrato_atual = $('#tabela_trafego tbody').html();
    $('#tabela_trafego tbody tr td').html('&nbsp;');
    traf = $('#total_trafego').html();
    $('#total_trafego').html('--');
    $.ajax({
        type: 'POST',
        url: '/extrato/buscar_extrato/',
        dataType: 'json',
        data: $('#formulario_trafego').serialize(),
        success: function(retorno) {
            extratos = retorno["extratos"]
            trs = '';
            if (extratos.length == 0) {
                trs = '<tr><td colspan="2">Não foram encontrados registros de tráfego para o período selecionado</td></tr>'
                $('#total_trafego').html('0 MB');
            } else {                
                for (var i = 0; i < extratos.length; i++) {
                    trs += '<tr>' +
                                '<td>' + extratos[i]["dia"] + '</td>' +
                                '<td class="destaque">' + extratos[i]["trafego"] + ' MB</td>' +
                           '</tr>'
                }
                $('#total_trafego').html(retorno["total_trafego"] + ' MB');
            }
            $('#tabela_trafego tbody').html('').append(trs);
            $('#tabela_trafego').removeClass('loading');
            if(is_ie == true) {
                $('#tabela_trafego tr').hover(
                  function () {
                    $(this).attr('style', 'background-color: #CEE0E8;');
                  }, 
                  function () {
                    $(this).removeAttr('style');
                  }
                );
            }
        },
        error: function(retorno) {
            texto = 'Não foi possível buscar o extrato. Por favor, tente novamente em alguns instantes ou entre em contato com nosso suporte.';
            if(!(retorno.responseText.length > 300 || retorno.responseText.length < 5)) {
                texto = retorno.responseText;
            }
            Boxy.alert(texto,  
                        function() {
                            $('#tabela_trafego tbody').html(extrato_atual);
                            $('#tabela_trafego').removeClass('loading');
                            $('#total_trafego').html(traf);
                        }, 
                        {title: TITULO, unloadOnHide: true});
        }
    });
}


/*
 * Login
 */

function preparar_login() {
    $('.login-conteiner-fill').hover(
        function () {
            mudar_formulario(this);
        }, 
        function () {
            return;
        }
    );
}

function mudar_formulario(__elemento) {
    if (!$(__elemento).hasClass('prioridade')) {
        $('.login-conteiner', __elemento).removeClass('login-conteiner-inativo');
        $('.prioridade .login-conteiner').addClass('login-conteiner-inativo')
        $('.prioridade').removeClass('prioridade');
        $(__elemento).addClass('prioridade');
        $('input[name=usuario]', __elemento).focus();
    }
}
