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

fichas: {
    linhas: 4,
    colunas: 3,
    largColuna: 225,
    paginas: []
},

fichasIndex:{ teste:'xx'},

imagens: {},

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

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

    // configurar a estrutura da página
    var tags="";
    tags+='<p id="lojaTitulo" class="ecomFabricante">Loja</p>'
    tags+='<div id="ecomDestaques"><table><tbody><tr>';
    tags+='<td id="ecdMenu"></td>';
    tags+='<td class="ecomFichasSepH"></td>';
    tags+='<td id="ecdImg"></td>';
    tags+='</tr></tbody</table></div>';

    // apresentar
    $('#ecomArea').html(tags);
    this.menuCarregar();
    this.destaquesCarregar();

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

},

destaquesCarregar: function(){
    var ajaxParam={ acao: 'lojaDestaques' };
    var urlPHP='sistema/sis/ecom/ecom.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; $('#ecomArea').append(msg); },
        success: function(dados){
            var tb=dados.tabela; var er=dados.tabela.erros;
            if(tb.retCode=='erro'){ var i=0; var m=''; for(i=0; i<er.length; i++){ m+=er[i]+'<br>'; } $('#ecomArea').append('Erro: '+m); return false; }
            if(tb.retCode=='vazio') return false;
            $.siteEcom.destaquesMostrar(dados.tabela.rs);
        }
    });
},

destaquesMostrar: function(destaques){
    if(!destaques) return null;
    var tags='';
    tags+='<div id="dstSlideshow">';
    var i=0; for(i=0; i<destaques.length; i++){ tags+='<img src="sdi3-images/'+destaques[i].endereco+'">'; }
    tags+='</div>';
    $('#ecdImg').append(tags);
    $('#dstSlideshow').cycle({fx: 'curtainX', timeout: 10000, pause: 1, next: '#dstSlideshow'});
},

menuCarregar: function(){
    var ajaxParam={ acao: 'lojaMenu' };
    var urlPHP='sistema/sis/ecom/ecom.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; $('#ecomArea').append(msg); },
        success: function(dados){
            var tb=dados.tabela; var er=dados.tabela.erros;
            if(tb.retCode=='erro'){ var i=0; var m=''; for(i=0; i<er.length; i++){ m+=er[i]+'<br>'; } $('#ecomArea').append('Erro: '+m); return false; }
            if(tb.retCode=='vazio') return false;
            $.siteEcom.menuMostrar(dados.tabela.rs);
        }
    });
},

menuMostrar: function(menu){

    // prepara
    var tags='';
    tags+='<table class="lojaMenu"<thead><tr><td class="lojaMenuTitulo">Seções da Loja</td></tr></thead>';
    tags+='<tbody>';
    var i=0; for(i=0; i<menu.length; i++){
        var reg=menu[i];
        var id='mnuLojaItm'+reg.fabricante_id+''+reg.categoria_id;
        tags+='<tr><td class="lojaMenuItem" id="'+id+'">'+menu[i].identif+'</td></tr>';
    }
    tags+='</tbody></table>';
    $('#ecdMenu').append(tags);

    // associa ações
    var i=0; for(i=0; i<menu.length; i++){
        var reg=menu[i];
        var id='mnuLojaItm'+reg.fabricante_id+''+reg.categoria_id; var obj=$('#'+id);
        obj.hover(function(){$(this).addClass('menuPrdHover');}, function(){$(this).removeClass('menuPrdHover');})
        obj.data('fabricante', reg.fabricante_id);
        obj.data('categoria', reg.categoria_id);
        obj.click(function(){
            $.siteEcom.menuSelecionar( $(this).data('fabricante'), $(this).data('categoria'), $(this).text() )
        });
    }

    // apresenta
    if(this.opcoesChamada.fabricante && this.opcoesChamada.categoria){
        var id='mnuLojaItm'+this.opcoesChamada.fabricante+''+this.opcoesChamada.categoria;
    } else {
        var id='mnuLojaItm'+menu[0].fabricante_id+''+menu[0].categoria_id;
    }
    $('#'+id).click();

},

menuSelecionar: function(fabricante_id, categoria_id, nome){

    // preservar ids
    this.opcoesChamada.fabricante=fabricante_id;
    this.opcoesChamada.categoria=categoria_id;

    // apagar  navegadores e produtos
    $('#ecomFichasNavInf').remove();
    $('#ecomFichas').remove();
    $('#ecomFichasNavSup').remove();
    this.fichas.paginas=[];

    // apresentar
    $('#lojaTitulo').text('Loja '+nome)
    this.produtosCarregar();

},

produtoFichaPreparar: function(p,l,c){
    var tags='';
    var prod=this.fichas.paginas[p][l][c];

    tags+='<table id="efctt'+l+c+'" class="fichaPrd">';

    tags+='<tr>';
    tags+='<td id="efcttit'+l+c+'" colspan="2" class="fichaPrdTitulo">';
    tags+=prod.nome;
    if(prod.no_cart) { tags+=' (*)'; }
    tags+='</td>';
    tags+='</tr>';

    if(this.imagens[prod.produto_id]){
        tags+='<tr>';
        tags+='<td style="vertical-align:top; text-align:center;" colspan="2">';
        tags+='<img border=0 src="sdi3-images/'+this.imagens[prod.produto_id]+'">';
        tags+='</td>';
        tags+='</tr>';
    }
    tags+='<tr>';
    tags+='<td class="fichaPrdResumo" colspan="2">';
    tags+=prod.descricao;
    tags+=' <span id="efcDet'+l+c+'" class="fichaPrdDetalhes">Veja +</span>';
    tags+='</td>';
    tags+='</tr>';

    if(prod.preco && prod.oferecido=='S'){
        if(prod.promocao_preco){
            var pco='Preço: De <span style="text-decoration:line-through;">'+prod.preco+'</span> por '+prod.promocao_preco;
        } else {
            var pco='Preço: '+prod.preco;
        }
    } else {
        var pco='Preço mediante consulta';
    }


    if(prod.preco && prod.oferecido=='S' && prod.qtd_disponivel<=0){
        pco+='<br>(Esgotado)';
    }
    tags+='<tr>';
    tags+='<td colspan="2" class="'+(prod.oferecido=='S' && prod.promocao_preco ? 'fichaPrdPromo' : 'fichaPrdPreco')+'">';
    tags+=pco;
    tags+='</td>';
    tags+='</tr>';

    tags+='<tr>';
    tags+='<td id="efcCart'+l+c+'" class="fichaPrdDetalhes">';
    tags+='Ver carrinho';
    tags+='</td>';
    tags+='<td id="efcCpr'+l+c+'" class="fichaPrdComprar">';
    tags+=(prod.preco && prod.oferecido=='S' && prod.qtd_disponivel>0 ? 'Comprar' : '');
    tags+='</td>';
    tags+='</tr>';

    tags+='</table>';

    $('#efc'+l+c).append(tags);
    $('#efcDet'+l+c).data('fbr', this.opcoesChamada.fabricante );
    $('#efcDet'+l+c).data('cat', this.opcoesChamada.categoria );
    $('#efcDet'+l+c).data('prd', prod.produto_id );
    $('#efcDet'+l+c).hover(
        function(){ $(this).addClass('fichaPrdHover'); },
        function(){ $(this).removeClass('fichaPrdHover'); }
    );
    $('#efcDet'+l+c).click(function(){
        var f=$(this).data('fbr');
        var c=$(this).data('cat');
        var p=$(this).data('prd');
        window.location='bb-produtos.php?fabricante='+f+'&categoria='+c+'&produto='+p;
    });
    $('#efcCart'+l+c).click( function(){
        if(siteCart.gClienteId){
            siteCart.cartMostrar();
        } else {
            window.alert('Antes de iniciar suas compras, faça seu login, por favor.');
            $('#laCpfCnpj').focus();
        }
    });

    if(prod.preco && prod.oferecido=='S' && prod.qtd_disponivel>0){
        $('#efcCpr'+l+c).hover(
            function(){ $(this).addClass('fichaPrdHover'); },
            function(){ $(this).removeClass('fichaPrdHover'); }
        );
//        $('#efcCpr'+l+c).data('prd', prod.produto_id );
        $('#efcCpr'+l+c).data('pag', p );
        $('#efcCpr'+l+c).data('lin', l );
        $('#efcCpr'+l+c).data('col', c );
        $('#efcCpr'+l+c).click(function(){
            var p=$(this).data('pag');
            var l=$(this).data('lin');
            var c=$(this).data('col');
            siteCart.comprar(p, l, c);
        });
    }
},

produtosCarregar: function(){
    var ajaxParam={ acao: 'lojaProdutos', fabricante_id: this.opcoesChamada.fabricante, categoria_id: this.opcoesChamada.categoria };
    var urlPHP='sistema/sis/ecom/ecom.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; $('#ecomArea').append(msg); },
        success: function(dados){
            var tb=dados.tabela; var er=dados.tabela.erros;
            if(tb.retCode=='erro'){ var i=0; var m=''; for(i=0; i<er.length; i++){ m+=er[i]+'<br>'; } $('#ecomArea').append('Erro: '+m); return false; }
            if(tb.retCode=='vazio') return false;

            // armazenar imagens
            if(dados.imagensLoja.rs){
                var im=0;
                for(im=0; im<dados.imagensLoja.rs.length; im++){
                    $.siteEcom.imagens[dados.imagensLoja.rs[im].produto_id]=dados.imagensLoja.rs[im].endereco;
                }
            }

            // apresentar produtos
            $.siteEcom.produtosMostrar(dados.tabela.rs);
        }
    });
},

produtosMostrar: function(prd){

    this.produtosPreparar(prd);
    var pg=0;
    if($.siteEcom.opcoesChamada.produto){
        if($.siteEcom.fichasIndex[$.siteEcom.opcoesChamada.produto]){ pg=$.siteEcom.fichasIndex[$.siteEcom.opcoesChamada.produto].p; }
    }
    this.produtosMostrarPagina(pg);
    if($.siteEcom.opcoesChamada.produto){
        if($.siteEcom.fichasIndex[$.siteEcom.opcoesChamada.produto]){
            var l=''+$.siteEcom.fichasIndex[$.siteEcom.opcoesChamada.produto].l;
            var c=''+$.siteEcom.fichasIndex[$.siteEcom.opcoesChamada.produto].c;
            $.scrollTo('#efctt'+l+c, 800);
            $('#efcttit'+l+c).css('background-color','#667ab9');
            $('#efcttit'+l+c).css('color','white');
        }
    }

//$.scrollTo( '#options-examples', 800, {easing:'elasout'} );

},

produtosMostrarPagina: function(pagina){

    $('.ecomNavSel').removeClass('ecomNavSel');
    $('#ecomNavPgS_'+pagina).addClass('ecomNavSel');
    $('#ecomNavPgI_'+pagina).addClass('ecomNavSel');

    // fichinhas dos produtos
    $('#ecomFichas').empty();
    var tags='';
    tags+='<table class="ecomFichas">';
    tags+='<tbody id="ecomFichasBody"></tbody>';
    tags+='</table>';
    $('#ecomFichas').append(tags);

    var pg=this.fichas.paginas[pagina];
    var l=0;
    for(l=0; l<pg.length; l++){
        if(l!=0) $('#ecomFichasBody').append('<tr><td colspan="'+((pg[l].length+2)-1)+'" class="ecomFichasSepV"></td></tr>');

        var tags='<tr id="efl'+l+'"></tr>';
        $('#ecomFichasBody').append(tags);

        var c=0;
        for(c=0; c<pg[l].length; c++){
            var tags='';
            if(c!=0) $('#efl'+l).append('<td class="ecomFichasSepH"></td>');
            tags+='<td id="efc'+l+c+'" class="ecomFichas" style="width: '+this.fichas.largColuna+'px"></td>';
            $('#efl'+l).append(tags);

            if(pg[l][c]) {
                this.produtoFichaPreparar(pagina,l,c)
            } else {
                $('#efc'+l+c).attr('class', 'ecomFichasNada');
            }
        }

    }

},

produtosPreparar: function(prd){

    // prepara as páginas
    var fch=$.siteEcom.fichas;
    var ln=fch.linhas; var cl=fch.colunas; var pg=Math.ceil( prd.length / (ln*cl) )
    var p=0; var l=0; var p=0;
    for(p=0; p<pg; p++){
        fch.paginas[p]=new Array();
        for(l=0; l<ln; l++){
            fch.paginas[p][l]=new Array();
            for(c=0; c<cl; c++){ fch.paginas[p][l][c]=false; }
        }
    }

    // mapeia os produtos pelas páginas

    $.siteEcom.fichasIndex={};
    var r=0; var p=0; var l=0; var c=0;
    for(r=0; r<prd.length; r++){
        fch.paginas[p][l][c]=prd[r];
        $.siteEcom.fichasIndex[prd[r].produto_id]={ 'p': p, 'l': l, 'c': c };
        c++;
        if(c>=cl) { c=0; l++; }
        if(l>=ln) { l=0; p++; }
    }

    // quadro do navegador superior
    var tags='<div id="ecomFichasNavSup"></div>';
    $('#ecomArea').append(tags);
    var i=0;
    var tags='';
    tags+='<table class="ecomNavSup"><tr>';
    tags+='<td class="ecomNavTit">Páginas: </td>';
    for(i=0; i<fch.paginas.length; i++){ tags+='<td class="ecomNavSep"></td><td id="ecomNavPgS_'+i+'" class="ecomNav">'+(i+1)+'</td>'; }
    tags+='</tr></table>';
    $('#ecomFichasNavSup').append(tags);
    for(i=0; i<fch.paginas.length; i++){
        $('#ecomNavPgS_'+i).click(
            function(){
                var wpg=this.id.split('_');
                $.siteEcom.produtosMostrarPagina(wpg[1]);
            }
        );
        $('#ecomNavPgS_'+i).hover(
            function(){$(this).addClass('ecomNavHvr')},
            function(){$(this).removeClass('ecomNavHvr')}
        );
    }

    // quadro das fichas de produtos
    var tags='<div id="ecomFichas"></div>';
    $('#ecomArea').append(tags);

    // quadro do navegador inferior
    var tags='<div id="ecomFichasNavInf"></div>';
    $('#ecomArea').append(tags);
    var i=0;
    var tags='';
    tags+='<table class="ecomNavInf"><tr>';
    tags+='<td class="ecomNavTit">Páginas: </td>';
    for(i=0; i<fch.paginas.length; i++){ tags+='<td class="ecomNavSep"></td><td id="ecomNavPgI_'+i+'" class="ecomNav">'+(i+1)+'</td>'; }
    tags+='</tr></table>';
    $('#ecomFichasNavInf').append(tags);
    for(i=0; i<fch.paginas.length; i++){
        $('#ecomNavPgI_'+i).click(
            function(){
                var wpg=this.id.split('_');
                $.siteEcom.produtosMostrarPagina(wpg[1]);
            }
        );
        $('#ecomNavPgI_'+i).hover(
            function(){$(this).addClass('ecomNavHvr')},
            function(){$(this).removeClass('ecomNavHvr')}
        );
    }

}

}});
