﻿/*************************************************************************************
 *                                                                                   *
 *                      Classe que controla a página receita.aspx                    *
 *                                                                                   *
 ************************************************************************************/
 
 function cReceita()
    {
        //Incia a Tela.
        window.onload = function()
            {
                //Verifica se o Usuário está Logado.
                cHeader.checkLoginUsuario();
                            
                //Chama o Método de Recuperação da Lista de Receitas.
                cHeader.getAllReceita();
                
                //Chama a Função que Constroi o Compartilhamento.
                cReceita.buildCompartilhe();
                
                //Atribui Valor a Propriedade Href dos Links.
                document.getElementById("lnkExibeReceita").setAttribute("href","javascript:cReceita.exibeModalEnviaReceita();");    
                document.getElementById("lnkFechaModalEnviaReceita").setAttribute("href","javascript:cReceita.hideModal();");    
                document.getElementById("lnkEnviaReceita").setAttribute("href","javascript:cReceita.enviaReceita();");
                document.getElementById("lnkFechaModalEnviaReceitaSucesso").setAttribute("href","javascript:cReceita.hideModal();");
                document.getElementById("lnkPrintReceita").setAttribute("href","javascript:cReceita.printReceita();"); 
                document.getElementById("lnkAddReceita").setAttribute("href","javascript:cReceita.addReceita();");                 
            }        
        
        //Método que Exibe o Modal de Envio de Receita.
        this.exibeModalEnviaReceita = function()
            {
                //Verifica se o Usuário está Logado.
                try
                {     
                    //Chama a Função que Valida o Login do Usuário.                        
                    var strUserName = Ajinomoto.Site.Interface.controls.header.checkLoginUsuario().value;
                    
                    //Verifica o Retorno.
                    if(strUserName == "")
                        {
                            document.getElementById("lblRateError").innerHTML = "<b>Efetue login ou cadastre-se para enviar essa receita!</b>";
                            return;
                        }                                                                       
                }
                catch(err)
                {
                    window.location = "erro.aspx?msg=" + err.description;
                }                
                
                //Limpa os Campos.
                document.getElementById("txtNomeRemetente").value = "";
                document.getElementById("txtNomeDestinatario").value = "";
                document.getElementById("txtMailDestinatario").value = "";
                document.getElementById("txtMensagem").value = ""; 
            
                //Valoriza as Variáveis.
                strID = "container_modal_indique";
                strWidth = "560";
                strHeigth = "593";
                
                //Valoriza o Título do Modal.
                document.getElementById("tdNomeReceita").innerHTML = document.getElementById("receitas_topo_titulo").innerHTML;
                
                //Chama o Método de Exibição do Modal.
                cReceita.showModal(strID, strWidth, strHeigth);
            }
        
        //Método que Envia a Receita por Mail.
        this.enviaReceita = function()
            {
                //Recupera os Valores dos Campos.
                var strNomeRemetente = document.getElementById("txtNomeRemetente").value;
                var strNomeDestinatario = document.getElementById("txtNomeDestinatario").value;
                var strMailDestinatario = document.getElementById("txtMailDestinatario").value;
                var strMensagem = document.getElementById("txtMensagem").value;
             
                //Verifica se os Campos estão Preenchidos.
                if (strNomeRemetente == "" || strNomeDestinatario == "" || strMailDestinatario == "")
                    {
                        document.getElementById("lblErro").innerHTML = "Os campos marcados (*) devem ser preenchidos!";
                        return;
                    }
                    
                //Verifica se o Mail de Destinatário é Válido.
                if (!cReceita.checkMail(strMailDestinatario))
                    {
                        document.getElementById("lblErro").innerHTML = "e-Mail de destinatário inválido!";
                        return;                        
                    }

                try
                {     
                    //Chama o Método que Codifica a Url.                    
                    var blnRetorno = Ajinomoto.Site.Interface.receita.enviaReceita(strNomeRemetente, strNomeDestinatario, strMailDestinatario, 
                                                                                   strMensagem, cReceita.QueryString("receita")).value; 
                    
                    if (blnRetorno)
                        {
                            //Esconde o Modal de Envio de Receita.
                            cReceita.hideModal();                                                       
                            
                            //Valoriza as Variáveis.          
                            strID = "container_modal_indique_sucesso";
                            strWidth = "475";
                            strHeigth = "315";                            
                            
                            //Chama o Método de Exibição do Modal.
                            cReceita.showModal(strID, strWidth, strHeigth);                            
                        }                                                                         
                }
                catch(err)
                {
                    window.location = "erro.aspx?msg=" + err.description;
                }            
            }         
        
        //Método que Registra o Rate da Receita.
        this.insertRate = function(intValor)
            {
                try
                {     
                    //Chama o Método que Registra o Rate da Receita.                    
                    var intRetorno = Ajinomoto.Site.Interface.receita.insertRate(cReceita.QueryString("receita"),intValor).value; 
                    
                    //Verifica o Retorno.
                    switch (intRetorno)
                        {
                            case 0:
                                document.getElementById("lblRateError").innerHTML = "<b>Efetue login ou cadastre-se para votar!</b>";
                                break;
                            case -1:
                                document.getElementById("lblRateError").innerHTML = "<b>Você já avaliou essa receita!</b>";
                                break;
                            default:
                                document.getElementById("lblRateError").innerHTML = "<b>Receita avaliada com sucesso!</b>";
                        }                                                                     
                }
                catch(err)
                {
                    window.location = "erro.aspx?msg=" + err.description;
                }                
            }
        
        //Método que Adiciona a Receita ao Livro de Receita.
        this.addReceita = function()
            {
                try
                {     
                    //Chama o Método que Adiciona a Receita ao Livro de Receita..                    
                    var intRetorno = Ajinomoto.Site.Interface.receita.insertLivroReceita(cReceita.QueryString("receita")).value; 
                    
                    //Verifica o Retorno.
                    switch (intRetorno)
                        {
                            case 0:
                                document.getElementById("lblRateError").innerHTML = "<b>Efetue login ou cadastre-se para adicionar essa receita ao seu livro!</b>";
                                break;
                            case -1:
                                document.getElementById("lblRateError").innerHTML = "<b>Receita já adicionada em seu livro de receitas!</b>";
                                break;
                            default:
                                document.getElementById("lblRateError").innerHTML = "<b>Receita adicionada ao seu livro com sucesso!</b>";
                        }                                                                     
                }
                catch(err)
                {
                    window.location = "erro.aspx?msg=" + err.description;
                }
            }
        
        //Método que Muda as Estrelas do Rate no Evento de MouseOver e MouseOut.
        this.changeEstrela = function(strType, intTotal)
            {            
                if (strType == "C")
                    {
                        for(var i=1;i<=intTotal;i++)
                            {
                                document.getElementById("imgRate"+i).src = "images/receitas_estrela_cheia.jpg";   
                            }                        
                    }
                else
                    {
                        for(var i=1;i<=intTotal;i++)
                            {
                                document.getElementById("imgRate"+i).src = "images/receitas_estrela_vazia.jpg";   
                            }                    
                    }                                         
            }        
        
        //Método que Visualiza a Impressão da Receita.
        this.printReceita = function()
            {
                //Redimensiona o Pop-Up.
                var intLeft = (window.screen.width - 780) / 2;
                var intTop = (window.screen.height - 1040) / 2;
                
                //Chama a Página de Impressão
                var objWindow = window.open("imprimir-receita.aspx?receita=" + cReceita.QueryString("receita"),null,"left=" + intLeft + ",top=" + intTop + ",height=980,width=780,scrollbars=yes,status=no,toolbar=yes,menubar=yes,location=no,resizable=yes");
            }
        
        //Método que Chama a Busca de Receita Detalhada.
        this.getReceitaDetalhada = function(strTexto)
            {
                //Gera a Url de Busca.
                var strUrl = new String();                       
                strUrl = "&&param=" + strTexto + "&&param=0&&param=0&&param=0&&param=&&param=0&&param=&&param=&&param=&&param=&&param=&&param=&&param=";

                try
                {     
                    //Chama o Método que Codifica a Url.                    
                    var strCryptUrl = Ajinomoto.Site.Interface.controls.header.cryptUrl(strUrl).value;                                                                            
                }
                catch(err)
                {
                    window.location = "erro.aspx?msg=" + err.description;
                } 

                //Redireciona para a Tela de Busca.
                window.location = "busca-resultado.aspx?busca=" + strCryptUrl;          
            }        
        
        //Método que Exibe o Modal.
        this.showModal = function(strID, strWidth, strHeigth)
            {
                $.blockUI({message: $('#' + strID + ''), 
                           css: { top:  ($(window).height() - strHeigth) /2 + 'px', 
                                  left: ($(window).width() - strWidth) /2 + 'px',
                                  width: strWidth}});               
            }     
            
        //Método que Esconde o Modal.
        this.hideModal = function()
            {
                $.unblockUI();                 
            }
            
        //Exibe o Tooltip de Help.            
        this.showHelp = function(e, strID, strTop)
            {                        
                //Verifica o Browser.
                if (document.all)
                    {
                        var intLeft = event.clientX + document.documentElement.scrollLeft;
                        var intTop = event.clientY + document.documentElement.scrollTop;
                    }
                else
                    {
                        var intLeft = e.pageX + document.body.scrollLeft;
                        var intTop = e.pageY + document.body.scrollTop;
                    }
                    
                //Posiciona o Div de Produtos.
                document.getElementById(strID).style.left = (intLeft - 387) + "px";
                document.getElementById(strID).style.top = (intTop - strTop) + "px";
                document.getElementById(strID).style.display = "block";                              
            }
            
        //Método que Esconde o Tooltip de Help. 
        this.hideHelp = function(strID)
            {
                //Esconde o Tootip.
                document.getElementById(strID).style.display = "none";
            }            
            
        //Método que Constroi o Compartilhamento.
        this.buildCompartilhe = function()
            {
                //Variáveis de Uso Local.
                var strHTML = new String();
                
                strHTML += "<a id=\"link_delicious\" href=\"http://del.icio.us/post?url=" + window.location + "\" target=\"_blank\" title=\"Compartilhar no del.icio.us\"><img id=\"img_delicious\" alt=\"Compartilhar no del.icio.us\" src=\"images/main_compart_delicious.jpg\" border=\"0\" /></a>&nbsp;";
                strHTML += "<a id=\"link_facebook\" href=\"http://www.facebook.com/sharer.php?u=" + window.location + "\" target=\"_blank\" title=\"Compartilhar no Facebook\"><img id=\"img_facebook\" alt=\"Compartilhar no Facebook\" src=\"images/main_compart_facebook.jpg\" border=\"0\" /></a>&nbsp;";
                strHTML += "<a id=\"link_google\" href=\"http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=" + window.location + "\" target=\"_blank\" title=\"Compartilhar no Google Bookmarks\"><img id=\"img_google\" alt=\"Compartilhar no Google Bookmarks\" src=\"images/main_compart_google.jpg\" border=\"0\" /></a>&nbsp;";
                strHTML += "<a id=\"link_yahoo\" href=\"http://myweb2.search.yahoo.com/myresults/bookmarklet?u=" + window.location + "\" target=\"_blank\" title=\"Compartilhar no Yahoo!\"><img id=\"img_yahoo\" alt=\"Compartilhar no Yahoo!\" src=\"images/main_compart_yahoo.jpg\" border=\"0\" /></a>&nbsp;";
                strHTML += "<a id=\"link_ie\" href=\"javascript:cDefault.addFavoritos();\" title=\"Compartilhar no Internet Explorer\"><img id=\"img_ie\" alt=\"Compartilhar no Internet Explorer\" src=\"images/main_compart_ie.jpg\" border=\"0\" /></a>&nbsp;";
                strHTML += "<a id=\"link_mozilla\" href=\"javascript:cDefault.addFavoritos();\" title=\"Compartilhar no Mozilla Firefox\"><img id=\"img_mozilla\" alt=\"Compartilhar no Mozilla Firefox\" src=\"images/main_compart_mozilla.jpg\" border=\"0\" /></a>&nbsp;";
                
                document.getElementById("receitas_footer_dirLinks").innerHTML = strHTML;
                
                //Chama o Método que Executa o Highlight dos Botões do Compartilhe.
                cReceita.mouseoverCompartilhe();                           
            }
        
        //Método que Adiciona Página ao Favoritos.
        this.addFavoritos = function()
            {
                var url = window.location;
                var title = "Sabores Ajinomoto";
                
                if (window.sidebar) 
                    window.sidebar.addPanel(title, url,"");
                else if(window.opera && window.print)
                    {
                        var mbm = document.createElement('a');
                        mbm.setAttribute('rel','sidebar');
                        mbm.setAttribute('href',url);
                        mbm.setAttribute('title',title);
                        mbm.click();
                    }
                else if(document.all)
                    {
                        window.external.AddFavorite(url, title);
                    }
            }
            
        //Método que Executa o Highlight dos Botões do Compartilhe.            
        this.mouseoverCompartilhe = function()
            {
                $(document).ready(
	                    function(){
		                    $('#link_delicious').mouseover(
		                        function(){	
      	                            $('#img_delicious').attr({src: 'images/main_compart_delicious_over.jpg'});
		                        }
		                    )
		                    $('#link_delicious').mouseout(
		                        function(){
      	                            $('#img_delicious').attr({src: 'images/main_compart_delicious.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_facebook').mouseover(
		                        function(){
      	                            $('#img_facebook').attr({src: 'images/main_compart_facebook_over.jpg'});			
		                        }
		                    )
		                    $('#link_facebook').mouseout(
		                        function(){
      	                            $('#img_facebook').attr({src: 'images/main_compart_facebook.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_google').mouseover(
		                        function(){
      	                            $('#img_google').attr({src: 'images/main_compart_google_over.jpg'});			
		                        }
		                    )
		                    $('#link_google').mouseout(
		                        function(){
      	                            $('#img_google').attr({src: 'images/main_compart_google.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_yahoo').mouseover(
		                        function(){
      	                            $('#img_yahoo').attr({src: 'images/main_compart_yahoo_over.jpg'});			
		                        }
		                    )
		                    $('#link_yahoo').mouseout(
		                        function(){
      	                            $('#img_yahoo').attr({src: 'images/main_compart_yahoo.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_ie').mouseover(
		                        function(){
      	                            $('#img_ie').attr({src: 'images/main_compart_ie_over.jpg'});			
		                        }
		                    )
		                    $('#link_ie').mouseout(
		                        function(){
      	                            $('#img_ie').attr({src: 'images/main_compart_ie.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_mozilla').mouseover(
		                        function(){
      	                            $('#img_mozilla').attr({src: 'images/main_compart_mozilla_over.jpg'});			
		                        }
		                    )
		                    $('#link_mozilla').mouseout(
		                        function(){
      	                            $('#img_mozilla').attr({src: 'images/main_compart_mozilla.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_fale_conosco').mouseover(
		                        function(){
      	                            $('#img_fale_conosco').attr({src: 'images/footer_fale_conosco_over.jpg'});			
		                        }
		                    )
		                    $('#link_fale_conosco').mouseout(
		                        function(){
      	                            $('#img_fale_conosco').attr({src: 'images/footer_fale_conosco.jpg'});			
		                        }
		                    )
                		    
		                    $('#link_cadastro').mouseover(
		                        function(){
      	                            $('#img_cadastro').attr({src: 'images/main_footer_cadastro_over.jpg'});			
		                        }
		                    )
		                    $('#link_cadastro').mouseout(
		                        function(){
      	                            $('#img_cadastro').attr({src: 'images/main_footer_cadastro.jpg'});			
		                        }
		                    )
                		    
	                    }
	                );            
            }                         
        
        //Método que Verifica se o Mail é Válido.
        this.checkMail = function(mail)
            {
                var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
        	
	            if(typeof(mail) == "string")
	                {
		                if(er.test(mail))
		                    { 
		                        return true; 
		                    }
	                }
	            else if(typeof(mail) == "object")
	                {
		                if(er.test(mail.value))
		                    {
		                        return true;
	                        }
	                }   
	            else
	                {        	
	                    return false;        	
	                }
            }
            
        //Função de QueryString em Javascript.
        this.QueryString = function(variavel)
            {
                var variaveis=location.search.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
                var nvar    
                
                if(variaveis!="")
                    {
                        var qs=[]
                        
                        for(var i=0;i<variaveis.length;i++)
                            {
                                nvar=variaveis[i].split("=")
                                qs[nvar[0]]=unescape(nvar[1])
                            }
                        
                        return qs[variavel]
                    }
                return null
            }                                                                                                      
    }