/*  BioBrasil
    www.cebinet.com.br
    silviosa@sswin.com.br
    Outubro/2008
    ====================== */

var siteCart={

prefixo: 'CART', scriptPHP: 'sistema/site/ecom/site.cart.php', relativo: '../../',

gClienteId: 0, gClienteEstado:'XX',

gModo: 'loja',

controleItens: {
    qtd: 0
},
rsFrete:[],

opcoesChamada: {
    fabricante: false,
    categoria: false
},

frm: false,
frmStyle: 'width: 420px;',

vld: false,

// carregar o carrinho de compras
carregar: function(){

    // identificar query string
    var qsRecebida=window.location.search.substr(1);
    var qs=this.opcoesChamada;
    if(qsRecebida){
        var args=qsRecebida.split('&'); var i=0;
        for(i=0; i<args.length; i++){
            arg=args[i].split('=');
            if(arg[0]=='fabricante' || arg[0]=='categoria'){ qs[arg[0]]=arg[1]; }
            else { $('#cartArea').append('Erro: Parêmetro inválido "'+arg[0]+'". Era esperado fabricante ou categoria.'); return false; }
        }
    }

    // configurar área de login
    siteCart.loginAreaCarregar('cart');

    // configurar o formulário do pedido
    this.pedidoCarregar();

},

// modificar a ficha do produto e transformá-la em um formulário para inclusão de item
comprar: function(p,l,c){

    // verificar se o cliente está logado
    if(!this.gClienteId){
        window.alert('Antes de iniciar suas compras, faça seu login, por favor.');
        $('#laCpfCnpj').focus();
        return null;
    }

    // verificar se o produto está em promoção e determinar o preço
    var prod=$.siteEcom.fichas.paginas[p][l][c];
    if(prod.promocao_preco){ var pco=prod.promocao_preco; }
    else { var pco=prod.preco; }

    // verifica restrições de estado
    var estadoOK=true;
    var rstE=prod.restricao_estados.split(',');
    for(rx=0;rx<rstE.length;rx++){
        var ee=$.trim(rstE[rx]);
        if(ee==siteCart.gClienteEstado){ estadoOK=false; }
    }

    // preparar o formulário para inclusão de item ao carrinho de compras

    if(!estadoOK){
        // compra restrita
        var tags='';
        tags+='<table class="fichaPrd">';

        tags+='<tr>';
        tags+='<td class="fichaPrdTitulo">';
        tags+=prod.nome;
        tags+='</td>';
        tags+='</tr>';
        tags+='<tr>';
        tags+='<td style="text-align:center">';
        tags+='Este produto tem representante exclusivo em seu estado: '+siteCart.gClienteEstado+'.';
        tags+='</td>';
        tags+='</tr>';
        tags+='<tr>';
        tags+='<td id="efcCprRestrEst'+l+c+'" class="fichaPrdComprar" style="text-align:center">';
        tags+='Veja os endereços';
        tags+='</td>';
        tags+='</tr>';
        tags+='<tr>';
        tags+='<td id="efcCprNao'+l+c+'" class="fichaPrdComprar">';
        tags+='Cancelar';
        tags+='</td>';
        tags+='</tr>';
        tags+='</table>';
        $('#efc'+l+c).html(tags);

        // ações para o botão "endereços"
        $('#efcCprRestrEst'+l+c).hover(
            function(){ $(this).addClass('fichaPrdHover'); },
            function(){ $(this).removeClass('fichaPrdHover'); }
        );
        $('#efcCprRestrEst'+l+c).click(function(){
            document.location='bb-sem-menu.php?pagina=restricao-estados';
        });

        // ações para o botão "cancelar"
        $('#efcCprNao'+l+c).hover(
            function(){ $(this).addClass('fichaPrdHover'); },
            function(){ $(this).removeClass('fichaPrdHover'); }
        );
        $('#efcCprNao'+l+c).data('pag', p);
        $('#efcCprNao'+l+c).data('lin', l);
        $('#efcCprNao'+l+c).data('col', c);
        $('#efcCprNao'+l+c).click(function(){
            var p=$(this).data('pag');
            var l=$(this).data('lin');
            var c=$(this).data('col');
            $('#efc'+l+c).empty();
            $.siteEcom.produtoFichaPreparar(p,l,c);
        });

        return null;
    }

    // compra normal
    var tags='';
    tags+='<table class="fichaPrd">';

    tags+='<tr>';
    tags+='<td colspan="2" class="fichaPrdTitulo">';
    tags+=prod.nome;
    tags+='</td>';
    tags+='</tr>';

    tags+='<tr>';
    tags+='<td class="fichaPrdCompraTit">';
    tags+='Quantidade:';
    tags+='</td>';
    tags+='<td class="fichaPrdCompraCpo">';
    tags+='<input id="efcQtd'+l+c+'" type="text" style="width:40px;" value="1">';
    tags+='</td>';
    tags+='</tr>';

    tags+='<tr>';
    tags+='<td class="fichaPrdCompraTit">';
    tags+='Preço:';
    tags+='</td>';
    tags+='<td class="fichaPrdCompraCpo">';
    tags+=pco;
    tags+='</td>';
    tags+='</tr>';

    tags+='<tr>';
    tags+='<td class="fichaPrdCompraTit">';
    tags+='Total sem frete:';
    tags+='</td>';
    tags+='<td id="efcTot'+l+c+'" class="fichaPrdCompraCpo">';
    tags+=pco;
    tags+='</td>';
    tags+='</tr>';

    tags+='<tr>';
    tags+='<td id="efcCprSim'+l+c+'" class="fichaPrdDetalhes">';
    tags+='Comprar';
    tags+='</td>';
    tags+='<td id="efcCprNao'+l+c+'" class="fichaPrdComprar">';
    tags+='Cancelar';
    tags+='</td>';
    tags+='</tr>';

    tags+='</table>';

    $('#efc'+l+c).html(tags);

    // ações para o recálculo do preço sem frete
    $('#efcQtd'+l+c).data('pco',this._toNum(pco));
    $('#efcQtd'+l+c).data('pag',p);
    $('#efcQtd'+l+c).data('lin',l);
    $('#efcQtd'+l+c).data('col',c);
    $('#efcQtd'+l+c).keyup(function(e){
        var pco=$(this).data('pco');
        var p=$(this).data('pag');
        var l=$(this).data('lin');
        var c=$(this).data('col');
        siteCart.cartQtdCalcular(p,l,c,pco);
    });
    $('#efcQtd'+l+c).css('text-align','right');
    $('#efcQtd'+l+c).focus();
    $('#efcQtd'+l+c).select();

    // ações para o botão "comprar"
    $('#efcCprSim'+l+c).hover(
        function(){ $(this).addClass('fichaPrdHover'); },
        function(){ $(this).removeClass('fichaPrdHover'); }
    );
    $('#efcCprSim'+l+c).data('pco',pco);
    $('#efcCprSim'+l+c).data('pag', p);
    $('#efcCprSim'+l+c).data('lin', l);
    $('#efcCprSim'+l+c).data('col', c);
    $('#efcCprSim'+l+c).click(function(){
        var pco=$(this).data('pco');
        var p=$(this).data('pag');
        var l=$(this).data('lin');
        var c=$(this).data('col');
        siteCart.cartAdicionar(p,l,c, pco);
    });

    // ações para o botão "cancelar"
    $('#efcCprNao'+l+c).hover(
        function(){ $(this).addClass('fichaPrdHover'); },
        function(){ $(this).removeClass('fichaPrdHover'); }
    );
    $('#efcCprNao'+l+c).data('pag', p);
    $('#efcCprNao'+l+c).data('lin', l);
    $('#efcCprNao'+l+c).data('col', c);
    $('#efcCprNao'+l+c).click(function(){
        var p=$(this).data('pag');
        var l=$(this).data('lin');
        var c=$(this).data('col');
        $('#efc'+l+c).empty();
        $.siteEcom.produtoFichaPreparar(p,l,c);
    });

},

// adicionar um item ao carrinho de compras
cartAdicionar: function(p,l,c, pco){

    var qtd=$('#efcQtd'+l+c).val();
    if(!qtd || qtd<1){
        window.alert('Digite um número inteiro maior que zero, na quantidade.');
        $('#efcQtd'+l+c).focus();
        $('#efcQtd'+l+c).select();
        return null;
    }
    if(!this._IsNumeric(qtd)){
        window.alert('Digite um número inteiro, na quantidade.');
        $('#efcQtd'+l+c).focus();
        $('#efcQtd'+l+c).select();
        return null;
    }

    var pId=$.siteEcom.fichas.paginas[p][l][c].produto_id;

    var ajaxParam={ "acao": 'itemAdd', "produto_id": pId, "quantidade": qtd, "preco": pco };
    var urlPHP='sistema/site/ecom/site.cart.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(r, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+r.responseText; $('#erroAjax').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ for(ie=0; ie<dados.tabela.erros.length; ie++){ $('#erroAjax').append('<p>'+dados.tabela.erros[ie]+'</p>') ; } }
            else {
                siteCart.loginAreaMostrarLogadoItens(dados.tabela.rs[0].itens);
                $('#efc'+l+c).empty();
                $.siteEcom.fichas.paginas[p][l][c].no_cart=true;
                $.siteEcom.produtoFichaPreparar(p,l,c);
            }
        }
    });
},

// apresentar o carrinho de compras
cartMostrar: function(){
    if(this.gModo=='loja'){
        window.location="bb-cart.php?fabricante="+$.siteEcom.opcoesChamada.fabricante+"&categoria="+$.siteEcom.opcoesChamada.categoria;
    } else if(this.gModo=='pedido'){
        window.location="bb-ecom.php?fabricante="+sitePED.opcoesChamada.fabricante+"&categoria="+sitePED.opcoesChamada.categoria;
    } else {
        window.location="bb-ecom.php?fabricante="+this.opcoesChamada.fabricante+"&categoria="+this.opcoesChamada.categoria;
    }
},

cartQtdCalcular: function(p,l,c,pco){
    var q=$('#efcQtd'+l+c).val();
    var pcoInt=Math.round(100*pco);
    var nt=((q*pcoInt)/100)+'';
    var ntot=this._toStr(nt);
    $('#efcTot'+l+c).html(ntot);
},

// apresentar a página do cadastro do cliente
clienteCadastro: function(){
    var qs='?origem=loja';
    if($.siteEcom.opcoesChamada.fabricante) { qs+='&fabricante='+$.siteEcom.opcoesChamada.fabricante; }
    if($.siteEcom.opcoesChamada.categoria) {qs+='&categoria='+$.siteEcom.opcoesChamada.categoria;}
    window.location='bb-clientes.php'+qs;
},

// enviar a senha do cliente por email
clienteEsqueci: function(){

    if(!$('#laCpfCnpj').val()){
        $('#loginAreaErro').html('Informe seu CPF ou CNPJ');
        $('#laCpfCnpj').focus(); return null;
    }

    var valid=sjsValidCpfCnpj.validar($('#laCpfCnpj').val());
    if(valid.retCode){
        $('#laCpfCnpj').val(valid.dadoFormatado);
    } else {
        $('#loginAreaErro').html(valid.erro);
        $('#laCpfCnpj').focus(); return null;
    }

    var ajaxParam={ "acao": 'esqueci', "cod": $('#laCpfCnpj').val() };
    var urlPHP='sistema/site/ecom/site.cart.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(r, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+r.responseText; $('#erroAjax').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ for(ie=0; ie<dados.tabela.erros.length; ie++){ $('#loginAreaErro').html(dados.tabela.erros[ie]) ; } }
            if(dados.tabela.retCode=='ok') {
                $('#loginAreaErro').html('&nbsp;');
                window.alert('Sua senha será enviada para seu endereço de e-mail cadastrado dentro de alguns minutos.');
            }
        }
    });
},

// verificar usuário e senha e registrar o login
clienteLogin: function(){

    if(!$('#laCpfCnpj').val()){
        $('#loginAreaErro').html('Informe seu CPF ou CNPJ');
        $('#laCpfCnpj').focus(); return null;
    }
    if(!$('#laSenha').val()){
        $('#loginAreaErro').html('Informe sua senha');
        $('#laSenha').focus(); return null;
    }

    var valid=sjsValidCpfCnpj.validar($('#laCpfCnpj').val());
    if(valid.retCode){
        $('#laCpfCnpj').val(valid.dadoFormatado);
    } else {
        $('#loginAreaErro').html(valid.erro);
        $('#laCpfCnpj').focus(); return null;
    }

    var ajaxParam={ "acao": 'login', "cod": $('#laCpfCnpj').val(), "sn": $('#laSenha').val() };
    var urlPHP='sistema/site/ecom/site.cart.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(r, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+r.responseText; $('#erroAjax').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ for(ie=0; ie<dados.tabela.erros.length; ie++){ $('#erroAjax').append('<p>'+dados.tabela.erros[ie]+'</p>') ; } }
            if(dados.tabela.retCode=='ok') { siteCart.loginAreaMostrarLogado(dados.tabela.rs[0]); }
            else if(dados.tabela.retCode=='ncad') {
                $('#loginAreaErro').html('O usuário não consta do cadastro')
                $('#laCpfCnpj').focus(); $('#laCpfCnpj').select(); return null;
            }
            else if(dados.tabela.retCode=='nsenha') {
                $('#loginAreaErro').html('A senha não confere')
                $('#laSenha').focus(); $('#laSenha').select(); return null;
            }
            else if(dados.tabela.retCode=='nsituacao') {
                $('#loginAreaErro').html('Há problemas com seu cadastro. Por favor, entre em contato com a Bio Brasil.')
                $('#laCpfCnpj').focus(); $('#laCpfCnpj').select(); return null;
            }
            else { $('#loginAreaErro').html('Falha no login'); }
        }
    });
},

// registrar logout
clienteLogout: function(){
    var ajaxParam={ acao: 'logout' };
    var urlPHP='sistema/site/ecom/site.cart.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(r, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+r.responseText; $('#erroAjax').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ for(ie=0; ie<dados.tabela.erros.length; ie++){ $('#erroAjax').append('<p>'+dados.tabela.erros[ie]+'</p>') ; } }
            siteCart.loginAreaMostrar();
            window.location='bb-ecom.php'; 
        }
    });

},

// mostrar a lista de pedidos do cliente
clientePedidosLista: function(){
    window.location="bb-pedidos.php?fabricante="+$.siteEcom.opcoesChamada.fabricante+"&categoria="+$.siteEcom.opcoesChamada.categoria;
},

// obter dados sobre o login e apresentar a área de login ou as informações do cliente logado
loginAreaCarregar: function(modo){
    this.gModo=modo;
    var ajaxParam={ acao: 'dadosLogin' };
    var urlPHP='sistema/site/ecom/site.cart.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(r, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+r.responseText; $('#erroAjax').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ for(ie=0; ie<dados.tabela.erros.length; ie++){ $('#erroAjax').append('<p>'+dados.tabela.erros[ie]+'</p>') ; } }
            if(dados.tabela.retCode=='on') { siteCart.loginAreaMostrarLogado(dados.tabela.rs[0]); }
            else { siteCart.loginAreaMostrar(); }
        }
    });
},

// mostrar, no topo da tela, a área de login
loginAreaMostrar: function(){

    this.gClienteId=0;
    this.gClienteEstado='XX';

    var t='';
    t+='CPF ou CNPJ: <input id="laCpfCnpj" type="text" class="loginArea" style="width:120px;">';
    t+='&nbsp;&nbsp;Senha: <input id="laSenha" type="password" class="loginArea" style="width:70px;">';
    t+='&nbsp;<button id="labtLogin" class="loginArea">Login</button>';
    t+='&nbsp;<button id="labtEsqueci" class="loginArea">Esqueci</button>';
    t+='&nbsp;<button id="labtNovo" class="loginArea">Não tenho</button>';
    $('#loginArea').html(t);

    $('#laCpfCnpj, #laSenha').keypress(function(e){ if(e.which==13) { $('#labtLogin').click(); } });
    $('#labtLogin').click(function(){ siteCart.clienteLogin(); });
    $('#labtEsqueci').click(function(){ siteCart.clienteEsqueci(); });
    $('#labtNovo').click(function(){ siteCart.clienteCadastro(); });

},

// mostrar informações e botões, no topo da tela, quando o cliente estiver logado
loginAreaMostrarLogado: function(reg){

    this.gClienteId=reg.cliente_id;
    this.gClienteEstado=reg.estado;

    $('#loginAreaErro').html('&nbsp;');

    var t='';
    t+='Carrinho de compras de '+ reg.nome + ' com ';
    t+='<span id="laItensCart"></span>&nbsp;&nbsp;';
    t+='&nbsp;<button id="labtCart" class="loginArea">'+(this.gModo=='loja' ? 'Ver' : 'Loja')+'</button>';
    if(this.gModo=='loja') { t+='&nbsp;<button id="labtCadastro" class="loginArea">Cadastro</button>'; }
    if(this.gModo=='loja') { t+='&nbsp;<button id="labtPedidos" class="loginArea">Meus Pedidos</button>'; }
    t+='&nbsp;<button id="labtLogout" class="loginArea">Logout</button>';
    $('#loginArea').html(t);
    this.loginAreaMostrarLogadoItens(reg.itens);

    $('#labtCart').click(function(){ siteCart.cartMostrar(); });
    $('#labtCadastro').click(function(){ siteCart.clienteCadastro(); });
    $('#labtPedidos').click(function(){ siteCart.clientePedidosLista(); });
    $('#labtLogout').click(function(){ siteCart.clienteLogout(); });

},

// apresenta a quantidade de itens que estão no carrinho de compras
loginAreaMostrarLogadoItens: function(qtd){
    if(qtd==0){ var t='nenhum item'; }
    else if(qtd==1){ var t='1 item'; }
    else { var t=qtd+' itens'; }
    $('#laItensCart').html(t);
},

// calcular o pedido
pedidoCalcular: function(){

    // prepara
    var tti=parseFloat('0.00');
    var fre=parseFloat('0.00');

    // processa cada item e apura o total dos itens
    for(ix=0; ix<this.controleItens.qtd; ix++){
        $('#CARTITMquantidade'+ix).removeClass('fErroCpo');
        var q=$('#CARTITMquantidade'+ix).val();

        if(!this._IsNumeric(q)) {
            $('#CARTITMquantidade'+ix).addClass('fErroCpo');
            $('#CARTITMquantidade'+ix).focus();
            $('#CARTITMquantidade'+ix).select();
            window.alert('A quantidade precisa ser um valor numérico, inteiro.');
            return false;
        }

        if(q && q>0){
            var ps=$('#CARTITMpreco'+ix).html();
            var p=Math.round(100*this._toNum(ps));
            var t=((q*p)/100);
            tti+=t;
            t=t+'';
            $('#CARTITMtotItm'+ix).html( this._toStr(t) );
        }

    }
    $('#CARTTOTitens').html( this._toStr(''+tti) );

    // calcula o frete
    for(ix=0; ix<this.rsFrete.length; ix++){
        var fr=this.rsFrete[ix];
        if(tti>=fr.inicio && tti<=fr.fim){ fre=parseFloat(fr.valor); break; }
    }

    $('#CARTTOTfrete').html( this._toStr(fre+'') );
    var ttgc=Math.round(100*(tti+fre));
    var ttg=(ttgc/100)+'';

    // total do pedido
    $('#CARTTOTtotal').html( this._toStr(ttg) );

    return true
},

// obter dados para o formulário do pedido
pedidoCarregar: function(){
    this.frm=new sjsAutoForm({ "id": 'CARTFrmDet', "ancora": 'cartArea', "titulo": 'Pedido do cliente' });
    this.vld=new sjsValidacao( { "id": 'validCART', "ancora": 'cartArea' } );
    var parametros ={ "acao": 'cart' };
    $.ajax({
        url: this.scriptPHP, data: parametros, type: "POST", dataType: 'json',
        error: function(r, s, e){ var m='Erro AJAX: '+(s?(s+' '):'')+(e?(e+' '):'')+"\n"+r.responseText; $('#cartArea').prepend('<div id="ajaxErr">'+m+'</div>'); },
        success: function(dados){ siteCart.pedidoMostrar(dados); }
    });
},

pedidoEsvaziar: function(){
    var parametros ={ "acao": 'cart_esvaziar' };
    $.ajax({
        url: this.scriptPHP, data: parametros, type: "POST", dataType: 'json',
        error: function(r, s, e){ var m='Erro AJAX: '+(s?(s+' '):'')+(e?(e+' '):'')+"\n"+r.responseText; $('#cartArea').prepend('<div id="ajaxErr">'+m+'</div>'); },
        success: function(dados){ siteCart.cartMostrar(); }
    });
},

pedidoFechar: function(){
    var ok=this.pedidoCalcular();
    if(!ok) return null;

    var parametros ={ "acao": 'cart_fechar' };
    for(i=0; i<this.controleItens.qtd; i++){
        var id=$('#CARTITMproduto_id'+i).val();
        var q=$('#CARTITMquantidade'+i).val();
        var p=$('#CARTITMpreco'+i).html();
        if(q && q>0){ parametros['id'+i]=id; parametros['q'+i]=q; parametros['p'+i]=p; }
    }
    parametros.f=$('#CARTTOTfrete').html();
    $.ajax({
        url: this.scriptPHP, data: parametros, type: "POST", dataType: 'json',
        error: function(r, s, e){ var m='Erro AJAX: '+(s?(s+' '):'')+(e?(e+' '):'')+"\n"+r.responseText; $('#cartArea').prepend('<div id="ajaxErr">'+m+'</div>'); },
        success: function(dados){ siteCart.pedidoFecharRetorno(dados); }
    });
},

// retorno do fechamento do pedido
pedidoFecharRetorno: function(dados){

    this._verificarRetornoAjax(dados.tabela.retCode, dados.tabela.erros);
    if(dados.login.retCode=='logoff') { this.cartMostrar(); }
    if(dados.tabela.retCode!='ok') return null;
    window.location="bb-pedidos.php?fabricante="+this.opcoesChamada.fabricante+"&categoria="+this.opcoesChamada.categoria;

},

// verificar a quantidade pedida
pedidoItemVerificar: function(i){

    var q=$('#CARTITMquantidade'+i).val();
    if(!q || q<1) { $('#CARTITMproduto_nome'+i).addClass('tachado'); }
    else { $('#CARTITMproduto_nome'+i).removeClass('tachado'); }

    $('#CARTITMtotItm'+i).html('&nbsp;');
    $('#CARTTOTitens').html('&nbsp;');
    $('#CARTTOTfrete').html('&nbsp;');
    $('#CARTTOTtotal').html('&nbsp;');

},

// mostrar o formulário do pedido
pedidoMostrar: function(dados){
    this._verificarRetornoAjax(dados.tabela.retCode, dados.tabela.erros);
    reg=dados.tabela.rs[0];
    this.rsFrete=dados.frete.rs;
    var md='edit';

    // criar o form
    this.frm.attr.style=this.frmStyle;
    this.frm.criar();

    // criar as linha do form
    var m=this.prefixo
    this.frm.criarLinha(m+'nome', 'Cliente:');
    this.frm.criarLinha(m+'cli_info', '&nbsp;');
    this.frm.criarLinha(m+'cpf_cnpj', 'CPF ou CNPJ:');
    this.frm.criarLinha(m+'endereco', 'Endereço:', false, {"class": 'fRotuloTop'});
    this.frm.criarLinha(m+'telefones', 'Telefones:');
    if(reg.veterinario_resp || reg.veterinario_crmv) { this.frm.criarLinha(m+'veterinario', 'Veterinário:'); }
    this.frm.criarLinha(m+'itens', false, {"class": 'fSubtitulo'});
    this.frm.criarLinha(m+'itens_info', '&nbsp;');
    this.frm.criarLinha(m+'itens_area', false);

    // criar os campos dentro das linhas
    var bt=m+'btnGravar';

    this.frm.criarCampoTexto(m+'cli_info','<i>Confira seus dados cadastrais. Para alterá-los, volte à Loja e clique em "Cadastro", antes de fechar o pedido.</i>');
    this.frm.criarCampoTexto(m+'nome',reg.nome);
    this.frm.criarCampoTexto(m+'cpf_cnpj',reg.cpf_cnpj);
    this.frm.criarCampoTexto(m+'cpf_cnpj','&nbsp;&nbsp;&nbsp;RG ou IE:&nbsp;');
    this.frm.criarCampoTexto(m+'cpf_cnpj',reg.rg_ie);
    this.frm.criarCampoTexto(m+'endereco',reg.endereco);
    if(reg.bairro){ this.frm.criarCampoTexto(m+'endereco',' - '+reg.bairro); }
    this.frm.criarCampoTexto(m+'endereco','<br>'+reg.cidade+', '+reg.estado+' - CEP: '+reg.cep);
    this.frm.criarCampoTexto(m+'telefones',reg.telefones);
    if(reg.celulares){ this.frm.criarCampoTexto(m+'telefones',' '+reg.celulares); }
    if(reg.veterinario_resp || reg.veterinario_crmv) {
        this.frm.criarCampoTexto(m+'veterinario',reg.veterinario_resp);
        this.frm.criarCampoTexto(m+'veterinario',' CRMV: ');
        this.frm.criarCampoTexto(m+'veterinario',reg.veterinario_crmv);
    }

    this.frm.criarCampoTexto(m+'itens','Itens no Carrinho de compra');
    this.frm.criarCampoTexto(m+'itens_info','<i>Para remover um item, apague a quantidade.</i>');
    var t='<table style="'+this.frmStyle+'">';
    t+='<thead><tr>';
    t+='<td class="alHead">Produto</td>';
    t+='<td class="alHead" style="text-align:center;">Qtd.</td>';
    t+='<td class="alHead" style="text-align:center;">Preço</td>';
    t+='<td class="alHead" style="text-align:center;">Total</td>';
    t+='</tr></thead>';
    t+='<tbody id="CARTitens"></tbody>';
    t+='</table>';
    this.frm.criarCampoTexto(m+'itens_area', t);


    // itens - lista
    var its=dados.itens.rs;
    this.controleItens.qtd=0;
    if(its) this.controleItens.qtd=its.length
    if(its){
        for(i=0; i<its.length; i++){

            var itm = its[i];
            var t='<tr>';

            t+='<td id="CARTITMproduto_nome'+i+'" class="alBody" style="text-align:left;">'+itm.nome+'</td>';

            t+='<td class="alBody" style="text-align:center;">';
            t+='<input id="CARTITMproduto_id'+i+'" type="hidden" value="'+itm.produto_id+'">';
            t+='<input id="CARTITMquantidade'+i+'" type="text" value="'+itm.quantidade+'" style="width:70px;">';
            t+='</td>';

            t+='<td id="CARTITMpreco'+i+'" class="alBody" style="text-align:right;">';
            t+=itm.preco;
            t+='</td>';

            t+='<td class="alBody" id="CARTITMtotItm'+i+'" style="text-align:right;">&nbsp;</td>';

            t+='</tr>';
            $('#CARTitens').append(t);


            $('#CARTITMquantidade'+i).data('ix',i);
            $('#CARTITMquantidade'+i).keyup(function(e){
                var i=$(this).data('ix');
                siteCart.pedidoItemVerificar(i)
            });

        }

    }

    // total dos itens
    var t='<tr>';
    t+='<td class="alBody" colspan="3">Total dos itens</td>';
    t+='<td id="CARTTOTitens" class="alBody" style="text-align:right;">&nbsp;</td>';
    t+='</tr>';
    $('#CARTitens').append(t);

    // valor do frete
    var t='<tr>';
    t+='<td class="alBody" colspan="3" style="border-right:none;">Frete</td>';
    t+='<td id="CARTTOTfrete" class="alBody" style="text-align:right;">&nbsp;</td>';
    t+='</tr>';
    $('#CARTitens').append(t);

    // total do pedido
    var t='<tr>';
    t+='<td class="alBody" colspan="3">Total do pedido</td>';
    t+='<td id="CARTTOTtotal" class="alBody" style="text-align:right;">&nbsp;</td>';
    t+='</tr>';
    $('#CARTitens').append(t);

    this.pedidoCalcular();


    // adicionar botões do form
    var a=this.frm.id+'Botoes';

    var b=m+'btnCalc';
    var t=sjsAutoTag.criar('button',b, false, "Calcular"); $("#"+a).append(t);
    $('#'+b).click(function(){ siteCart.pedidoCalcular(); });

    var b=m+'btnGravar';
    var t=sjsAutoTag.criar('button',b, false, "Fechar o pedido"); $("#"+a).append(t);
    $('#'+b).click(function(){ siteCart.pedidoFechar(); });

    var b=m+'btnVoltar';
    var t=sjsAutoTag.criar('button',b, false, "Esvaziar o carrinho"); $("#"+a).append(t);
    $('#'+b).click(function(){ siteCart.pedidoEsvaziar(); });



},

// rotinas de apoio

_verificarRetornoAjax: function(retCode, erros){
    if(retCode=='erro'){ this.vld.mensagensAdd('NENHUM',erros[0]); this.vld.mostrar(); }
},

_IsNumeric: function(sText) {
    var ValidChars = "0123456789"; var IsNumber=true; var Char;
    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; }
    }
    return IsNumber;
},

_toNum: function(v){
    var nv='';
    for(iv=0;iv<v.length;iv++){
        if(v.charAt(iv)=='.') { nv+='';}
        else if(v.charAt(iv)==',') { nv+='.'; }
        else { nv+=v.charAt(iv); }
    }
    return parseFloat(nv);
},

_toStr: function(v){
    var wv=v.split('.');
    if(wv.length==1) { return wv[0]+',00'; }
    else { if(wv[1].length==1) { return wv[0]+','+wv[1]+'0'; } else { return wv[0]+','+wv[1]; } }
}


};

