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">' +
                        '<tr>' +
                            '<td>Nova Senha:</td>' +
                            '<td>Confirmar:</td>' +
                        '</tr>' +
                        '<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
 */

/*
 * Função destinada dar o bind no formulário de login de email ou de ppv.
 */
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();
    }
}

function carregar_faturas_aberto(cod) {
    $.ajax({
        type: 'POST',
        url: '/segundavia/faturasaberto/',
        data: 'codigo=' + cod,
        cache: false,
        success: function(data) {
            $('#mesesemaberto').html('').append(data);
            $('#form-segunda-via-verificar').removeClass('loading');
            $('#form-segunda-via-verificar table').removeClass('form-segunda-via-espera');
            window.scroll(0, 0);
        },
        error: function(retorno) {
            var ret = $('<p class="centralizar-texto"></p>');
            ret.text(retorno.responseText);
            $('#mesesemaberto').html('').append(ret);
            $('#form-segunda-via-verificar').removeClass('loading');
            $('#form-segunda-via-verificar table').removeClass('form-segunda-via-espera');
            window.scroll(0, 0);
            $('#segunda-via-codigo').focus();
        }
    });
}

function submeter_webmail() {
    login_webmail();
    $('#form_email').submit();
}

function submeter_central() {
    login_central();
    $('#form_email').submit();
}

function login_webmail() {
    //alterando o from
    $('#form_email').attr('name', 'imp_login');
    $('#form_email').attr('method', 'post');
    $('#form_email').attr('action', 'http://webmail.supercabo.com.br/imp/redirect.php');
    var inputs = [$('<input type="hidden" name="actionID" value="" />'), 
                  $('<input type="hidden" name="url" value="" />'),
                  $('<input type="hidden" name="mailbox" value="INBOX" />'),
                  $('<input type="hidden" name="load_frameset" value="1" />'),
                  $('<input type="hidden" name="autologin" value="0" />'),
                  $('<input type="hidden" name="server" value="goku" />'),
                  $('<input type="hidden" name="folders" value="INBOX." />')]
    //alterando os inputs
    $('#email-usuario').attr('name', 'imapuser');
    $('#email-senha').attr('name', 'pass');
    $(inputs).each(function(){
        $('#form_email').append(this);
    });   
}

function login_central() {
    //Alterando o form
    $('#form_email').removeAttr('name');
    $('#form_email').attr('action', 'to_login');
    //Removendo os inputs hidden, exceto o necessário
    $('#form_email input:hidden:not([name=dominio])').remove();
    //alterando os inputs
    $('#email-usuario').attr('name', 'usuario');
    $('#email-senha').attr('name', 'senha');  
}

/*
 * Preparar tabs
 */
function preparar_tabs() {
    var tabContainers = $('div.tabs-user > div');
    tabContainers.hide().filter(':first').show();
    $('div.tabs-user ul.tab-navigation-user a').click(function () {
        tabContainers.hide();
        $('input', tabContainers.filter(this.hash).show())[0].focus();
        $('div.tabs-user ul.tab-navigation-user li').removeClass('selected');
        $(this).parents('li').addClass('selected');
        return false;
    }).filter(':first').click();
}

function preparar_formularios() {
    /*
     * Segunda via. Submeter e carregar faturas em aberto
     */
    $('#form-segunda-via-verificar').submit(function(){
        $(this).addClass('loading');
        $(' table', this).addClass('form-segunda-via-espera');
        carregar_faturas_aberto($('#segunda-via-codigo').val());
        return false;
    });
    
    /*
     * Conta telefonica. Apenas mostrar "aguarde".
     */
    $('#form-contatelefonica').submit(function(){
        $('#submit-contatelefonica').val('Aguarde...');
        $('#submit-contatelefonica').attr('disabled', 'disabled');
    });

    
    /*
     * Submeter central ao pressionar enter no formulário de email.
     */
    $('#email-usuario, #email-senha').each(function(){
        $(this).bind('keypress', function(e) {
            if (e.keyCode == 13) {
                submeter_central();
            }
        });
    });
    
    /*
     * Recuperar código
     */
    
     
    $("a[rel=recuperar_codigo]").each(function(){
        $(this).bind('click', function() {
            recuperar_codigo(this);
            return false;
        });
    });
}


/**
 * Abre a janela para recuperar códigos por cpf
 */
function recuperar_codigo(el) {
    var idd=$(el).attr('id')
    $('#asf3a').remove();
    $('body').append('<span id="asf3a" class="' + idd + '"></span>');
    $.ajax({
        type: 'POST',
        url: '/recuperar_codigo/',
        data: '',
        cache:false,
        success: function(retorno) {
            var ht_iframe = $('<iframe class="frame_rec" scrolling="no" frameborder="0" src="/recuperar_codigo/">' + retorno + '</iframe>');
            
            new Boxy(ht_iframe, 
                     {title: 'Consultar código', 
                      modal: false, 
                      draggable: true, 
                      closeable: true,
                      unloadOnHide: true});
            $('.recuperar_codigo').submit(function(){
                alert('bla');
                return false;
            });
        },
        error: function(retorno) {
            texto = 'Ocorreu um erro';
            Boxy.alert(texto,  
                        null, 
                        {title: TITULO, unloadOnHide: true});
            }
    });
}

/**
 * Fecha todos os boxs de uma página
 */
function close_rec_cod() {
    Boxy.get($('.boxy-content')).hide();
}

/*
 * Função simples para localizar o endereço requisitado após o caracter # na url
 * Baseado neste, abrir a tab desejada pelo usuário.
 */
function abrir_tab() {
    var pagina = top.location.href;
    pagina = pagina.split('#');
    if (pagina.length > 0) {
        pagina = pagina[1];
        if ($('#tab-link-' + pagina).length > 0) {
            $('#tab-link-' + pagina).click();
        }
    }
}

