/*  BioBrasil
    www.cebinet.com.br
    silviosa@sswin.com.br
    Agosto/2008
    ====================== */
jQuery.extend({
siteProdutos: {

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

selAtual: {
    fabricante: false,
    categoria: false
},

controleFabCat:{
    set: function(id){ if(!this[id]) this[id]=true; },
    check: function(id) { if(this[id]) return true; else return false;}
},

carregar: function(){

    this.menuMostrar('interno');
    this.produtoMostrar();

},

menuMostrar: function(modo){

    // 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' || arg[0]=='produto'){
                qs[arg[0]]=arg[1];
            } else {
//                $('#prodMenu').append('Erro: Parêmetro inválido "'+arg[0]+'". Era esperado fabricante, categoria ou produto.');
//                return false;
            }
        }
    }

    // obter so fabricantes
    qs.acao='site2Fabr';
    var ajaxParam={ acao: qs.acao  };
    var urlPHP='sistema/sis/produtos/produtos.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(request, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+request.responseText; $('#prodMenu').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ var i=0; var msg=''; for(i=0; i<dados.tabela.erros.length; i++){ msg+=dados.tabela.erros[i]+'<br>'; } $('#prodMenu').append('Erro: '+msg); return false; }

            var i=0; var fbr=dados.fabricantes.rs;
            for(i=0; i<fbr.length; i++){
                var reg=fbr[i];
                var tags='';
                var chave='';
                chave+=''+reg.fabricante_id;
                chave+=''+reg.categoria_id;

                tags+='<table><thead><tr><td id="mnutit'+chave+'" class="s2TitMenu">';
                tags+=reg.identif;
                tags+='</td></tr></thead>';
                tags+='<tbody id="mnuitm'+chave+'"></tbody>';
                tags+='</table>';
                $('#prodMenu').append(tags);

                $('#mnutit'+chave).data('fab',reg.fabricante_id);
                $('#mnutit'+chave).data('cat',reg.categoria_id);
                $('#mnutit'+chave).css('cursor','pointer');
                $('#mnutit'+chave).hover(function(){ $(this).addClass('menuPrdHover'); },function(){ $(this).removeClass('menuPrdHover'); });
                $('#mnutit'+chave).click(function(){
                    $.siteProdutos.menuMostrarProds($(this).data('fab'), $(this).data('cat'), modo);
                });
                $('#mnuitm'+chave).hide();
            }

            var chave='mnutit';
            if($.siteProdutos.opcoesChamada.fabricante && $.siteProdutos.opcoesChamada.fabricante){
                chave+=''+$.siteProdutos.opcoesChamada.fabricante;
                chave+=''+$.siteProdutos.opcoesChamada.categoria;
                $('#'+chave).click();
            } else {
                chave+=''+dados.fabricantes.rs[0].fabricante_id;
                chave+=''+dados.fabricantes.rs[0].categoria_id;
//                $('#'+chave).click();
            }

        }
    });

},

menuMostrarProds: function(fabricante, categoria, modo){

    // esconde a seleção anterior
    var chave='mnuitm';
    chave+=''+this.selAtual.fabricante;
    chave+=''+this.selAtual.categoria;
    $('#'+chave).hide();

    // preserva a seleção atual
    this.selAtual.fabricante=fabricante;
    this.selAtual.categoria=categoria;
    var chave='mnuitm';
    chave+=''+fabricante;
    chave+=''+categoria;

    if(this.controleFabCat.check(chave)) {
        $('#'+chave).show();
        return true;
    }

    // apresenta a seleção atual
    var ajaxParam={ 'acao': 'site2Prod', 'fabricante_id': fabricante, 'categoria_id': categoria  };
    var urlPHP='sistema/sis/produtos/produtos.php';
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(request, s, e){ var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+request.responseText; $('#prodMenu').append(msg); },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){ var i=0; var msg=''; for(i=0; i<dados.tabela.erros.length; i++){ msg+=dados.tabela.erros[i]+'<br>'; } $('#prodMenu').append('Erro: '+msg); return false; }

            var chave='mnuitm';
            chave+=''+$.siteProdutos.selAtual.fabricante;
            chave+=''+$.siteProdutos.selAtual.categoria;
            var rs=dados.produtos.rs
            var i=0; for(i=0; i<rs.length; i++){
                var reg=rs[i];

                var tags='';
                tags+='<tr class="sdi_menu_lateral"><td id="lnkProd'+reg.produto_id+'" class="sdi_menu_lateral">';
                if(modo=='interno'){
                    tags+='<a class="sdi_menu_lateral" target="_self" ';
                    tags+='href="#"';
                    tags+='>'+reg.nome+'</a>';
                } else {
                    tags+='<a class="sdi_menu_lateral" target="_self" ';
                    tags+='href="bb-produtos.php?fabricante='+$.siteProdutos.selAtual.fabricante+'&categoria='+$.siteProdutos.selAtual.categoria+'&produto='+reg.produto_id+'"';
                    tags+='>'+reg.nome+'</a>';
                }
                tags+='</td></tr>';
                $('#'+chave).append(tags);

                // associar links, quando o menu for apresentado na tela dos produtos
                if(modo=='interno'){
                    var pchave='#lnkProd'+reg.produto_id;
                    $(pchave).click(function(){
                        $.siteProdutos.opcoesChamada.fabricante=$.siteProdutos.selAtual.fabricante;
                        $.siteProdutos.opcoesChamada.categoria=$.siteProdutos.selAtual.categoria;
                        $.siteProdutos.opcoesChamada.produto=this.id.substr(7);
                        $.siteProdutos.produtoMostrar();
                    });
                }

            }
            $('#'+chave).show();
            $.siteProdutos.controleFabCat.set(chave);

        }
    });

},

produtoMostrar: function(){

    $('#prodVolta').empty();
    var urlPHP='sistema/sis/produtos/produtos.php';
    var qs=this.opcoesChamada;
    qs.acao='siteProd';
    var ajaxParam={ acao: qs.acao, produto_id: qs.produto };
    $.ajax({
        url: urlPHP, data: ajaxParam, type: "POST", dataType: 'json',
        error: function(request, s, e){
            var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+request.responseText;
            $('#prodTitulo').append(msg);
        },
        success: function(dados){
            if(dados.tabela.retCode=='erro'){
                var i=0; var msg='';
                for(i=0; i<dados.tabela.erros.length; i++){ msg+=dados.tabela.erros[i]+'<br>'; }
                $('#prodTitulo').append('Erro: '+msg);
                return false;
            }

            // título e descrição
            var reg=dados.tabela.rs[0];
            $('#prodTitulo').html(reg.nome)

            // imagens e descrição
            var tags='';
            tags+='<table><tbody><tr>';
            if(dados.imagens.rs){
//                tags+='<td class="prodSlideshowArea"><div id="prdSlideshow" class="prodSlideshow">';
//                var i=0; for(i=0; i<dados.imagens.rs.length; i++){
//                    tags+='<img src="sdi3-images/'+dados.imagens.rs[i].endereco+'">';
//                }
//                tags+='</div></td>';
            }
            tags+='<td class="prodDescrT">'+reg.descricao+'</td>';
            tags+='</tr></tbody></table>';
            $('#prodDescr').html(tags);
            if(dados.imagens.rs){
                $('#prdSlideshow').cycle({fx: 'shuffle', pause: 1, next: '#prdSlideshow'});
            }

            // botões de voltar e comprar
            var tags='';
            tags+='<p class="prodLinBotoes">';
            tags+='<span id="prodBotaoVoltar1" class="fichaPrdDetalhes">Loja</span>';
//            tags+='&nbsp;&nbsp;';
//            tags+='<span id="prodBotaoComprar1" class="fichaPrdComprar">Comprar</span>';
            tags+='</p>'
            $('#prodDescr').append(tags);

            if(dados.textos.rs){
                var tags='';
                tags+='<p class="prodLinBotoes">';
                tags+='<span id="prodBotaoVoltar2" class="fichaPrdDetalhes">Loja</span>';
//                tags+='&nbsp;&nbsp;';
//                tags+='<span id="prodBotaoComprar2" class="fichaPrdComprar">Comprar</span>';
                tags+='</p>'
                $('#prodVolta').html(tags);
            }

            $('#prodBotaoVoltar1, #prodBotaoVoltar2').hover(
                function(){ $(this).addClass('fichaPrdHover'); },
                function(){ $(this).removeClass('fichaPrdHover'); }
            );

            $('#prodBotaoVoltar1, #prodBotaoVoltar2').click(function(){
                var f=$.siteProdutos.opcoesChamada.fabricante;
                var c=$.siteProdutos.opcoesChamada.categoria;
                var p=$.siteProdutos.opcoesChamada.produto;
                window.location='bb-ecom.php?fabricante='+f+'&categoria='+c+'&produto='+p;
            });
//            $('#prodBotaoComprar1, #prodBotaoComprar2').click(function(){
//                var f=$.siteProdutos.opcoesChamada.fabricante;
//                var c=$.siteProdutos.opcoesChamada.categoria;
//                window.location='bb-ecom.php?fabricante='+f+'&categoria='+c;
//                window.alert('Em construção ... Respeitará as regras de produto ofertado');
//            });

            // textos
            $('#prodTextos').empty();
            if(dados.textos.rs){
                var urlSDI3='sistema/site/ecom/site.ecom.sdi3.componente.php';
                var i=0; for(i=0; i<dados.textos.rs.length; i++){
                    var cmpt=dados.textos.rs[i].conteudo.split('/');
                    var ajaxParam={ pagina: cmpt[1] };
                    $.ajax({
                        url: urlSDI3, data: ajaxParam, type: "POST", dataType: 'html',
                        error: function(request, s, e){
                            var msg='Erro na chamada AJAX: '+(s ? (s+' ') : '')+(e ? (e+' ') : '')+"\n"+request.responseText;
                            $('#prodTextos').append(msg);
                        },
                        success: function(dados){
                            $('#prodTextos').append(dados);
                        }
                    });
                }

            }
        }
    });
}



}});

