var Wordpress = function(){
    /*
     * Classe Destaque. Precisa ser instanciada
     */
    var Destaque = function(){      
        
        /*
         * Subclasse Request, nao precisa ser instanciada
         */
        var Request = new function(){            
            // Variaveis
            var action = "destaque_xml";
            var parceiro = "53832";
            var qtd = "1";
            var qtdFotos = "1";
            var local = "Primeira_Pagina";
            var buscaAleatorio="S";
            var finalidade = "venda";
            var subdominio = "";

            function get(callback){
                var obj = this;
                jQuery.post("wp-content/plugins/destaque/get_destaque.php",
                {
                    action: obj.action,
                    Parceiro: obj.parceiro,
                    Qtd: obj.qtd,
                    Qtd_Fotos: obj.qtdFotos,
                    Local: obj.local,
                    Busca_Aleatorio: obj.buscaAleatorio,
                    Finalidade: obj.finalidade,
                    title: obj.subdominio
                },
                function(xml){
                    var resposta = jQuery(xml).find("resposta").text();                    
                    if(resposta == "OK"){
                        callback.onSuccess(xml);
                    } else {
                        callback.onFailure();
                    }                    
                });
            }

            return {
                // Variaveis
                action          : action,
                parceiro        : parceiro,
                qtd             : qtd,
                qtdFotos        : qtdFotos,
                local           : local,
                buscaAleatorio  : buscaAleatorio,
                finalidade      : finalidade,

                // Métodos
                get             : get
            }
        }
        
        var divAlvo = "";

        /**
         * funcao utilizada para definir os parametros de consulta do destaque
         */
        function init(subdominio, parceiro, qtd, qtdfotos, local, aleatorio, finalidade){
            this.Request.subdominio = subdominio;
            this.Request.parceiro   = parceiro;
            this.Request.qtd        = qtd;
            this.Request.qtdFotos   = qtdfotos;
            this.Request.local      = local;
            this.Request.aleatorio  = aleatorio;
            this.Request.finalidade = finalidade;
        }

        /**
         * funcao responsavel por montar a lista de imoveis de destaque
         */
        function getImoveis(xml, tipo_visualizacao){
            var imoveis = jQuery(xml).find("imovel");
            
            var conteudo = "";
            if(tipo_visualizacao == undefined || tipo_visualizacao == "" || tipo_visualizacao == "Tabela_Horizontal" || tipo_visualizacao == "Tabela"){
                conteudo += getImoveisTabelaHorizontal(imoveis);
            } else if(tipo_visualizacao == "Tabela_Vertical"){
                conteudo += getImoveisTabelaVertical(imoveis);
            }else if(tipo_visualizacao == "Lista_Horizontal" || tipo_visualizacao == "Lista") {
                conteudo += getImoveisListaHorizontal(imoveis);
            } else if(tipo_visualizacao == "Lista_Vertical"){
                conteudo += getImoveisListaVertical(imoveis);
            }
            
            jQuery(this.divAlvo).append(conteudo);
            jQuery(this.divAlvo).find("tbody tr td").mouseover(function(){
               jQuery(this).parent("tr").addClass("selecionado");
            }).mouseout(function(){
                jQuery(this).parent("tr").removeClass("selecionado");
            });
            this.displayDestaques(0, imoveis.length);            
        }

        function getImoveisListaVertical(){
            var conteudo = "";
                
            return conteudo;
        }

        function getImoveisTabelaHorizontal(imoveis){
            var conteudo = "";
            conteudo += "<ul class='destaque'>";
            for(var i=0;i<imoveis.length;i++){
                var titulo      = jQuery(imoveis[i]).find("titulo").text();
                var bairro      = jQuery(imoveis[i]).find("bairro").text();
                var tipo        = jQuery(imoveis[i]).find("tipo").text();
                var link        = jQuery(imoveis[i]).find("link").text();
                var qtdQuartos  = jQuery(imoveis[i]).find("quartos").text();
                var finalidade  = jQuery(imoveis[i]).find("finalidade").text();
                var valor       = jQuery(imoveis[i]).find("valor").text();

                var imagens = jQuery(imoveis[i]).find("imagens").find("imagem");
                var imagem  = (imagens.length > 0) ? jQuery(imagens[0]).text() : "";
                var quartos = "";
                if(qtdQuartos != ""){
                    quartos = " - "+qtdQuartos + (qtdQuartos > 1 ? " quartos": " quarto");
                }

                conteudo += "<li class='destaque-"+i+"' style='display: none;'>";
                conteudo += "   <span class='finalidade'>"+finalidade+"</span>";
                conteudo += "   <a href='"+link+"' target='top' class='titulo'>"+titulo+"</a>";
                conteudo += "   <a href='"+link+"' target='top' class='imagem'><img src='"+imagem+"' /></a>";
                conteudo += "   <a href='"+link+"' target='top' class='bairro'>"+bairro+"</a>";
                conteudo += "   <a href='"+link+"' target='top' class='tipo'>"+tipo+quartos+"</a>";
                conteudo += "</li>";
            }
            conteudo += "</ul>";
            return conteudo;
        }

        function getImoveisTabelaVertical(imoveis){
            var conteudo = "";
            conteudo += "<ul class='destaque destaque-vertical'>";
            for(var i=0;i<imoveis.length;i++){
                var titulo      = jQuery(imoveis[i]).find("titulo").text();
                var bairro      = jQuery(imoveis[i]).find("bairro").text();
                var tipo        = jQuery(imoveis[i]).find("tipo").text();
                var link        = jQuery(imoveis[i]).find("link").text();
                var qtdQuartos  = jQuery(imoveis[i]).find("quartos").text();
                var finalidade  = jQuery(imoveis[i]).find("finalidade").text();
                var valor       = jQuery(imoveis[i]).find("valor").text();

                var imagens = jQuery(imoveis[i]).find("imagens").find("imagem");
                var imagem  = (imagens.length > 0) ? jQuery(imagens[0]).text() : "";

                conteudo += "<li class='destaque-"+i+"' style='display: none;'>";
                conteudo += "   <span class='finalidade'>"+finalidade+"</span>";
                conteudo += "   <a href='"+link+"' target='top' class='titulo'>"+titulo+"</a>";
                conteudo += "   <a href='"+link+"' target='top' class='imagem'><img src='"+imagem+"' /></a>";
                conteudo += "   <a href='"+link+"' target='top' class='bairro'>"+bairro+"</a>";
                //conteudo += "   <a href='"+link+"' target='top' class='tipo'>"+tipo+" - "+quartos+"</a>";
                conteudo += "</li>";
            }
            conteudo += "</ul>";
            return conteudo;
        }

        function getImoveisListaVertical(imoveis){
                var conteudo = "<ul class='lista-vertical'>";
                for(var i=0;i<imoveis.length;i++){
                    var bairro      = jQuery(imoveis[i]).find("bairro").text();
                    var tipo        = jQuery(imoveis[i]).find("tipo").text();
                    var link        = jQuery(imoveis[i]).find("link").text();
                    var qtdQuartos  = jQuery(imoveis[i]).find("quartos").text();
                    var finalidade  = jQuery(imoveis[i]).find("finalidade").text();
                    var valor       = jQuery(imoveis[i]).find("valor").text();

                    var quartos = "";
                    if(qtdQuartos != ""){
                        quartos = " "+qtdQuartos + (qtdQuartos > 1 ? " quartos": " quarto");
                    }
                    var classe = ((i%2) == 0) ? "par" : "impar";

                    conteudo += "<li style='display: none;' class='"+classe+" destaque-"+i+"'>";
                    conteudo +=     "<a href='"+link+"' target='top' class='finalidade'>"+finalidade+"</a>";
                    conteudo += "   <a href='"+link+"' target='top' class='bairro'>"+bairro+"</a>";
                    conteudo +=     "<a href='"+link+"' target='top' class='tipolista'>"+tipo+"</a>";
                    conteudo +=     "<a href='"+link+"' target='top' class='quartoslista'>"+quartos+"</a>";   
                    conteudo +=     "<a href='"+link+"' target='top' class='valor'>R$ "+valor+"</a>";

                    conteudo += "</li>";
                }
                conteudo += "</ul>";
            return conteudo;
        }

        function getImoveisListaHorizontal(imoveis){
            var conteudo = "";
                conteudo += "<table class='destaque'>";
                conteudo += "<thead>";
                conteudo +=     "<tr>";
                conteudo +=         "<th class='titulolista'>Finalidade</th>";
                conteudo +=         "<th class='titulolista'>Bairro</th>";
                conteudo +=         "<th class='titulolista'>Tipo</th>";
                conteudo +=         "<th class='titulolista'>Quartos</th>";
                conteudo +=         "<th class='titulolista'>Valor</th>";
                conteudo +=     "</tr>";
                conteudo += "</thead>";
                conteudo += "<tbody>";

                for(var i=0;i<imoveis.length;i++){                    
                    var bairro      = jQuery(imoveis[i]).find("bairro").text();
                    var tipo        = jQuery(imoveis[i]).find("tipo").text();
                    var link        = jQuery(imoveis[i]).find("link").text();
                    var qtdQuartos  = jQuery(imoveis[i]).find("quartos").text();
                    var finalidade  = jQuery(imoveis[i]).find("finalidade").text();
                    var valor       = jQuery(imoveis[i]).find("valor").text();

                    var quartos = "";
                    if(qtdQuartos != ""){
                        quartos = " "+qtdQuartos + (qtdQuartos > 1 ? " quartos": " quarto");
                    }
                    var classe = ((i%2) == 0) ? "par" : "impar";

                    conteudo += "<tr style='display: none;' class='"+classe+" destaque-"+i+"'>";
                    conteudo +=     "<td><a href='"+link+"' target='top' class='finalidadelista'>"+finalidade+"</a></td>";
                    conteudo +=     "<td><a href='"+link+"' target='top' class='bairrolista'>"+bairro+"</a></td>";
                    conteudo +=     "<td><a href='"+link+"' target='top' class='tipolista'>"+tipo+"</a></td>";
                    conteudo +=     "<td><a href='"+link+"' target='top' class='quartoslista'>"+quartos+"</a></td>";
                    conteudo +=     "<td class='tdvalorlista'><a href='"+link+"' target='top' class='valorlista' align=''>R$"+valor+"</a></td>";
                    conteudo += "</tr>";
                }
                conteudo += "</tbody>";
                conteudo += "</table>";
            return conteudo;
        }

        /**
         * Esta funcao eh utilizada para dar o efeito de "aparecer" um apos o outro
         * nos produtos. Eh uma funcao recursiva utilizada sempre no final das
         * funcoes de consulta
         */
        function displayDestaques(index, totalindex){
            jQuery(".destaque-"+index).fadeIn(300, function(){
                if(index <= totalindex){
                    displayDestaques(++index, totalindex);
                }
            });
        }

        /**
         * Funcao utilizada por controlar a requisição do destaque.
         */
        function getDestaque(alvo, tipo){
            var obj = this;
            obj.divAlvo = alvo;
            this.Request.get({
                onSuccess: function(xml){
                    obj.getImoveis(xml, tipo);
                },
                onFailure: function(){
                    //alert("fracasso");
                }
            });
        }
        
        

        return {
            // Variaveis           
            Request         : Request,
            divAlvo         : divAlvo,
            
            // Métodos
            init            : init,
            getDestaque     : getDestaque,
            getImoveis      : getImoveis,
            displayDestaques: displayDestaques
        }
    }
    var BuscaRapida = function(){

        /*
         * Subclasse Request, nao precisa ser instanciada
         */
        var Request = new function(){
            // Variaveis
            /*var action = "destaque_xml";*/
            var parceiro = "53832";
            /*var qtd = "1";
            var qtdFotos = "1";
            var local = "Primeira_Pagina";
            var buscaAleatorio="S";
            var finalidade = "venda";*/

            function get(callback){
                var obj = this;
                jQuery.post("wp-content/plugins/buscarapida/get_buscarapida.php",
                {
                    //action: obj.action,
                    Parceiro: obj.parceiro
                    /*Qtd: obj.qtd,
                    Qtd_Fotos: obj.qtdFotos,
                    Local: obj.local,
                    Busca_Aleatorio: obj.buscaAleatorio,
                    Finalidade: obj.finalidade*/
                },
                function(xml){
                        callback.onSuccess(xml);
                    
                        //callback.onFailure();                    
                });
            }

            return {
                // Variaveis
                /*action          : action,*/
                parceiro        : parceiro,
                /*qtd             : qtd,
                qtdFotos        : qtdFotos,
                local           : local,
                buscaAleatorio  : buscaAleatorio,
                finalidade      : finalidade,*/

                // Métodos
                get             : get
            }
        }

        function getBuscaRapida(alvo){
            this.Request.get({
               onSuccess: function(html){
                   alert(html);
                    jQuery(alvo).append(html);
               } ,
               onFailure: function(){
                   alert("deu pau");
               }
            });
        }

        function init(parceiro){
            this.Request.parceiro = parceiro;
        }

        return {
            Request : Request,
            init    : init,
            getBuscaRapida  : getBuscaRapida
        }
    }
    return {
        Destaque    : Destaque,
        BuscaRapida : BuscaRapida
    }
}();
