Asp .Net - JavaScriptSerializer: JSON em C#

JavaScriptSerializer é uma classe responsável por serialização de outras classes para a linguagem que o javascript entende, JSON. Esta é a mesma utilizada internamente pela camada de comunicação assíncrona do Asp .Net para serializar e desserializar os dados passados entre o navegador e o servidor Web.

Por | @oficinadanet Programação Pular para comentários

JavaScriptSerializer é uma classe responsável por serialização de outras classes para a linguagem que o javascript entende, JSON. Esta é a mesma utilizada internamente pela camada de comunicação assíncrona do Asp .Net para serializar e desserializar os dados passados entre o navegador e o servidor Web.

Para utilizar a classe é necessário importar o namespace System.Web.Script.Serialization.
A sintaxe para serializar um objeto é bem simples:

JavaScriptSerializer jss = new JavaScriptSerializer();
String res = jss.Serialize(Objeto); 

O método Serialize recebe qualquer tipo que herde de Object, essa função também pode ser usada assim:
JavaScriptSerializer jss = new JavaScriptSerializer();
StringBuilder sbRes = new StringBuilder();
jss.Serialize(Objeto, sbRes);

Mas será necessário importar o namespace System.Text. Vamos a um exemplo mais abrangente utilizando uma classe criada por nós como objeto.

[Pessoa.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

public class Pessoa
{
    public string Nome { get; set; }
    public int Idade { get; set; }

    public Pessoa(string Nome, int Idade)
    {
        this.Nome = Nome;
        this.Idade = Idade;
    }
}

[Default.aspx.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;
using System.Text;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List lstPessoas = new List();
        lstPessoas.Add(new Pessoa("Leonardo", 20));
        lstPessoas.Add(new Pessoa("João", 8));
        lstPessoas.Add(new Pessoa("Luis", 15));
        lstPessoas.Add(new Pessoa("Jorge", 17));
        lstPessoas.Add(new Pessoa("Monica", 22));

        JavaScriptSerializer jss = new JavaScriptSerializer();
        StringBuilder sbRes = new StringBuilder();
        jss.Serialize(lstPessoas, sbRes);

        Response.Write(sbRes.ToString());
    }
}


No exemplo acima, criei uma Lista da minha classe, algo parecido com um Array e o resultado na tela foi esse:
http://www.oficinadanet.com.br//imagens/coluna/2441/1.jpg


Agora precisamos fazer o javascript ler esse resultado, crie uma nova página e chame de ListarPessoas.aspx.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;
using System.Text;

public partial class ListarPessoas : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List lstPessoas = new List();
        lstPessoas.Add(new Pessoa("Leonardo", 20));
        lstPessoas.Add(new Pessoa("João", 8));
        lstPessoas.Add(new Pessoa("Luis", 15));
        lstPessoas.Add(new Pessoa("Jorge", 17));
        lstPessoas.Add(new Pessoa("Monica", 22));

        JavaScriptSerializer jss = new JavaScriptSerializer();
        StringBuilder sbRes = new StringBuilder();
        jss.Serialize(lstPessoas, sbRes);

        Response.Clear();
        Response.Write(sbRes.ToString());
        Response.End();
    }
}


Na página Default.aspx retire o código colocado no Page_Load e deixe o HTML assim:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




    </title>

    <script type="text/javascript">
        var request = null;
        try {
            request = new XMLHttpRequest();
        } catch (trymicrosoft) {
            try {
                request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (othermicrosoft) {
                try {
                    request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (failed) {
                    request = null;
                }
            }
        }

        function criarAjax() {
            try {
                request = new XMLHttpRequest();
            } catch (trymicrosoft) {
                try {
                    request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (othermicrosoft) {
                    try {
                        request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (failed) {
                        request = null;
                    }
                }
            }

            if (request == null)
                alert("Não foi possível criar o objeto ajax!");
        }

        function getDados() {
            if (request == null) criarAjax();
            if (request == null) return;
            
            var url = "ListarPessoas.aspx";
            //para evitar problemas com o cache do navegador
            url = url   "?cache="   new Date().getTime(); 
            request.open("GET", url, true);
            //chame a função sem os parênteses 
            request.onreadystatechange = getDados_Response; 
            request.send(null);
        }

        function getDados_Response() {
            if (request.readyState == 4) { //verifica o estado de prontidão    
                if (request.status == 200) {//verifica o status da requisição
                    //recupera os dados e os converte em um objeto
                    var jsonData = eval('('   request.responseText   ')');
                    //o navegador trata a JSON com texto, portanto utilize o responseText

                    
                    for (i = 0; i < jsonData.length; i  ) {
                        document.getElementById("divRes").innerHTML  = "Nome: "   
                        jsonData[i].Nome   ", Idade = "   jsonData[i].Idade   "<br />";
                    }
                }
            }
        }
    </script>

</head>
<body onload="getDados()">
    <form id="form1" runat="server">
    <div id="divRes">
    </div>
    </form>
</body>
</html></code></pre><br />
<br />
<strong>Executando a página:</strong><br />
<blockquote><div style="text-align:center"><img class="lazy " src="http://www.oficinadanet.com.br//imagens/coluna/2441/2.jpg" alt="http://www.oficinadanet.com.br//imagens/coluna/2441/2.jpg" /></div></blockquote><br />
<br />
Para mais informações: <a onclick="_gaq.push(['_trackEvent', 'link_externo', 'de_post-2091', 'para_url_http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx']);" href="https://www.oficinadanet.com.br/redirect.php?tipo=postout&urlout=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.web.script.serialization.javascriptserializer.aspx"  target="_blank"     rel="nofollow noreferrer noopener">Visite este site</a><br />
<br />
Até a próxima!</p><script src="https://painel.m3midia.com.br/lib/prism/prism.js"></script><link rel="stylesheet" type="text/css" href="https://painel.m3midia.com.br/lib/prism/prism.css"></p>
                </div>
                    <div class="wifl m-t-30">
                        <p><strong>Recomendações do editor:</strong></p>
                        <ul class="relacionadolink"><li><a onclick="_gaq.push(['_trackEvent', 'recomendacoes_editor', 'pfr2091', 'pto2874']);" href="https://www.oficinadanet.com.br/artigo/javascript/portfolio-imagem-slider">Portfolio image slider com CSS e JQuery</a></li><li><a onclick="_gaq.push(['_trackEvent', 'recomendacoes_editor', 'pfr2091', 'pto2842']);" href="https://www.oficinadanet.com.br/artigo/mobile/jquery-mobile-o-que-ele-pode-fazer-por-voce">jQuery Mobile: O que ele pode fazer por você?</a></li><li><a onclick="_gaq.push(['_trackEvent', 'recomendacoes_editor', 'pfr2091', 'pto2669']);" href="https://www.oficinadanet.com.br/artigo/javascript/carregando-conteudo-estatico-com-ajax">Carregando Conteúdo Estático com AJAX</a></li><li><a onclick="_gaq.push(['_trackEvent', 'recomendacoes_editor', 'pfr2091', 'pto2358']);" href="https://www.oficinadanet.com.br/artigo/javascript/o_ajax_e_seu_funcionamento">O Ajax e seu funcionamento</a></li><li><a onclick="_gaq.push(['_trackEvent', 'recomendacoes_editor', 'pfr2091', 'pto2183']);" href="https://www.oficinadanet.com.br/artigo/php/carregamento_dinamico_de_registros_com_phpjqueryajax">Carregamento dinâmico de registros com PHP/JQuery/AJAX</a></li>
                        </ul>
                    </div>
                
            </div>
            <script>try { _402_Show(); } catch(e) {}</script>
        </div>  
            <div class="bar2" >

                <div class="bar2"><div class="wifl m-b-40"><span class="titulo1"><span>Novas notícias</span></span><ul class="lst12  wifl  lsn "  ><li  >
                            <a  href="https://www.oficinadanet.com.br/ciencia/26301-o-que-e-eletricidade-estatica"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26301']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26301/raios-trovoes_1400x875_5d12d74b1a5fd_14080.jpg" title="O que é eletricidade estática?" alt="O que é eletricidade estática?" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  23:25h</span>
                                    <span class="tit tit2" >O que é eletricidade estática?</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/entretenimento/26299-vingadores-ultimato-retorna-aos-cinemas-com-cena-pos-creditos-inedita"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26299']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26299/vingadores-ultimato-volta-em-28-de-junho-com-cenas-ineditas-no-pos-creditos_14080.jpg" title="Vingadores: Ultimato, retorna aos cinemas com cena pós-créditos inédita!" alt="Vingadores: Ultimato, retorna aos cinemas com cena pós-créditos inédita!" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  22:25h</span>
                                    <span class="tit tit2" >Vingadores: Ultimato, retorna aos cinemas com cena pós-créditos inédit...</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/smartphones/26298-pesquisa-aponta-que-a-receita-gerada-para-os-desenvolvedores-na-apple-appstore-chega-a-ser-64-maior-do-que-na-google-play"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26298']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26298/apple-appstore-versus-google-play---loja-da-apple-e-64perc-mais-rentavel-que-a-loja-da-google_14080.jpg" title="Pesquisa aponta que desenvolver para Apple AppStore chega a ser 64% mais rentável do que para a Google Play" alt="Pesquisa aponta que desenvolver para Apple AppStore chega a ser 64% mais rentável do que para a Google Play" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  21:25h</span>
                                    <span class="tit tit2" >Pesquisa aponta que desenvolver para Apple AppStore chega a ser 64% ma...</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/games/26297-playstation-store-tem-ofertas-especiais-para-assinantes-da-ps-plus"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26297']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26297/life-is-strange-2_1400x875_5d12ab03da157_14080.jpg" title="PlayStation Store tem ofertas especiais para assinantes da PS Plus" alt="PlayStation Store tem ofertas especiais para assinantes da PS Plus" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  20:06h</span>
                                    <span class="tit tit2" >PlayStation Store tem ofertas especiais para assinantes da PS Plus</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/tecnologia/26286-como-evitar-que-o-seu-fone-de-ouvido-quebre"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26286']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26286/fonesdeouvido_1400x875_5d12a725cfea0_14080.jpg" title="Como evitar que o seu fone de ouvido quebre?" alt="Como evitar que o seu fone de ouvido quebre?" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  20:00h</span>
                                    <span class="tit tit2" >Como evitar que o seu fone de ouvido quebre?</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/games/26296-steam-tem-corrida-de-ferias-com-premios-incriveis-ate-dia-7-de-julho"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26296']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26296/steam-destak_1400x875_5d12a13a33432_14080.jpg" title="Steam tem corrida de férias com prêmios incríveis até dia 7 de julho" alt="Steam tem corrida de férias com prêmios incríveis até dia 7 de julho" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  19:02h</span>
                                    <span class="tit tit2" >Steam tem corrida de férias com prêmios incríveis até dia 7 de julho</span>
                                </div>
                            </a>
                        </li><li  >
                            <a class="pdest" href="https://www.oficinadanet.com.br/asus/26290-notebook-zenbook-14-lancamento-no-brasil"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26290']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26290/zenbook-capa-site_14080.jpg" title="Notebook ASUS Zenbook 14 com SSD NVMe, 8GB de RAM chega ao Brasil por R$ 5899" alt="Notebook ASUS Zenbook 14 com SSD NVMe, 8GB de RAM chega ao Brasil por R$ 5899" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  19:00h</span>
                                    <span class="tit tit2" >Notebook ASUS Zenbook 14 com SSD NVMe, 8GB de RAM chega ao Brasil por ...</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/tecnologia/26295-apple-retruca-spotify-e-nega-acusacoes-sobre-pratica-antitruste"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26295']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26295/spotify-apple-destak_1400x875_5d12938a147d7_14080.jpg" title="Apple retruca Spotify e nega acusações sobre prática antitruste" alt="Apple retruca Spotify e nega acusações sobre prática antitruste" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  17:03h</span>
                                    <span class="tit tit2" >Apple retruca Spotify e nega acusações sobre prática antitruste</span>
                                </div>
                            </a>
                        </li><li  >
                            <a class="pdest" href="https://www.oficinadanet.com.br/post/17882-as-15-melhores-animacoes-disney-na-netflix"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto17882']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/17882/netflix-disney_14080.jpg" title="As 15 melhores animações Disney na Netflix  [Atualizado]" alt="As 15 melhores animações Disney na Netflix  [Atualizado]" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  16:41h</span>
                                    <span class="tit tit2" >As 15 melhores animações Disney na Netflix  [Atualizado]</span>
                                </div>
                            </a>
                        </li><li  >
                            <a  href="https://www.oficinadanet.com.br/tecnologia/26293-procon-oferece-servico-que-bloqueia-ligacoes-de-telemarketing-veja-como-cadastrar-seu-numero"  onclick="_gaq.push(['_trackEvent', 'barra_novos', 'pfr2973', 'pto26293']);"   >
                                <span class="img box-img" ><img src="https://www.oficinadanet.com.br/imagens/post/26293/procon-telemarketing-destak_1400x875_5d127d32e4a88_14080.jpg" title="Procon oferece serviço que bloqueia ligações de telemarketing. Veja como cadastrar seu número" alt="Procon oferece serviço que bloqueia ligações de telemarketing. Veja como cadastrar seu número" >
                                </span>
                                <div class="info" >
                                    <span class="tit" >25/06/2019  16:31h</span>
                                    <span class="tit tit2" >Procon oferece serviço que bloqueia ligações de telemarketing. Veja co...</span>
                                </div>
                            </a>
                        </li></ul></div>      
                </div>
                <div class="bar2 p-rel" id="out_post_barra" data-distance="30" >
                    <div class="bar2" id="post_barra" >
                            <div class='wifl m-b-40'>
                                <!-- /6524261/ON_300x600_LATERAL -->
                                <div id='div-gpt-ad-1555093777375-0'>
                                <script>
                                googletag.cmd.push(function() { googletag.display('div-gpt-ad-1555093777375-0'); });
                                </script>
                                </div>
                            </div>
                    </div>
                </div>
            </div>
        <div class="wifl bottom_pause_post_barra"><div style="float:left;">
<div style="width: 300px; float: left; margin:auto">
<!-- /6524261/ON_FOOTER -->
<div id="div-gpt-ad-1512402583744-0" style="margin:auto; width:300px;">
<script>
googletag.cmd.push(function() { googletag.display("div-gpt-ad-1512402583744-0"); });
</script>
</div>
</div></div>
            <div style="float:left; max-width:750px; margin-left:20px" class="wifl"><span class="titulo1" ><span>NOTÍCIAS RELACIONADAS</span></span><ul class="lst4 post wifl  lsn "  ><li  >
                            <a class="" href="https://www.oficinadanet.com.br/post/9169-criando-urls-amigaveis-com-aspnet"  onclick="_gaq.push(['_trackEvent', 'oq_ler_conteudo_relacionado', 'pfr2091', 'pto9169']);"  >
                                <div class="img box-img2">
                                    <span class="label_tpl1 fix-bl bg1"></span>
                                    <img src="https://www.oficinadanet.com.br/_template/imagem/padrao.jpg" title="Criando URLs amigáveis com ASP.NET" alt="Criando URLs amigáveis com ASP.NET" >
                                    <span class="gradient"></span>
                                </div>
                                <span class="wifl tit4">Criando URLs amigáveis com ASP.NET</span>
                                <div class="wifl nfo">
                                    <span class="ass-autor cor2">por Leandro Dias</span></div>
                            </a>
                        </li><li  >
                            <a class="" href="https://www.oficinadanet.com.br/artigo/asp.net/como-usar-radio-button-em-uma-gridview-aspnet"  onclick="_gaq.push(['_trackEvent', 'oq_ler_conteudo_relacionado', 'pfr2091', 'pto3000']);"  >
                                <div class="img box-img2">
                                    <span class="label_tpl1 fix-bl bg1"></span>
                                    <img src="https://www.oficinadanet.com.br/_template/imagem/padrao.jpg" title="Como usar Radio Button em uma GridView Asp.NET" alt="Como usar Radio Button em uma GridView Asp.NET" >
                                    <span class="gradient"></span>
                                </div>
                                <span class="wifl tit4">Como usar Radio Button em uma GridView Asp.NET</span>
                                <div class="wifl nfo">
                                    <span class="ass-autor cor2">por Rafael Reis</span></div>
                            </a>
                        </li><li  >
                            <a class="" href="https://www.oficinadanet.com.br/artigo/asp.net/fazendo-inner-join-e-left-join-com-linq-no-aspnet"  onclick="_gaq.push(['_trackEvent', 'oq_ler_conteudo_relacionado', 'pfr2091', 'pto2739']);"  >
                                <div class="img box-img2">
                                    <span class="label_tpl1 fix-bl bg1"></span>
                                    <img src="https://www.oficinadanet.com.br/_template/imagem/padrao.jpg" title="Fazendo Inner Join e Left Join com Linq no ASP.NET" alt="Fazendo Inner Join e Left Join com Linq no ASP.NET" >
                                    <span class="gradient"></span>
                                </div>
                                <span class="wifl tit4">Fazendo Inner Join e Left Join com Linq no ASP.NET</span>
                                <div class="wifl nfo">
                                    <span class="ass-autor cor2">por Leonardo Hofling</span></div>
                            </a>
                        </li><li  >
                            <a class="" href="https://www.oficinadanet.com.br/artigo/asp.net/asp_net_autenticacao_com_jquery_json"  onclick="_gaq.push(['_trackEvent', 'oq_ler_conteudo_relacionado', 'pfr2091', 'pto2143']);"  >
                                <div class="img box-img2">
                                    <span class="label_tpl1 fix-bl bg1"></span>
                                    <img src="https://www.oficinadanet.com.br/_template/imagem/padrao.jpg" title="Asp .Net - Autenticação com JQuery/JSON" alt="Asp .Net - Autenticação com JQuery/JSON" >
                                    <span class="gradient"></span>
                                </div>
                                <span class="wifl tit4">Asp .Net - Autenticação com JQuery/JSON</span>
                                <div class="wifl nfo">
                                    <span class="ass-autor cor2">por Leonardo Hofling</span></div>
                            </a>
                        </li></ul>
            </div>
<div id="share_container" class=" left">
    <ul class="share_menu left vertical">
        <li class="share_btn visible" title="Compartilhe no Facebook"  onclick="  window.open('https://www.facebook.com/sharer/sharer.php?app_id=209309632417494&u=https%3A%2F%2Fwww.oficinadanet.com.br%2Fartigo%2Fasp.net%2Fasp_net_javascriptserializer_json_em_c%3Futm_source%3Dfacebook%26utm_medium%3Dsharebutton%26utm_campaign%3DRedesSociais','','width=600,height=400');  _gaq.push(['_trackEvent', 'btshare', 'facebook', 'https://www.oficinadanet.com.br/artigo/asp.net/asp_net_javascriptserializer_json_em_c?utm_source=facebook&utm_medium=sharebutton&utm_campaign=RedesSociais']);  ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=flgcomment&id=2091','flgcomment');  " ><span class="facebookShare">Facebook</span></li>
        <li class="share_btn visible" title="Compartilhe no Twitter"  onclick="  window.open('https://twitter.com/intent/tweet?text=Asp+.Net+-+JavaScriptSerializer%3A+JSON+em+C%23&url=https%3A%2F%2Fwww.oficinadanet.com.br%2Fartigo%2Fasp.net%2Fasp_net_javascriptserializer_json_em_c%3Futm_source%3Dtwitter%26utm_medium%3Dsharebutton%26utm_campaign%3DRedesSociais&via=oficinadanet','','width=600,height=400');  _gaq.push(['_trackEvent', 'btshare', 'twitter', 'https://www.oficinadanet.com.br/artigo/asp.net/asp_net_javascriptserializer_json_em_c?utm_source=twitter&utm_medium=sharebutton&utm_campaign=RedesSociais']);  ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=flgcomment&twitter=1&id=2091','flgcomment');  " ><span class="twitterShare">Twitter</span></li>
        <li class="share_btn visible" title="Compartilhe por Email"  onclick="  document.location='mailto:?subject=Asp .Net - JavaScriptSerializer: JSON em C#&body=Artigo: https%3A%2F%2Fwww.oficinadanet.com.br%2Fartigo%2Fasp.net%2Fasp_net_javascriptserializer_json_em_c%3Futm_source%3Dshr_mail%26utm_medium%3Dsharebutton%26utm_campaign%3DRedesSociais';  _gaq.push(['_trackEvent', 'btshare', 'email', 'https://www.oficinadanet.com.br/artigo/asp.net/asp_net_javascriptserializer_json_em_c?utm_source=shr_mail&utm_medium=sharebutton&utm_campaign=RedesSociais']);  ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=flgcomment&id=2091','flgcomment');  " ><span class="emailShare">Email</span></li>
        <li class="share_btn visible" title="Compartilhe pelo WhatsApp"  onclick="  _gaq.push(['_trackEvent', 'btshare', 'whatsapp', 'https://www.oficinadanet.com.br/artigo/asp.net/asp_net_javascriptserializer_json_em_c?utm_source=whatsapp&utm_medium=sharebutton&utm_campaign=RedesSociais']);  window.open('https://api.whatsapp.com/send?text=Asp .Net - JavaScriptSerializer: JSON em C# - https%3A%2F%2Fwww.oficinadanet.com.br%2Fartigo%2Fasp.net%2Fasp_net_javascriptserializer_json_em_c%3Futm_source%3Dwhatsapp%26utm_medium%3Dsharebutton%26utm_campaign%3DRedesSociais');  " ><span class="whatsappShare">WhatsApp</span></li>
        <li class="share_btn visible" title="Compartilhe pelo Telegram"  onclick="  _gaq.push(['_trackEvent', 'btshare', 'telegram', 'https://www.oficinadanet.com.br/artigo/asp.net/asp_net_javascriptserializer_json_em_c?utm_source=telegram&utm_medium=sharebutton&utm_campaign=RedesSociais']);  window.open('https://telegram.me/share/url?url=https%3A%2F%2Fwww.oficinadanet.com.br%2Fartigo%2Fasp.net%2Fasp_net_javascriptserializer_json_em_c%3Futm_source%3Dtelegram%26utm_medium%3Dsharebutton%26utm_campaign%3DRedesSociais&text=Asp+.Net+-+JavaScriptSerializer%3A+JSON+em+C%23');  ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=flgcomment&id=2091','flgcomment');  " ><span class="telegramShare">Telegram</span></li>
    </ul>
</div>
        </div>
        <div class="wifl">
            <div class="content5 ">
                        <div class="wifl post-bottom1" id="boxcomment" >
                            <span class="titulo1 tit_tag" ><span>Comentários</span></span>
                    <div id="btcarregarcomments_disqus" class="bt-all tpl2 wifl">Carregar comentários</div>
                    <div id="comment" class="comentarios_box">
                        <div id="disqus_thread"></div>
                    </div>
                        </div>
            </div>
            <div class="bar2 m-t-30" ><div class="wifl m-b-40"><span class="titulo1" ><span>Destaques</span></span><ul class="lst121  wifl  lsn "  ></ul></div>
            </div>
        </div>   
    </section>
</div></div>
                <script>
                    var disqus_shortname = 'oficinadanet'; // required: replace example with your forum shortname
                    var disqus_url = 'https://www.oficinadanet.com.br/artigo/asp.net/asp_net_javascriptserializer_json_em_c';

                    var disqus_config = function () {
                        this.callbacks.onNewComment = [function(comment) {ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=flgcomment&id=2091','flgcomment');
                        }];
                    };
                    function carregaComentariosDisqus()
                    {
                        $('#btcarregarcomments_disqus').hide();

                        (function() {
                            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
                           dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
                            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
                        })();
                    }        
                </script>
                <div style="display:none;" id="flgcomment"></div>
    <script>
        function loadLazyMateria()
        {carregaComentariosDisqus();         
        }
    </script>
                </section>
<footer class="footer wifl" id="footer">
    <div class="corpo">
        <a href="https://www.oficinadanet.com.br" class="logo2"></a>
        <div class="out-menu-footer">
            <ul class="menu-footer lst-footer1 wifl">
                <li><a href="https://www.oficinadanet.com.br/sobre">Sobre</a></li>
                <li><a href="https://www.oficinadanet.com.br/contato">Contato</a></li>
                <li><a href="https://www.oficinadanet.com.br/privacidade" >Política de Privacidade</a></li>
                <li><a href="https://www.oficinadanet.com.br/equipe" >Equipe</a></li>
                <li><a href="https://www.oficinadanet.com.br/colabore" >Trabalhe conosco</a></li>
            </ul>
            <ul class="menu-footer wifl">
                <li><span class="linksredes" onclick="window.open('https://www.facebook.com/oficinadanet')">Facebook</span></li>
                <li><span class="linksredes" onclick="window.open('https://www.youtube.com/user/oficinadanettv')">Youtube</span></li>
                <li><span class="linksredes" onclick="window.open('https://twitter.com/OficinadaNet')">Twitter</span></li>
                <li><span class="linksredes" onclick="window.open('https://www.instagram.com/oficinadanetoficial/')">Instagram</span></li>
                <li><span class="linksredes" onclick="window.open('https://t.me/oficinadanet')">Grupo no Telegram</span></li>
            </ul>
            <ul class="menu-footer wifl">
                <li><a href="https://www.oficinadanet.com.br/siga-nossas-redes-sociais" >Siga as nossas redes sociais</a></li>
            </ul>
        </div>
        <div class="out-menu-cupons">
            <span>Descontos</span>
            <ul class="lst_cupons wifl lsn">
                <li><a href="https://www.oficinadanet.com.br/cupons/cupom-de-desconto-netshoes">Descontos Netshoes</a></li>
                <li><a href="https://www.oficinadanet.com.br/cupons/cupom-de-desconto-saraiva">Descontos Saraiva</a></li>
                <li><a href="https://www.oficinadanet.com.br/cupons/cupom-de-desconto-livraria-cultura">Descontos Livraria Cultura</a></li>
                <li><a href="https://www.oficinadanet.com.br/cupons/cupom-de-desconto-fast-shop">Descontos Fast Shop</a></li>
                <li><a href="https://www.oficinadanet.com.br/cupons/cupom-de-desconto-sou-barato">Descontos Sou Barato</a></li>
            </ul>
        </div>
        <div class="box-m3"  >
            <p class="wifl txt1">Um site do grupo</p>
            <a class="m3midia" href="http://www.m3midia.com.br"></a>
            <p class="wifl txt2">© 2005-2019 <span>M3 Mídia</span></p>
            <p class="wifl txt2">Todos os direitos reservados</p>
        </div>
    </div>
</footer><script>
                var tempo = '1800';
                window.setTimeout('location.reload();', tempo*1000);
                </script>
                <div class="wifl hgt100 blackoverlay" id="blackoverlay"></div>
<div id="out_lib" >
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</div>
<script>
    
    var vv={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=vv._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=vv._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}
    function BV(str){return vv.decode(str);}

    function scrollPageToID(id)
    {
        $('html,body').animate({ scrollTop: $('#'+id).offset().top - ( $(window).height() - $('#'+id).outerHeight(true) ) / 2  }, 700);
    }

    function serializeDataAttr(form)
    {
        var dataarr = new Array();
        for(var i in form.data()) {
            var subarr = new Array();
            subarr['name'] = i;
            subarr['value'] = form.data()[i];
            dataarr.push(subarr);
        }
        return $.param(form.serializeArray().concat(dataarr));
    }

    function testaVazio(campo,comparacao,mensagem,erro)
    {
        if (erro == true) {return true;}
        if (document.getElementById(campo).value == comparacao)
        {
            alert (mensagem);
            document.getElementById(campo).value = "";
            document.getElementById(campo).focus();
            return true;
        }
        else {return false;}
    }
    function testaCheckBox(classe,mensagem)
    {
        erro = true;
        checkboxes = document.getElementsByClassName(classe);

        for(var i=0, n=checkboxes.length; i<n; i++)
        {
            if(checkboxes[i].checked)
                erro = false;
        }

        if(erro == true)
        {
            alert(mensagem);
            checkboxes[0].focus();
            return true;
        }
        else
            return false;
  }
  
    function setCookie (name,value,expires,path,domain,secure)
    {
      document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + expires.toUTCString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
    }
    
    function ajaxDireto(url,param,retorno,tipo) //usa jquery
    {
        if(!tipo) tipo = "POST"
         $.ajax({
           type: tipo,
           url: url,
           data: param,
           success: function(html){
             $("#"+retorno).html(html);
           }
         });

    }

    function newsletterCad(e,step)
    {
//        alert(step);
//        alert(e);

        
    }

    function populaSelectCidade(ele)
    {
        ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=populaSelectCidade&sigla='+$(ele).val(),'select_cidade');
    }
    
        
    $(document).ready(function (e) {
       var header_height = $("header").height();
       $(window).scroll(function(){
           var scrolltop = $(window).scrollTop();
           if(scrolltop > 0)
               $('#out-img-curso-aberto').css('top',(($(window).scrollTop()/2) *-1) + header_height);
           else
               $('#out-img-curso-aberto').css('top',header_height+'px');
       });
    });

    var scroll_aux      = 0;
    var header_top      = $("#header").offset().top;
    var header_height   = $("#header").outerHeight();
    var window_height   = $(window).height();
    var height_document = $(document).height();
    
    
    function fixedMenu()
    {
        var scroll = $(window).scrollTop();

        if( scroll >= (header_top+header_height) )
        {
            if(scroll < scroll_aux )
            {
                $('#mov_header').css({'position':'fixed',transition: '0.3s','top':'0px'});
            }
            else
            {
                if( (scroll+window_height+20) > height_document )
                {
                    $('#mov_header').css({'position':'fixed',transition: '0.3s','top':'0px'});
                }
                else
                {
                    var v_tra  = '0.3s';
                    if( scroll <= ( header_top + header_height + 100) )
                        v_tra  = '0s';

                    $('#mov_header').css({'position':'fixed',transition: v_tra,'top':'-'+header_height+'px'});
                }
            }
        }
        else if(scroll <= header_top)
        {
            $('#mov_header').css({'position':'absolute',transition: '0.3s','top':'0px'});

        }
        scroll_aux = scroll;
    }

    function boxHoverSite(act,cic,e)
    {
        var top     = $(e).offset().top+$(e).outerHeight();
        var e_hover = '';

        if($(e).data('box-hover'))
        {
            e_hover = '#'+$(e).data('box-hover')+'_hover';

            switch(act)
            {
                case 2:
                    $('.contr_hov_itens').fadeOut(0);
                    $(e_hover).fadeIn(400);
                    $(e_hover).addClass('contr_hov_itens');
                    boxHoverSite(0,0,e);
                break;
                case 0:
                    if(cic < 5)
                    {
                        var timeBoxHoverSite = setTimeout(function()
                        {
                            cic++;
                            boxHoverSite(0,cic,e);
                        }, 500);
                    }
                    else
                    {
                        clearTimeout(timeBoxHoverSite);
                        if(!$(e_hover).is(":hover") && !$(e).is(":hover") && !$(e_hover+' *').is(":focus"))
                        {
                            $(e_hover).fadeOut(400);
                        }
                        else
                            boxHoverSite(0,0,e);
                    }

                break;
            }
        }
        else
        {
            $('.contr_hov_itens').fadeOut(0);
        }
    }

    function blackoverlay(act)
    {
        if(act)
        {
            $('#blackoverlay').fadeIn(400);
            $('html').addClass('no_scroll');
        }
        else
        {
            $('#blackoverlay').fadeOut(400);
            $('html').removeClass('no_scroll');
        }
    }

    function actAovivo()
    {
        window.location = "";
    }

    function actBodyPago()
    {
        window.open("");
    }

    function actMenuMobile(act)
    {
        if(act)
        {
            $('#blackoverlay').addClass('blackoverlay_mobile').trigger('classChange');

            if(!$('#menumobile-act').data('post-left'))
            {
                $('#menumobile-act').data('post-left',$('#menumobile-act').css('left'));
            }
            $('#menumobile-act').css('left','0');
            $('#menumobile').css('display','none');
            $('#fechar_menumobile').css('display','block');
        }
        else
        {
            $('#menumobile-act').css('left',$('#menumobile-act').data('post-left'));
            $('#blackoverlay').removeClass('blackoverlay_mobile').trigger('classChange');
            $('#menumobile').css('display','block');
            $('#fechar_menumobile').css('display','none');
        }
        blackoverlay(act);
    }

    function actAbreComments(act)
    {
        if(act)
        {
            var post_id        = $('#bt_new_cmt').data('post_id');
            var url            = $('#bt_new_cmt').data('url');
            var tipo           = $('#bt_new_cmt').data('tipo');
            var comentariosnrs = $('#bt_new_cmt').data('comentariosnrs');
            
            if($("#box_new_cmt_retorno").html() == '')
            {
                ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=getCommentsBox&post_id='+post_id+'&url='+url+'&tipo='+tipo+'&comentariosnrs='+comentariosnrs,'box_new_cmt_retorno');
                ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=flgcomment&id='+post_id,'flgcomment');
            }
            
            $('#box_new_cmt_open').css('right','0');
            $('#bt_new_cmt_orelha').css('display','none');
            $('#bt_new_cmt_orelha_close').css('display','block');
            $('#bt_new_cmt_orelha_close').css('left','-30px');
        }
        else
        {
            var window_width = $(window).width();
            var right        = 'calc(-37% - 15px)';
            
            if(window_width < 1400)
            {
                right = '-330px';
            }
            
            $('#box_new_cmt_open').css('right',right);
            $('#bt_new_cmt_orelha_close').css('display','none');
            $('#bt_new_cmt_orelha').css('display','block');
            $('#bt_new_cmt_orelha').css('left','-43px');
        }
    }
    
    function actPopup(act,tipo)
    {
        if(act == 'fechar')
        {
            _gaq.push(['_trackEvent', tipo, tipo, tipo]);
            
            ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=setCookie&nome='+tipo+'&valor=1','box_popup');
            $('#box_popup').css('display','none');
            $('#box_popup_big').css('display','none');
            $('#box_popup_mobile').css('display','none');
            blackoverlay();
        }
    }

    function actSmartMobile(act)
    {
        if(act)
        {
            $('#blackoverlay').addClass('blackoverlay_smart').trigger('classChange');

            if(!$('#smart_filtro_m-act').data('post-left'))
            {
                $('#smart_filtro_m-act').data('post-left',$('#smart_filtro_m-act').css('left'));
            }
            $('#smart_filtro_m-act').css('left','0');
            $('#smart_filtro_m_abre').css('display','none');
            $('#smart_filtro_m_fecha').css('display','block');
            $('#smart_filtro_ud_out').css('display','block');
        }
        else
        {
            $('#smart_filtro_m-act').css('left',$('#smart_filtro_m-act').data('post-left'));
            $('#blackoverlay').removeClass('blackoverlay_smart').trigger('classChange');
            $('#smart_filtro_m_abre').css('display','block');
            $('#smart_filtro_m_fecha').css('display','none');
            $('#smart_filtro_ud_out').css('display','none');
        }
        blackoverlay(act);
    }

    
    var scroll_aux2     = 0;
    var loadCheck       = 0;
    var window_width    = $(window).width();

    function fixedOnScroll(id)
    {   
        if ($('#' + id).length > 0)
        {
            if( window_width > 1300 )
            {

                var k_distance      = 10;
                var comp_height     = 0;
                var scroll_top      = $(window).scrollTop();
                var height_maior    = false;
                var bottom_pause    = height_document;

                var anchor_top_dist     = $('#' + id).offset().top;
                var item_movel_height   = $('#' + id + ' > *').height();

                if($( ".bottom_pause_post_barra" ).length)
                {
                    bottom_pause =  $( ".bottom_pause_post_barra" ).offset().top - ( k_distance + header_height + item_movel_height + parseInt($( ".bottom_pause_post_barra" ).css('margin-top')));
                }

                //console.log('3 '+item_movel_height+' '+bottom_pause+' '+scroll_top+' '+scroll_aux2+' '+scroll_aux+' conta: '+(bottom_pause - scroll_top));
                
                //console.log('4 '+(bottom_pause - scroll_top) +' --- '+ anchor_top_dist);
                
                if( ( bottom_pause - scroll_top) < 0  ) //chega ao fim
                {
                    $('#' + id + ' > *').css({
                        "z-index": "100",
                        "left": 'initial',
                        "position": "fixed",
                        "bottom": "initial",
                        "transition":" 0s",
                        "top": (  (bottom_pause + k_distance + header_height) - scroll_top   )+'px'
                    });
                    if(loadCheck == 0)
                    {
                        loadLazyMateria();
                        
                        loadCheck = 1;
                    }

                }
                else if ((scroll_top + k_distance + header_height ) > anchor_top_dist) //scroll down
                {
                    k_distance = k_distance + header_height;
                    
                    $('#' + id + ' > *').css({
                        "z-index": "100",
                        "left": $('#' + id + ' > *').offset().left + 'px',
                        "position": "fixed",
                        "top": (k_distance) + 'px',
                        "bottom": "initial",
                        "transition":" 0.8s all ease"

                    });
                }
                else if (( (scroll_top + k_distance) - comp_height ) > anchor_top_dist) //scroll up
                {
                    k_distance = k_distance + header_height;
                    
                    $('#' + id + ' > *').css({
                        "z-index": "100",
                        "left": $('#' + id + ' > *').offset().left + 'px',
                        "position": "fixed",
                        "top": (k_distance)+'px',
                        "bottom": "initial",
                        "transition":" 0.8s all ease"
                    });
                }
                else
                {
                    $('#' + id + ' > *').css({
                        "z-index": "initial",
                        "left": 'initial',
                        "position": "initial",
                        "bottom": 'initial',
                        "top": 'initial'
                    });
                }
            }
            scroll_aux2 = scroll_top;
        }
    }

    function actBtVerMais(e)
    {
        var id = $(e).data('target');
        $('#'+id).show();
        $(e).hide();
    }

    function atcFixedOnScroll()
    {
        fixedOnScroll('out_post_barra');
    }

    
    function actContatoEmpresa(act,tipo)
    {
        if(act && tipo != 0)
        {

            if(tipo == 1)
                $('#empresa_contato_titulo').html('Entre em contato');
            else
                $('#empresa_contato_titulo').html('Solicite um orçamento');

            $('#hidden_tipo').val(tipo);

            $('#blackoverlay').addClass('blackoverlay_cont_empresa').trigger('classChange');
            $('#empresa_contato').fadeIn(400);
            $('#empresa_contato').height($('#empresa_contato'+' > *').outerHeight());
        }
        else
        {
            $('#empresa_contato').fadeOut(400);
            $('#blackoverlay').removeClass('blackoverlay_cont_empresa').trigger('classChange');
            $('#empresa_contato_titulo').html('');
        }
        blackoverlay(act);
    }

    function actBuscaDesktop(act)
    {
        $('#busca_clique').toggle();
        $('#busca_input').focus();
        $('#blackoverlay').addClass('blackoverlay_busca_desktop').trigger('classChange');
        blackoverlay(act);
    }

    function actBuscaObjeto()
    {
        $('#box_marca_closed').hide();
        $('#box_marca_busca').show();
        $('.box_marca').css('background-color','#f3661a');
        $('#busca_marca_input').focus();
    }

    function actCorrigirTexto(act,e)
    {
        if($('#modal_corrigir_txt').length == 0)
        {
            $(e).data('corrigir_titulo');
            $("html").append('<div class="modal modal-s block corrigir" id="modal_corrigir_txt" ><span class="load-ico" ></span></div>');
            ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=corrigirTexto&monta=1&corrigir_titulo='+$(e).data('corrigir_titulo')+'¶_email='+$(e).data('para_email'),'modal_corrigir_txt');
        }


        if(act)
        {
            $('#blackoverlay').addClass('blackoverlay_corrigir').trigger('classChange');
            $('#modal_corrigir_txt').fadeIn(400);
        }
        else
        {
            $('#modal_corrigir_txt').fadeOut(400);
            $('#blackoverlay').removeClass('blackoverlay_corrigir').trigger('classChange');
        }
        blackoverlay(act);
    }

    function newsletterCad(ele,s)
    {
        var cad_idx = $(ele).data('idx');
        ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php',$('#'+cad_idx+'_form1').serialize()+'&'+$('#'+cad_idx+'_form2').serialize(),$(ele).data('id_ulout'));
    }

    function fixedMenuDiagramado()
    {
        var scrolltop = $(window).scrollTop();

        if(scrolltop >= 350)
            $('.conteudo .out_menu_diagramado').css('top','0');
        else
            $('.conteudo .out_menu_diagramado').css('top','850px');
    };
    
    function fechaBoxBigPopup(gaq,cookie,link)
    {
        blackoverlay();
        setCookie(cookie,'1');
        _gaq.push(["_trackEvent", "popup_seguir", gaq, gaq]);
        document.location = link;
    }
    
    $(document).ready(function()
    {
            
        $(function ()
        {
            $(window).scroll(atcFixedOnScroll);
        });

        $('.disabled').click(function(e)
        {
           e.preventDefault();
        })

        $('.box_hover').mouseenter(function()
        {
            boxHoverSite(2,0,this);
        });

        $(window).scroll(fixedMenu);
        $(window).scroll(fixedMenuDiagramado);
        fixedMenu();
        fixedMenuDiagramado();
        $(".amenu_diagramado").click(function(){scrollPageToID($(this).attr('href').substring(1));});
        $(".bt_ver_mais").click(function(){ actBtVerMais(this); });
        $(".ver_mais_preco_obj").click(function(){ scrollPageToID('precos'); });
        $('#bt_header_busca').click(function(){ $('#busca_input').focus();});
        $('#smart_filtro_ud_dwn').click(function(){$(".smart_filtro").animate({scrollTop: '+=200px'}, 300);});
        $('#smart_filtro_ud_up').click(function(){$(".smart_filtro").animate({scrollTop: '-=200px'}, 300);});
        $('#mobile_busca').click(function(){ $('#mobile_bf').css('display','block');});
        $('#aovivo').click(function(){ actAovivo(); });
        $('#smart_filtro_m_abre').click(function(){ actSmartMobile(true); });
        $('#bt_new_cmt').click(function(){ actAbreComments(true); });
        $('#bt_new_cmt_orelha').click(function(){ actAbreComments(true); });
        $('#bt_new_cmt_orelha_close').click(function(){ actAbreComments(false); });
        $('.commentcall').click(function(){scrollPageToID('boxcomment');});
        $('#busca_clique_open').click(function(){ actBuscaDesktop(true); });
        $('#box_marca_closed').click(function(){ actBuscaObjeto(); });
        $('#smart_filtro_m_fecha').click(function(){ actSmartMobile(false); });
        $('#menumobile').click(function(){ actMenuMobile(true); });
        $('.fechar_sticky').click(function(){ actPopup('fechar','OFICINA_STICKY'); });
        $('#fechar_menumobile').click(function(){ actMenuMobile(false); });
        $('.fechar_newsletter_big').click(function(){ actPopup('fechar','NEWSBIG'); });
        $('.fechar_youtube_big').click(function(){ actPopup('fechar','YOUTUBEBIG'); });
        $('.fechar_youtube_mobile').click(function(){ actPopup('fechar','YOUTUBEMOBILE'); });
        $('.fechar_instagram_mobile').click(function(){ actPopup('fechar','INSTAGRAMMOBILE'); });
        $('.fechar_todasredes_mobile').click(function(){ actPopup('fechar','TODASREDESMOBILE'); });
        $('.fechar_rss_big').click(function(){ actPopup('fechar','RSSBIG'); });
        $('.fechar_twitter_big').click(function(){ actPopup('fechar','TWITTERBIG'); });
        $('.fechar_instagram_big').click(function(){ actPopup('fechar','INSTAGRAMBIG'); });
        $('.fechar_todasredes_big').click(function(){ actPopup('fechar','TODASREDESBIG'); });
        $('.todasredes').click(function(){ actPopup('abrir','TODASREDESBIG'); });
        $('#fechar_newsletter').click(function(){ actPopup('fechar','ONNEWS'); });
        $('#fechar_youtube').click(function(){ actPopup('fechar','YOUTUBEBIG'); });
        $('#popup_youtube').click(function(){ actPopup('fechar','ONYOUTUBE'); });
        $("#form_envia").click(function(){ submitFormulario(); });
        $("#mostra_fone").click(function(){ $('#empresa_fone').html(BV($('#empresa_fone').data('info'))); $('#mostra_fone').hide(); });
        $(".empresa_contato").click(function(){ actContatoEmpresa(true,$(this).data('tipo'));});
        $('#empresa_contato_fechar').click(function(){ actContatoEmpresa(false,0) });
        $('.act_corrigir_texto').click(function(){ actCorrigirTexto(true,this) });
        $('#btcarregarcomments_disqus').click(function(){ carregaComentariosDisqus() });
        $('#btcarregarcomments_facebook').click(function(){ carregaComentariosFacebook() });
        $(".form_newsletter_cad").submit(function(event){  event.preventDefault(); newsletterCad(this,"1"); });
        $(".form_newsletter_cad2").submit(function(event){ event.preventDefault(); newsletterCad(this,"2"); });
        $(".form_newsletter_cad").submit(function(event){  event.preventDefault(); newsletterCad(this,'1'); });
        $(".form_newsletter_cad2").submit(function(event){ event.preventDefault(); newsletterCad(this,'2'); });

        $('#blackoverlay').on('classChange',function()
        {
            $('.blackoverlay_mobile').click(function(){ actMenuMobile(false) });
            $('.blackoverlay_smart').click(function(){ actSmartMobile(false) });
            $('.blackoverlay_cont_empresa').click(function(){ actContatoEmpresa(false,0) });
            $('.blackoverlay_corrigir').click(function(){ actCorrigirTexto(false,'') });
            $('.blackoverlay_busca_desktop').click(function(){ actBuscaDesktop(false)});
        });


        $('.accordion_act1 .i-tit').click(function(e)
        {
            if($(this).prop("tagName") != 'A')
            {
                $(this).addClass('click');
                $('.li-wrapper:not(\'.click\')').animate({height:0}, { duration: 400, queue: false });
                $('.i-tit:not(\'.click\')').removeClass('ativo');

                if(!$(this).hasClass('ativo'))
                {
                    $(this).addClass('ativo');
                    $(this).find('+ .li-wrapper').animate({height:$(this).find('+ .li-wrapper > .accordion_act1').outerHeight()}, { duration: 400, queue: false });
                }
                else
                {
                    $(this).removeClass('ativo');
                    $(this).find('+ .li-wrapper').animate({height:0},400);
                }
                $(this).removeClass('click');
            }
        });

        $('.accordion_act2 .tit_1').click(function(e)
        {
            $(this).addClass('click');
            $('.li-wp1:not(\'.click\')').animate({height:0}, { duration: 400, queue: false });

            if(!$(this).hasClass('ativo'))
            {
                var wrapper1_id         = 'wrapper_'+$(this).data('wrap0');
                var wrapper1_height     = $('#'+wrapper1_id+' > .accordion_act2 > li').length* $('#'+wrapper1_id+' > .accordion_act2 > li').outerHeight();

                $('#'+wrapper1_id).animate({height:wrapper1_height}, { duration: 400, queue: false });
                $('.tit_1').removeClass('ativo');
                $(this).addClass('ativo');
            }
            else
            {
                $('.tit_1').removeClass('ativo');
            }
            $(this).removeClass('click');
        });

        $('.accordion_act2 .tit_2').click(function(e)
        {
            $(this).addClass('click');
            $('.li-wp2:not(\'.click\')').animate({height:0}, { duration: 400, queue: false });

            var wrapper1_id = 'wrapper_'+$(this).data('wrap0');
            var wrapper2_id = 'wrapper_'+$(this).data('wrap0')+'_'+$(this).data('wrap1');

            if(!$(this).hasClass('ativo'))
            {
                var wrapper1_height     = $('#'+wrapper1_id+' > .accordion_act2 > li').length* $('#'+wrapper1_id+' > .accordion_act2 > li').outerHeight();
                var wrapper2_height     = $('#'+wrapper2_id+' > .accordion_act2 > li').length* $('#'+wrapper2_id+' > .accordion_act2 > li').outerHeight();


                $('#'+wrapper1_id).animate({height:wrapper1_height+wrapper2_height}, { duration: 400, queue: false });
                $('#'+wrapper2_id).animate({height:wrapper2_height}, { duration: 400, queue: false });

                $('.tit_2').removeClass('ativo');
                $(this).addClass('ativo');
            }
            else
            {
                var wrapper1_height = $('#'+wrapper1_id+' > .accordion_act2 > li').length*$('#'+wrapper1_id+' > .accordion_act2 > li > .tit_2').outerHeight();

                $('#'+wrapper1_id).animate({height:wrapper1_height}, { duration: 400, queue: false });
                $('.tit_2').removeClass('ativo');
            }
            $(this).removeClass('click');
        });
        
                    $('#act_user').css('display','none');
            $('#act_cad').css('display','block');
                });

    var lst_carregamento        = 1;
    var txtstatus               = 'ok';
    var html_ico_load_auto_load = '<span id="icoload_autoload" class="wifl p-rel" ><span class="load-ico" ></span></span>';
    function carregaConteudo()
    {
        if($('#auto_load_wrapper').length > 0)
        {
            var scrollPosition      = window.pageYOffset;
            var windowSize          = window.innerHeight;
            var footerHeightTop     = $('#footer').offset().top;

            var stop_load           = document.getElementById('auto_load_wrapper').getAttribute('data-stop-load');

            if((scrollPosition + windowSize + 800) > footerHeightTop && stop_load == '0')
            {
                if(txtstatus == 'ok')
                {
                    $("#auto_load_wrapper").append(html_ico_load_auto_load);
                    txtstatus = 'timeout';
                    $.ajax({
                        type: 'POST',
                        url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
                        data: 'act=autoLoadConteudo&lst_carregamento='+lst_carregamento+'&'+serializeDataAttr($('#auto_load_wrapper')),
                        success: function(html)
                        {
                            $("#auto_load_wrapper").append(html);
                            $("#icoload_autoload").remove();
                            txtstatus = 'ok';
                        }
                    });
                    lst_carregamento++;
                }
            }
        }
    }
    
    
    $(".expand-gperf").click(function() {
        $(this).next().toggle();
    });

    $(function () {
        $(window).scroll(carregaConteudo);
        carregaConteudo();
    });

    $(window).scroll(function() {
        if ($(this).scrollTop() >= 150) {
            $('#top_page').fadeIn(200);
        } else {
            $('#top_page').fadeOut(200);
        }
    });
    $('#top_page').click(function() {
        var bcp = $('#boxcomment').position();
        $('body,html').animate({
            scrollTop : bcp.top
        }, 500);
    });
    

    if ($(".carousel_destaque")[0])
    {
        $('#out_lib').append('<link href="https://painel.m3midia.com.br/lib/slick/slick.css" rel="stylesheet">');
        $.getScript("https://painel.m3midia.com.br/lib/slick/slick.js", function(){
            $('.carousel_destaque').slick({
                slidesToShow: 1,
                slidesToScroll: 1,
                autoplay: true,
                pauseOnHover: true,
                autoplaySpeed: 10000
            });
            setTimeout(function(){
                $('.carousel_destaque').removeClass('carregando');;
            }, 1500);
        });
    }

    if ($(".conteudo_galeria")[0])
    {
        $('#out_lib').append('<link href="https://painel.m3midia.com.br/lib/lightGallerySlider/lightGallerySlider.css" rel="stylesheet">');
        $.getScript("https://painel.m3midia.com.br/lib/lightGallerySlider/lightGallerySlider.js", function(){
            $('.conteudo_galeria').lightSlider({
           item: 3,
           loop:false,
           slideMove:3,
           easing: 'cubic-bezier(0.25, 0, 0.25, 1)',
           speed:600,
           responsive : [
               {
                   breakpoint:800,
                   settings: {
                       item:3,
                       slideMove:1,
                       slideMargin:6,
                     }
               },
               {
                   breakpoint:480,
                   settings: {
                       item:2,
                       slideMove:1
                     }
               }
           ]
            }).lightGallery({

            });
            $('.out_conteudo_galeria').css('display','block');
        });
    }
  
</script>

    <div id="box_news" style=" width:300px; height:200px; display: none; position: fixed; z-index: 9999; top:18%; right:calc(50% - 100px);">
        <div style="width:300px; height:150px; background-color: white; float:left; color:white; text-align: center; font-size:15px; z-index:99999">
            <div class="redes_out">
                <div style="width:90%; padding:5%; margin-top:-17px; background: #cd201f; color: white; float:left; margin-bottom: 20px;">
                    <strong style="font-size:25px;">OFICINA DA NET NO</strong> <strong style="font-size:35px;">YOUTUBE!</strong><br /><br />
                    Hey, entra aí no nosso canal e veja o que produzimos de vídeos, você vai gostar. 
                    <br /><br />
                    » <span style=' text-decoration:underline; color:white; cursor: pointer' onclick='_gaq.push(["_trackEvent", "popseguir", "youtube", "youtube"]);window.open("http://bit.ly/ontvsing");'>ENTRAR NO CANAL</span> «
                    <br /><br />
                    <span style='font-size:20px; text-decoration:underline; color:white; cursor: pointer' onclick='_gaq.push(["_trackEvent", "popseguir", "youtube", "youtube"]);window.open("https://www.youtube.com/user/OficinaDaNetTV");'><strong style="margin-bottom: 10px">INSCREVA-SE</strong></span>
                    <br />
                    <div style="margin:auto; width:128px;">
                        <script src="https://apis.google.com/js/platform.js"></script>
                        <div class="g-ytsubscribe" data-channel="oficinadanettv" data-layout="default" data-count="default"></div>
                    </div>
                    <br />e <span style=' text-decoration:underline; color:white; cursor: pointer' onclick='_gaq.push(["_trackEvent", "popseguir", "youtube", "youtube"]);window.open("http://bit.ly/ontvsing");'>ative o sininho</span> 😉<br>

                    <br /><br /><br />
                    <div style="cursor:pointer; font-size:13px; text-align: right " onclick="fechaBoxOficina()">Não, obrigado</div>
                </div>
            </div>
        </div>
    </div>
    <script>
        function abreBoxOficina()
        {
            $('#box_news').css('display','block');
            //blackoverlay(1);
        }
        function fechaBoxOficina()
        {
            $('#box_news').css('display','none');
            actPopup('fechar','YOUTUBEBIG');
            //blackoverlay(0);
        }
        setTimeout('abreBoxOficina();','30000');
    </script>  
            
<script>
    function actSininho()
    {
        _gaq.push(['_trackEvent', 'sininho', 'sininho', 'sininho']);
        ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=setCookie&nome=ONSININHO&valor=1&tempo=36000','box_sininho');
        setTimeout("document.location = 'https://www.oficinadanet.com.br/novidades'",1000);
    }

    $(document).ready(function()
    {
        $('#sininho').click(function(){ actSininho(); });
    });

</script>

<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase-messaging.js"></script>
<script>
    const applicationServerKey = "BJX8Rw2npfApIhpWy-3hPGZvdvdHECD4FLbylmtWsMgyUDgsOeP8R5K5E0SxCWxQ21rYmG7basOHXlDande8OgY";
    // Initialize Firebase
    var config = {
        apiKey: "AIzaSyChPCYMhtkCC0AfCVeZe6847ZJOuj1XuYQ",
        authDomain: "oficina-da-net.firebaseapp.com",
        databaseURL: "https://oficina-da-net.firebaseio.com",
        projectId: "oficina-da-net",
        storageBucket: "oficina-da-net.appspot.com",
        messagingSenderId: "647906981733"
    };
    
    firebase.initializeApp(config);
    const messaging = firebase.messaging();
    messaging.usePublicVapidKey(applicationServerKey);  

    function getTokenFBClient()
    {
        return messaging.getToken();
    }
  

    function getTokenRefreshFBClient()
    {
        return messaging.onTokenRefresh(function() {
            return messaging.getToken();
        });
    }

    document.addEventListener("DOMContentLoaded", () => {        
        let isPushEnabled = false;
        
        if (!('serviceWorker' in navigator)) {
            console.warn("Service workers are not supported by this browser.");
            return;
        }

        if (!('PushManager' in window)) {
            console.warn('Push notifications are not supported by this browser.');
            return;
        }

        if (!('showNotification' in ServiceWorkerRegistration.prototype)) {
            console.warn('Notifications are not supported by this browser.');
            return;
        }

        if (Notification.permission === 'denied') {
            console.warn('Notifications are denied by the user');
            return;
        }
        
        navigator.serviceWorker.register("/firebase-messaging-sw.js")
            .then( reg => {
                reg.update();                
                console.log('[SW] Service worker has been registered');
                sw_registered();
            }, e => {
                console.error('[SW] Service worker registration failed', e);
        });
        
        function sw_registered()
        {
            navigator.serviceWorker.ready.then(serviceWorkerRegistration => serviceWorkerRegistration.pushManager.getSubscription())
            .then(subscription => {
                if (!subscription) 
                {
                    console.log('not subscription',subscription);
                    return push_subscribe();
                }
                else
                {                    
                    console.log('update token');
                    getTokenRefreshFBClient();
                    return push_sendSubscriptionToServer(subscription, 'push_updateSubscription');                    
                }
            })
            .then(subscription => subscription ) 
            .catch(e => {
                /*console.error('Error subscription', e);*/
            });
        }
    

        function push_subscribe() {
            navigator.serviceWorker.ready
            .then(serviceWorkerRegistration => serviceWorkerRegistration.pushManager.subscribe({
                userVisibleOnly: true,
                applicationServerKey: urlBase64ToUint8Array(applicationServerKey),
            }))
            .then(subscription => {                
                return push_sendSubscriptionToServer(subscription, 'push_subscribe');
            })
            .then(subscription => subscription )
            .catch(e => { });
        }

        function urlBase64ToUint8Array(base64String) {
            const padding = '='.repeat((4 - base64String.length % 4) % 4);
            const base64 = (base64String + padding)
                .replace(/\-/g, '+')
                .replace(/_/g, '/');

            const rawData = window.atob(base64);
            const outputArray = new Uint8Array(rawData.length);

            for (let i = 0; i < rawData.length; ++i) {
                outputArray[i] = rawData.charCodeAt(i);
            }
            return outputArray;
        }
    
        function push_sendSubscriptionToServer(subscription, acao) {
            var ret = getTokenFBClient();
            ret.then(function(refreshedToken) {

                const method = 'POST';
                const key = subscription.getKey('p256dh');
                const token = subscription.getKey('auth');
                const contentEncoding = (PushManager.supportedContentEncodings || ['aesgcm'])[0];

                var strSubscription = JSON.stringify(subscription.toJSON());
                
                                    ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php','act=webpush&acao='+acao+'&subscription='+strSubscription+'&iidToken='+refreshedToken,'');                  
                                    }).catch(function(err) {
                console.log('Unable to retrieve refreshed token ', err);        
            });            
        }
    });
</script><script type="text/javascript" >

    var current_user = null;
    var cache_name = '01620de85336e2188fee058b3c36cac4';
    var comment_to_send = '';
    var post_id = null;
    var reply_comment_id = 0;

    function getCookie(name)
    {
        var cookies = document.cookie;
        var prefix = name + "=";
        var begin = cookies.indexOf("; " + prefix);

        if (begin == -1) {

            begin = cookies.indexOf(prefix);

            if (begin != 0) {
                return null;
            }

        } else {
            begin += 2;
        }

        var end = cookies.indexOf(";", begin);

        if (end == -1) {
            end = cookies.length;
        }

        return unescape(cookies.substring(begin + prefix.length, end));
    }

    function PopupCenter(url, title, w, h)
    {
        var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screenX;
        var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screenY;
        var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
        var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;

        var systemZoom = width / window.screen.availWidth;
        var left = (width - w) / 2 / systemZoom + dualScreenLeft;
        var top = (height - h) / 2 / systemZoom + dualScreenTop;

        var newWindow = window.open(url, title, 'scrollbars=no, width=' + w / systemZoom + ', height=' + h / systemZoom + ', top=' + top + ', left=' + left);

        if (window.focus)
            newWindow.focus();
    }
    
    window.successfullySocialLogin = function(type){
        var post_data = getPostData();
        $('#login_loading').addClass('show');
        $.ajax({
            type: 'POST',
            url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
            data: post_data+'act=successfullySocialLogin',
            success: function (response) {
                
                if( response.error )
                {
                    alert('Ocorreu um erro durante o login.');
                }
                else
                {
                    setDataUser(response);
                    cleanForm();
                    hideCommentLogin();
                    $("#comment_list").html(response.html);
                    buildUserOptions();
                }
                $('#login_loading').removeClass('show');
            }
        });
    }

    function SubmitCommentForm(form)
    {
        if($(form).find('textarea').val().length)
        {
            $('.comment_input textarea').removeClass('invalid');
            comment_to_send = $(form).find('textarea').val();
            reply_comment_id = $(form).find('input[name="reply_comment_id"]').val();

            if(current_user === null)
            {
                ShowCommentLogin();
            }
            else
            {
                setComment();
            }
        }
        else
        {
            $(form).find('textarea').addClass('invalid').focus();
            setTimeout(function(){alert('Insira um comentário');},0);
        }
    }

    function ShowCommentLogin()
    {
        blackoverlay(true);
        $('#login_wrapper').addClass('show');
        $('#login_loading').removeClass('show');
    }

    function hideCommentLogin()
    {
        comment_to_send = '';
        blackoverlay(false);
        $('#login_wrapper').removeClass('show');
    }

    function SubmitLoginForm(form)
    {
        $('#login_loading').addClass('show');

        if(comment_to_send.length == 0 || post_id == 0)
            return;

        var post_data = getPostData();
        
        if($(form).find('input[name="act"]').val() == 'commentLogin')
        {

            var login = isValidInput($(form).find('input[name="login"]'));
            var password = isValidInput($(form).find('input[name="password"]'));

            if(login && password)
            {
                $.ajax({
                    type: 'POST',
                    url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
                    data: post_data+'act=commentLogin&login='+login+'&password='+password,
                    success: function (response) {

                        if( response.error )
                        {
                            if(response.error_code == 'mail_user_name')
                                isValidInput($(form).find('input[name="login"]'),response);
                            else if(response.error_code == 'password')
                                isValidInput($(form).find('input[name="password"]'),response);
                            else
                                alert(response.error_message);
                        }
                        else
                        {
                            setDataUser(response);
                            cleanForm();
                            hideCommentLogin();
                            $("#comment_list").html(response.html);
                            buildUserOptions();
                        }
                        $('#login_loading').removeClass('show');
                    }
                });
            }
            else
            {
                $('#login_loading').removeClass('show');
            }
        }
        else if($(form).find('input[name="act"]').val() == 'commentRegister')
        {
            var email = isValidInput($(form).find('input[name="email"]'));
            var name = isValidInput($(form).find('input[name="name"]'));
            var password = isValidInput($(form).find('input[name="password"]'));

            if(email && name && password)
            {
                $.ajax({
                    type: 'POST',
                    url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
                    data: post_data+'act=commentRegister&email='+email+'&name='+name+'&password='+password,
                    success: function (response) {

                        if( response.error )
                        {
                            if(response.error_code == 'invalid_name')
                                isValidInput($(form).find('input[name="name"]'),response);
                            else if(response.error_code == 'invalid_email')
                                isValidInput($(form).find('input[name="email"]'),response);
                            else if(response.error_code == 'email_exists')
                            {
                                $('#commentLogin').find('input[name="login"]').val(email);
                                $('#commentLogin').find('input[name="password"]').focus();
                                alert(response.error_message);
                            }
                            else
                                alert(response.error_message);
                        }
                        else
                        {
                            setDataUser(response);
                            cleanForm();
                            hideCommentLogin();
                            $("#comment_list").html(response.html);
                            buildUserOptions();
                        }
                        $('#login_loading').removeClass('show');
                    }
                });
            }
            else
            {
                $('#login_loading').removeClass('show');
            }
        }
    }

    function getPostData()
    {
        return 'comment='+comment_to_send+'&post_id='+post_id+'&reply_comment_id='+reply_comment_id+'&cache_name='+cache_name+'&';
    }

    function setComment()
    {
        cleanForm();
        var post_data = getPostData();
        $.ajax({
            type: 'POST',
            url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
            data: 'act=setComment&'+post_data,
            success: function (html) {
                $('#comment_list').html(html);
                buildUserOptions();
                processVotedComments();
            }
        });
    }

    function cleanForm()
    {
        $('.comment_input textarea').removeClass('invalid').val('');
    }

    function isValidInput(input,response)
    {
        if(response != undefined)
        {
            $(input).next().html(response.error_message);
            $(input).addClass('invalid');
            return false;
        }
        else
        {
            var inputValue = $(input).val();
            if(inputValue.length == 0)
            {
                $(input).next().html('Preenchimento obrigatório.');
                $(input).addClass('invalid');
                return false;
            }
            else
            {
                $(input).next().html('');
                $(input).removeClass('invalid');
                return $(input).val();
            }
        }
    }

    function replyComment(button)
    {
        var id = $(button).data('reply-box');

        if($('#reply-box-'+id).html() == "")
        {
            cleanForm();
            var reply_comment = $(button).data('reply-id');
            $('#reply-box-'+id).html($('#out_comment_form').html());
            $('#reply-box-'+id+' .comment_input textarea').focus();
            $('#reply-box-'+id+' input[name="reply_comment_id"]').val($(button).data('reply-id'));
        }
        else
        {
            $('#reply-box-'+id).html('');
        }
    }

    function commentVote(button,vote)
    {
        var comment_id = $(button).data('comment');
        $.ajax({
            type: 'POST',
            url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
            data: 'act=commentVote&post_id='+post_id+'&comment_id='+comment_id+'&vote='+vote,
            success: function (html) {
                processVotedComments();
            }
        });
    }

    function setDataUser(response)
    {
        current_user = response.user;
        if( current_user.image != undefined )
            $(".current_user_image").attr("src", current_user.image);
    }

    function processVotedComments()
    {
        if($("#comment_list").length != 0 && current_user != null)
        {
            var cookie_name = 'comment_vote_'+post_id;
            if(getCookie(cookie_name))
            {
                var comment_votes = JSON.parse(getCookie(cookie_name));
                Object.keys(comment_votes).forEach(function(k){
                    if($('#text-'+comment_votes[k]+'-'+k).hasClass('voted') == false)
                    {
                        $('#vote-up-'+k).attr("disabled", true);
                        $('#vote-down-'+k).attr("disabled", true);
                        $('#text-'+comment_votes[k]+'-'+k).html(parseInt($('#text-'+comment_votes[k]+'-'+k).html())+1);
                        $('#text-'+comment_votes[k]+'-'+k).addClass("voted");
                    }
                });
            }
        }
    }

    function buildUserOptions()
    {
        setTimeout(function (){
            if($("#comment_list").length != 0 && current_user != null)
            {
                $('#comment_list li').each(function(i)
                {
                    if($(this).data('user-id') == current_user.id)
                    {
                        var user_options = '<button type="button" class="show-user-options border" >•••</button>'
                           +'<div class="user-options" >'
                                +'<button class="delete-comment" type="button" data-comment-id="'+$(this).data('comment-id')+'" >Excluir</button>'
                            +'</div>';
                        $(this).prepend(user_options);
                    }
                });
            }
        },500);
    }

    function deleteComment(button)
    {
        var post_data = 'act=deleteComment&post_id='+post_id+'&comment_id='+$(button).data('comment-id')+'&cache_name='+cache_name;
        ajaxDireto('https://www.oficinadanet.com.br/ajax_oficina.php',post_data,"comment_list");
        buildUserOptions();
    }

    function loadComment(button)
    {
        $(button).attr("disabled", true);
        $(button).data("title",$(button).html());
        $(button).html($(button).data("title-loading"));

        var load = $(button).data('load');
        var totalcomments = $(button).data('total-comments');

        var post_data = 'act=loadComment&post_id='+post_id+'&load='+load;

        var loadn = parseInt(load);
        loadn++;
        $(button).data('load',loadn);

        $.ajax({
            type: 'POST',
            url: 'https://www.oficinadanet.com.br/ajax_oficina.php',
            data: post_data,
            success: function (response) {

                if($('#comment_list li').length >= totalcomments)
                {
                    $(button).css('display','none');
                    $(button).attr("disabled", true);
                }
                else
                {
                    $('#comment_list').append(response.html);
                    $(button).attr("disabled", false);
                    $(button).html($(button).data("title"));
                    buildUserOptions();
                }
            }
        });
    }
    
    function initComment()
    {
        
        post_id = $('#comment_list').data('post-id');

        $('.comment_input textarea').bind('input propertychange', function() {
            $(this).height('0px').height($(this).prop('scrollHeight')-22);
        });

        $(document).on('click', 'button.show-user-options',function(e) {
            if($(this).next().hasClass('show'))
                $(this).next().removeClass('show');
            else
                $(this).next().addClass('show');
        });

        $(document).on('click', '.delete-comment',function(e) {
            deleteComment(this);
        });

        $(".comment_modal_form").on('submit',function(e) {
            SubmitLoginForm(this);
            e.preventDefault();
        });

        $(document).on('click', '.btn_submit',function(e) {
            var form = $(this).parents('form:first');
            SubmitCommentForm(form);
        });

        $(document).on('click', 'button.reply',function(e) {
            replyComment(this);
        });

        $(document).on('click', '.vote-up',function(e) {
            commentVote(this,'up');
        });

        $(document).on('click', '.vote-down',function(e) {
            commentVote(this,'down');
        });

        $(".close_commentLogin").on('click',function(e) {
            hideCommentLogin();
        });

        $(".blackoverlay").on('click',function(e) {
            hideCommentLogin();
        });

        $("#btn_load_comment").on('click',function(e) {
            loadComment(this);
        });

        $(document).ready(function (){
            processVotedComments();
            buildUserOptions();

            if($('#comment_list li').length >= $('#btn_load_comment').data('total-comments'))
            {
                $('#btn_load_comment').css('display','none');
                $('#btn_load_comment').attr("disabled", true);
            }
        });
    }
    
    window.addEventListener("load", function(event) {
        initComment();
    });

</script><link rel="stylesheet" href="https://www.oficinadanet.com.br/_template/css/geral.css?v=803"><!-- advertising 4TpJ9Me3Sia7qHJi9IM3odw5jJ_2hupbH48Ifjbng_aL0ZNxVUTj4-ltldS-hvBNbqaBGbAM-deLE4JswQFNbQ==-->
    <script data-cfasync="false"  id="clevernt">
    (function (document, window) {
        var c = document.createElement("script");
        c.type = "text/javascript";
        c.async = !0;
        c.src = "//clevernt.com/scripts/49eda678410baaf060c3a7dad9cff960.min.js?20180622=" + Math.floor((new Date).getTime());
        var a = !1;
        try {
            a = parent.document.getElementsByTagName("script")[0] || document.getElementsByTagName("script")[0];
        } catch (e) {
            a = !1;
        }
        a || ( a = document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]);
        a.parentNode.insertBefore(c, a);
    })(document, window);
    </script>
    <!-- end advertising -->
    
        <div class="player_dynad_tv"></div>
    </body>
</html>