/* JQUERY SCRIPT */

/* jQuery.noConflict(); */

jQuery(document).ready(function(){

    // PAGAMENTO PERSONALIZADO
    jQuery('#valordepositado').blur(function(){
        // campo vazio?
        if (jQuery(this).val().length == 0) {
            // poe ZERO
            jQuery(this).val('0')
        } else {
            // senao, calcula as diferencas
            var total   = jQuery('#valortotal').val()
            var depos   = jQuery('#valordepositado').val()
            depos       = depos.replace(',', '.')
            var difer   = total-depos
            jQuery('#valorparcelado').val( difer )

            /* pagseguro value */
            var p = difer.toString().split('.')
            if (p.length > 1) {
                switch(p[1].length){
                    case 1: difer = p[0]+p[1]+'0'; break;
                    case 2: break;
                    default: difer = p[0]+p[1].substr(0, 2)
                }
            } else {
                difer = difer.toString()+'00'
            }

            jQuery('#item_valor_1').val( difer )

        }
    })

    // login
    if ( jQuery('#formLogin').length ) {
        // Ao ganhar foco
        jQuery('.email').focus(function() {
            var a = jQuery(this);
            if (a.val() == 'E-mail') {a.val('');}
        })
        // Ao perder foco
        jQuery('.email').blur(function() {
            var a = jQuery(this);
            if (a.val() == '') {a.val('E-mail');}
        })
        // Efetuar login
        jQuery('#efetuarLogin').click(function(){
            // valida
            if (
                jQuery('.email').val()=='' ||
                jQuery('.email').val()=='E-mail' ||
                jQuery('.senha').val()==''
            ) {
                return msg ( 'Preencha os campos E-mail e senha.' ) ;
            }
            // enviar formulario
            return true;
        })
    }

    // buscar produtos
    if (jQuery('#buscarProdutos').length) {
        // ao ganhar foco
        jQuery('.buscado').focus(function(){
            var a = jQuery(this);
            if(a.val() == 'Pesquise aqui') {a.val('');}
        })
        // ao perder foco
        jQuery('.buscado').blur(function(){
            var a = jQuery(this)
            if(a.val()=='') {a.val('Pesquise aqui');}
        })
        // ao buscar
        jQuery('.buscar').click(function(){
            if (jQuery('.buscado').val() == 'Pesquise aqui') {
                return msg('Digite algo para buscar.');
            }
            return true;
        })
    }

    // fale conosco
    if (jQuery('#enviarContato').length) {
        jQuery('#enviarContato').click(function(){
            // nome requerido
            if (jQuery('.contato_nome').val()=='') {
                return msg('Por favor, digite seu nome.');
            }
            // email requerido
            if (jQuery('.contato_email').val()=='') {
                return msg('Por favor, digite seu e-mail.');
            }
            // assunto requerido
            if (jQuery('.contato_assunto').val()=='') {
                return msg('Por favor, digite o assunto a ser tratado.');
            }
            // mensagem requerida
            if (jQuery('.contato_mensagem').val()=='') {
                return msg('Por favor, digite a mensagem.');
            }
            return true;
        })
    }

    // buscar quantidades por tamanho para produtos especiais
    if ( jQuery("#tamanhosEquantidades").length ) {
        jQuery("#tamanhosEquantidades").change(function(){
            var tamanho = jQuery(this).val() ;

            jQuery.post(
                'ajax/buscarQuantidadesPorTamanho.php',
                {tamanho : tamanho},
                function (retorno) {
                    if (retorno) {
                        msg(); // esconde a msg
                        var obj = '<select id="qtde" title="Selecione a quantidade de produtos que deseja comprar">';
                        retorno = parseInt(retorno);

                        for (var c = 0; c < retorno; c++) {
                            obj += '<option value="' + (c+1) + '">';
                                obj += (c+1);
                            obj += '</option>';
                        }
                        obj     += '</select>';

                        jQuery('#quantidadeDisponivel').html( obj );
                        obj = null;
                    } else {
                        msg ('Erro ao carregar dados. Tente novamente. Obrigado.');
                    }
                }
            )
        })
    }

    // comentarios
    if ( jQuery('#paginas').length ) {
        jQuery('#paginas').change(function() {

            var pagina  = jQuery(this).val() ;
            var prodId  = jQuery('#prod_id').val() ;
            
            jQuery.post(
                'ajax/paginaComentarios.php',
                {
                    pagina : pagina,
                    prod_id : prodId
                },
                function(retorno) {
                    jQuery('#paginacao').html(retorno);
                }
            )

        })
    }
    // enviar comentario
    jQuery('#enviarComentario').click(function(){
        /* validacoes */
        // nome
        if (
            !jQuery('#nome').val() ||
            jQuery('#nome').val().length < 3
        ) {
            msg ( 'Por favor, preencha o campo Nome com no minimo 3 caracteres.' ) ;
            return false;
        }
        // email
        if ( !validaEmail( jQuery('#email').val() ) ) {
            msg ( 'Por favor, preencha o campo E-mail corretamente.' ) ;
            return false;
        }
        // comentario
        if ( !jQuery('#comentario').val() ) {
            msg ( 'Por favor, preencha o campo Comentário.' ) ;
            return false;
        }

        // enviar FORM
        jQuery.post(
            'ajax/fazerComentarios.php',
            {
                produto: jQuery('#prod_id').val(),
                nome: jQuery('#nome').val(),
                email: jQuery('#email').val(),
                comentario: jQuery('#comentario').val()
            },
            function(retorno){
                if (!retorno) {
                    msg('Comentário inserido com sucesso!<br />Seu comentário só estará disponível após aprovação.<br /><br />Agradecemos a compreensão e o comentário.');
                    jQuery('#nome').val('');
                    jQuery('#email').val('');
                    jQuery('#comentario').val('');
                } else {
                    msg(retorno);
                }
                return false;
            }
        )

        return false;
        
    })

    // paginacao dos comentarios
    // a fazer futuramente
    /*
    jQuery('#paginacaoComentarios li span').click(function(){
        var start   = parseInt(jQuery(this).html())-1
        var prodId  = parseInt(jQuery('#prodId').val());
        jQuery.post(
            'produto.php',
            {
                a : 'paginacao',
                prodId : prodId,
                start : start
            },
            function(retorno){ alert(retorno) }
        )
    });
    */

    /* Indicar produto a um conhecido */
    jQuery('#indicarProduto input[type=submit]').click(function(){

        // pega os campos
        var nome        = jQuery('#indicar_nome').val();
        var dest        = jQuery('#indicar_destinatario').val();
        var email       = jQuery('#indicar_email').val();
        var mensagem    = jQuery('#indicar_mensagem').val();
        var prodId      = jQuery('#indicar_prod_id').val();

        // verifica campos
        if ( (nome == '') || (dest == '') || (email == '') || (mensagem == '') ) {
           msg('Preencha todos os campos antes de enviar a indicação.');
           return false;
        }

        // se chegou ateh aqui eh pq a mensagem pode ser enviada sem erros
        // entao vamos la

        // envia para o arquivo que fará o envio da indicação
        jQuery.post(
            'ajax/indicarProduto.php',
            {
                nome : nome,
                destinatario : dest,
                email : email,
                mensagem : mensagem,
                prod_id : prodId
            },
            function(retorno){
                // se nao tiver retorno, enta eh pq deu certo
                if(!retorno) {
                    retorno = 'OK! Indicação enviada com sucesso!';
                    jQuery('#indicarProduto').fadeOut();
                }
                msg(retorno); // mostra mensagem
            }
        )
        return false;
   })
   // mostrar indicar produto
   jQuery('.mostrarIndicarProduto').click(function(){
       jQuery('#indicar_prod_id').val( jQuery(this).attr('value') ) ;
       jQuery('#indicarProduto').fadeIn();
       return false;
   })
   // fechar indicar produto
   jQuery('#fecharIndicarProduto').click(function(){
       jQuery('#indicarProduto').fadeOut();
   })

    // Formas de Pagamento, mostra/esconde
    jQuery('.mostraFormasPagto').click(function(){
        if (jQuery('.formasDePagamento').is(':hidden')) {
            jQuery('.formasDePagamento').fadeIn();
        } else {
            jQuery('.formasDePagamento').fadeOut();
        }
    })

    // Comprar
    jQuery('.botaoComprar').click(function(){
        // id do produto
        var prodId  = jQuery('#prod_id').val() ;
        // tamanho se tiver
        var tamanho     = '';
        if (jQuery('#tamanhosEquantidades').length) {
            tamanho = jQuery('#tamanhosEquantidades').val();
            if (!tamanho) {return msg ( 'Selecione um tamanho!' );}
        }
        // verifica qtde
        var qtde    = jQuery('#qtde').val() ;
        if (!qtde) {return msg ( 'Selecione uma quantidade!' );}
        // envia o form
        jQuery('#formularioComprarProduto').submit();
    })
    // esconde carrinho
    jQuery('.botaoFechar a').click(function(){
        jQuery('#cesto').fadeOut()
        return false;
    })
   
    /* FECHA MSG */
    jQuery('#fechar_msg').click(function(){
        msg();
    })

    /* INDICAR PRODUTO A UM AMIGO */
    jQuery('#indicarProduto').click(function(){
        var a = jQuery('.opcoes .formulario') ;
        if (a.is(':hidden')) {
            a.fadeIn()
        } else {
            a.fadeOut()
        }
    })
    /* INDICAR CANCELAR */
    jQuery('#indicarCancelar').click(function(){
        jQuery('.opcoes .formulario').fadeOut() ;
    })
    /* INDICAR MENSAGEM */
    jQuery('#indicarEnviarMensagem').click(function() {
        var prodId      = jQuery('#prod_id').val()
        var seuNome     = jQuery('#indicarNome').val()
        var seuEmail    = jQuery('#indicarEmail').val()
        var destNome    = jQuery('#indicarDestinatario').val()
        var destEmail   = jQuery('#indicarDestinatarioEmail').val()
        var mensagem    = jQuery('#indicarMensagem').val()
        // valida
        if (!seuNome || !seuEmail || !destNome || !destEmail || !mensagem) {
            return msg ( 'Todos os campos são de preenchimento obrigatório.' ) ;
        }
        // envia a indicacao
        jQuery.post(
            'ajax/indicarProduto.php',
            {
                prodId : prodId ,
                seuNome : seuNome ,
                seuEmail : seuEmail ,
                destNome : destNome ,
                destEmail : destEmail ,
                mensagem : mensagem
            },
            function(retorno){
                if (retorno) {msg ( retorno )}
                else {
                    msg ( 'OK! O produto foi indicado para seu amigo com sucesso!' ) ;
                    jQuery('.opcoes .formulario').fadeOut() ;
                }
            }
        )
        return false;
    })

    /* USUARIO */

    /* ENVIAR SENHA ATUAL PARA EMAIL */
    jQuery('#solicitarSenhaAtual').click(function(){
        var email   = jQuery('#recuperarSenhaEmail').val() ;
        if (!email) {return msg('Preencha o campo e-mail com seu e-mail de cadastro.')}
        jQuery.post(
            'ajax/usuarioAcoes.php',
            {
                acao : 'recuperarSenhaEmail',
                email : email
            },
            function (retorno) {
                if (retorno) {return msg(retorno)}
                else {
                    msg ('OK! A sua senha foi enviada com sucesso ao seu e-mail.') ;
                    return true ;
                }
            }
        )
    })
    /* ALTERAR SENHA ATUAL */
    jQuery('#solicitarAlterarSenha').click(function(){

        // pega os dados
        var email       = jQuery('#alterarSenhaEmail').val() ;
        var senhaAtual  = jQuery('#alterarSenhaSenha').val() ;
        var novaSenha1  = jQuery('#alterarSenhaNovaSenha1').val() ;
        var novaSenha2  = jQuery('#alterarSenhaNovaSenha2').val() ;

        // todos campos sao obrigatorios
        if (!email || !senhaAtual || !novaSenha1 || !novaSenha1) {
            return msg('Todos campos são de preenchimento obrigatório.')
        }

        // compara senhas
        if (novaSenha1 != novaSenha2) {
            return msg ('A nova senha e a senha redigitada não conferem.<br />Você pode ter digitado errado.') ;
        }

        // envia requisicao
        jQuery.post(
            'ajax/usuarioAcoes.php',
            {
                acao : 'alterarSenha',
                email : email,
                senhaAtual : senhaAtual,
                novaSenha : novaSenha1
            },
            function (retorno) {
                if (retorno) {return msg(retorno)}
                else {
                    msg ('OK! A sua senha foi alterada com sucesso.<br />Quando entrar novamente, lembre-se de utilizar a nova senha.') ;
                    return true ;
                }
            }
        )
    })
    /* REMOVE CLIENTE A PEDIDO DO PROPRIO CLIENTE */
    jQuery('#solicitarRemocaoCadastro').click(function(){

        // pega os valores
        var email       = jQuery('#removerCadastroEmail').val() ;
        var senha       = jQuery('#removerCadastroSenha').val() ;

        // valida
        if (!email || !senha) {return msg('Os campos são de preenchimento obrigatórios.');}

        // envia requisicao
        jQuery.post(
            'ajax/usuarioAcoes.php',
            {
                acao : 'removerCliente',
                email : email,
                senha : senha
            },
            function (retorno) {return msg(retorno)}
        )
    })
    /* CRIAR/EDITAR CONTA */
    jQuery('#infoSalvar').click(function(){

        // pega dados da tela
        var cliId       = jQuery('#infoId').val();
        var email    = jQuery('#infoEmail').val();
        var nomeCompleto= jQuery('#infoNomeCompleto').val();
        var nascimento  = jQuery('#infoDataNascimento').val();
        var cpf         = jQuery('#infoCPF').val();
        var rg          = jQuery('#infoRG').val();
        var dddTel      = jQuery('#infoDDDTel').val();
        var telefone    = jQuery('#infoTelefone').val();
        var dddCel      = jQuery('#infoDDDCel').val();
        var celular     = jQuery('#infoCelular').val();
        var endereco    = jQuery('#infoEndereco').val();
        var numero      = jQuery('#infoNumero').val();
        var complemento = jQuery('#infoComplemento').val();
        var bairro      = jQuery('#infoBairro').val();
        var cidade      = jQuery('#infoCidade').val();
        var estado      = jQuery('#infoEstado').val();
        var pais        = jQuery('#infoPais').val();
        var cep         = jQuery('#infoCep').val();

        // validacoes basicas
        if (
            !email || !nomeCompleto || !nascimento || !cpf || !rg || !dddCel || !celular ||
            !endereco || !numero || !bairro || !cidade || !estado || !pais || !cep
        ) {
            return msg ('Os campos com asterisco (*) são de preenchimento obrigatório.') ;
        }

        // acao
        var acao = 'salvarCliente';

        // envia solicitacao
        jQuery.post(
            'ajax/usuarioAcoes.php',
            {
                acao : acao,
                id : cliId,
                email : email,
                nome_completo : nomeCompleto,
                data_nascimento : nascimento,
                cpf : cpf,
                rg : rg,
                ddd_tel : dddTel,
                telefone : telefone,
                ddd_cel : dddCel,
                celular : celular,
                endereco : endereco,
                numero : numero,
                complemento : complemento,
                bairro : bairro,
                cidade : cidade,
                estado : estado,
                pais : pais,
                cep : cep
            },
            function(retorno){
                if (retorno) {msg(retorno)}
                else {
                    var mensagem = 'OK! Dados salvos com sucesso!<br />' ;
                    if ( jQuery('#infoId').val() ) {
                        mensagem    += 'Suas informações foram atualizadas corretamente!' ;
                    } else {
                        mensagem    += 'Seja bem-vindo(a) ao nosso site.<br />Você receberá um e-mail com maiores informações sobre sua conta.<br />' ;
                        mensagem    += 'Se o e-mail não estiver na Caixa de Entrada de E-mails, favor verificar em LIXO ELETRONICO ou PASTA DE SPAM.';
                    }
                    msg ( mensagem )
                    mensagem = retorno = null ;
                }
            }
        )

    })

    /* REMOVE PRODUTO DO CARRINHO FINAL */
    jQuery('.botaoRemoverProduto').click(function(){

        // pega dados do produto que será removido
        var prodId  = jQuery(this).siblings('.prodId').val() ;
        var tamanho = jQuery(this).siblings('.tamanho').val() ;

        // prodId obrigatorio
        if (!prodId) {return msg('Erro ao remover produto do Cesto de Compras. Pedimos desculpas.');}

        // envia solicitacao
        jQuery.post(
            'ajax/carrinho.php',
            {
                acao : 'del',
                prodId : prodId,
                tamanho : tamanho
            },
            function(retorno) {
                msg(retorno);
            }
        );

        // esconde TR
        jQuery(this).parent().parent().remove();

        return true;
        
    })
    /* FINALIZA COMPRA */
    jQuery('#finalizarCompraFim').click(function() {
        // msg
        msg('Registrando compra, aguarde...');
        // envia para a pagina que finaliza a compra
        jQuery('#formulario').submit();
    })

    /* FAVORITAR PRODUTO */
    jQuery('.favoritar').click(function(){
        var prod_id  = jQuery('input', this).val();
        if (prod_id) {
            jQuery.post(
                'ajax/favoritar.php',
                {prod_id : prod_id},
                function(retorno){msg(retorno);}
            )
        } else {
            msg('Erro interno ao tentar favoritar.<br />Por favor, tente novamente mais tarde.<br /><br />Obrigado.');
        }

    });

    /*
        CONTATO
        ENVIAR CONTATO
    */
   jQuery('#email_enviar').click(function(){
       // algum campo vazio?
       if (
           !jQuery('#email_nome').val() ||
           !jQuery('#email_email').val() ||
           !jQuery('#email_mensagem').val()
        ) {
            return msg('Todos os campos são de preenchimento obrigatório.');
        }
        // valida e-mail
        if (!validaEmail(jQuery('#email_email').val())) {
            return msg('O e-mail digitado está em um formato inválido.<br />Formatos usuais:<br />email@dominio.com ou<br />email@dominio.com.br<br />entre outros.');
        }
        // permite o envio normal do form
        return true;
   })

    /* ACCORDION */
    jQuery('#accordion .head').click(function(){
        jQuery(this).siblings('div').slideUp();
        var a = jQuery(this).next('div');
        if (a.is(":hidden")) {
            a.slideDown()
        } else {
            a.slideUp()
        }
    })

    /* Máscara nos campos */
    jQuery('input.uf').mask('aa');
    jQuery('input.cpf').mask('999.999.999-99');
    jQuery('input.ddd').mask('99');
    jQuery('input.dddFone').mask('(99) 9999-9999');
    jQuery('input.fone').mask('9999-9999');
    jQuery('input.data').mask('99/99/9999');
    jQuery('input.cep').mask('99999999');

})

// atualiza carrinho de compras que é mostrado ao cliente
function atualizaCarrinho () {
    jQuery('#cesto .corpo').html('Aguarde... <img src="imgs/loading.gif" />');
    jQuery.post(
        'ajax/carrinho.php',
        {acao : 'list'},
        function(retorno){
            jQuery('#cesto .corpo').html(retorno);
        }
    )
}
// remove produto do carrinho de compras
function removerProdutoDoCarrinho(prodId, tamanho) {
    tamanho = (tamanho?tamanho:'') ;
    jQuery.post(
        'ajax/carrinho.php',
        {
            acao : 'del',
            prodId : prodId,
            tamanho : tamanho
        },
        function(retorno) {
            if (!retorno) {
                msg ( 'Erro ao remover produto do Cesto de Compras.' );
            } else {
                atualizaCarrinho();
            }
        }
    )
    return false;
}

// mensagem na tela
function msg ( texto ) {
    if (!texto) {
        jQuery('#msg').fadeOut();
    } else {
        jQuery('#corpo_msg').html(texto)
        jQuery('#msg').fadeIn();
    }
    return false;
}

// verifica se o valor informado eh constituido apenas de numeros
function apenasNumeros (num) {
    reDigits = /^\d+$/;
    return reDigits.test(num);
}

// descricao da forma de pagamento
function getDescricaoFormaDePagamento(formaId) {
    // se id = 0 entao...
    if (formaId == 0) {
        jQuery('#explicacaoFormaDePagamento').html( 'Selecione a forma de pagamento desejada e veja aqui detalhes sobre ela.' );
        jQuery('#ok-finalizar-compra').hide()
    } else {
        // busca a descricao do tipo de pagamento
        jQuery('#explicacaoFormaDePagamento').html('<img src="imgs/loading.gif" />');
        jQuery.post(
            'ajax/formasDePagamento.php',
            {id : formaId},
            function(retorno) {
                jQuery('#explicacaoFormaDePagamento').html(retorno);
                jQuery('#ok-finalizar-compra').show();
            }
        )
    }
}

// ao clicar na forma de envio, preenche embaixo =D
function preencheFormaEnvio (obj) {
    var valor = obj.value
    jQuery('#formaEnvio').val( valor );
}

// valida email
function validaEmail(email) {
    var pattern = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    return pattern.test(email);
}
