var BuscaRapidaLanguage = function(){
    /**
     * Variaveis
     */
    var labels = {
        "idiomaPadrao":"PT-BR",
        "html":{
            "caixaIdiomas"  :"#idiomas",
            "botaoBuscar"   :"#botao",
            "inputIdioma"   :"#hiddenIdioma",
            "tituloBusca"   :"#busca h2"
        },
        "traducoes":{},
        "itens":[
			// Busca Rápida
			{nome:"LBL_BUSCA_AVANCADA",			html:".lbl_busca_avancada"},

            // Alertas
            {nome:"LBL_SELECIONE_FINALIDADE",   html:""},
            {nome:"LBL_SELECIONE_TIPO_IMOVEL",  html:""},
            {nome:"LBL_SELECIONE_MUNICIPIO",    html:""},
            {nome:"LBL_SELECIONE_ESTADO",       html:""},
            {nome:"LBL_SELECIONE_BAIRRO",       html:""},

            // SuperCaixa
            {nome:"LBL_ESCOLHA_OS_ESTADOS",     html:""},
            {nome:"LBL_ESCOLHA_OS_BAIRROS",     html:""},
            {nome:"LBL_ESCOLHA_AS_CIDADES",     html:""},
            {nome:"LBL_ESCOLHA_OS_TIPOS",       html:""},
            {nome:"LBL_CONSULTAR",              html:""},
            {nome:"LBL_FECHAR",                 html:""},

            // De, ate
            {nome:"LBL_DE",                     html:".lbl_de"},
            {nome:"LBL_ATE",                    html:".lbl_ate"},

            {nome:"LBL_BUSCAR_PELO_NOME",       html:".lbl_buscar_pelo_nome"},
            {nome:"LBL_NOME_IMOBILIARIA",       html:".lbl_nome_imobiliaria"},
            {nome:"LBL_REFERENCIA",             html:".lbl_referencia"},
            
            // Finalidade
            {nome:"LBL_CBOX_ESCOLHA",           html:""},
            {nome:"LBL_CBOX_SELECIONAR_TODOS",  html:""},
            {nome:"LBL_FINALIDADE",             html:".lbl_finalidade"},
            {nome:"LBL_TIPO",                   html:".lbl_tipo"},
            {nome:"LBL_FINALIDADE_E_TIPO",      html:".lbl_finalidade_e_localizacao" },
            {nome:"LBL_FINALIDADE_E_LOCALIZACAO",      html:".lbl_finalidade_e_localizacao" },
            {nome:"LBL_O_QUE_EU_QUERO",         html:".lbl_o_que_eu_quero"},
			{nome:"LBL_TODOS",					html:""},
            {nome:"LBL_ALUGUEL",                html:""},
            {nome:"LBL_VENDA",                  html:""},
            {nome:"LBL_TEMPORADA",              html:""},
            {nome:"LBL_PERMUTA",                html:""},
            {nome:"LBL_LANCAMENTO",             html:""},

            // Tipos de Imovel
            {nome:"LBL_TIPO_IMOVEL",            html:".lbl_tipo_imovel"},
            {nome:"LBL_PROCURO_IMOBILIARIAS",   html:".lbl_procuro_imobiliarias"},
            {nome:"LBL_LOCALIZADAS_EM",         html:".lbl_localizadas_em"},

            // Localidade
            {nome:"LBL_LOCALIZACAO_IMOVEL",     html:".lbl_localizacao_imovel"},
            {nome:"LBL_ESTADO",                 html:".lbl_estado"},
            {nome:"LBL_BAIRRO",                 html:".lbl_bairro"},
            {nome:"LBL_MUNICIPIO",              html:".lbl_municipio"},
            {nome:"LBL_VALOR",                  html:".lbl_valor"},

            // Atributos do Imovel
            {nome:"LBL_DETALHES_IMOVEL",        html:".lbl_detalhes_imovel"},
            {nome:"LBL_DORMITORIOS",            html:".lbl_dormitorios"},
            {nome:"LBL_MIN_QUARTOS",            html:".lbl_min_quartos"},
            {nome:"LBL_MAX_QUARTOS",            html:".lbl_max_quartos"},
            {nome:"LBL_GARAGEM",                html:".lbl_garagem"},
            {nome:"LBL_AREA",                   html:".lbl_area"},

            // Tipos de imovel
            {nome:"Casa",                       html:""},
            {nome:"Terreno",                    html:""},
            {nome:"Apartamento",                html:""},
            {nome:"Escritório",                 html:""},
            {nome:"Escritório Virtual",         html:""},
            {nome:"Loja",                       html:""},
            {nome:"Cobertura",                  html:""},
            {nome:"Galpão",                     html:""},
            {nome:"Vagas De Garagem",           html:""},
            {nome:"Casa De Campo",              html:""},
            {nome:"Sala",                       html:""},
            {nome:"Kitnet",                     html:""},
            {nome:"Conjugado",                  html:""},
            {nome:"Sobrado",                    html:""},
            {nome:"Andar",                      html:""},
            {nome:"Apart Hotel",                html:""},            
            {nome:"Conjugado",                  html:""},
            {nome:"Prédio",                     html:""},            
            {nome:"Sítio",                      html:""},
            {nome:"Fazenda",                    html:""},
            {nome:"Chácara",                    html:""},
            {nome:"Sobreloja",                  html:""},
            {nome:"Pousada",                    html:""},
            {nome:"Ilha",                       html:""},
            {nome:"Casa De Praia",              html:""},
            {nome:"Casa De Condomínio",         html:""},
			{nome:"Casa de Condomínio",			html:""},
            {nome:"Casa De Vila",               html:""},
            {nome:"Restaurante",                html:""},
			{nome:"LBL_MAIS_FILTROS",			html:".lbl_mais_filtros"},

            // Labels da parte de Catalogo

            // Menu Lateral
			{nome:"LBL_NAO_INFORMADO",			html:""},
			{nome:"LBL_NAO_ENCONTROU_IMOVEL",	html:".lbl_nao_encontrou_imovel"},
			{nome:"LBL_CLIQUE_AQUI",			html:".lbl_clique_aqui"},
			{nome:"LBL_EXIBIR_MAPA",			html:".lbl_exibir_mapa"},
			{nome:"LBL_EXIBIR_LISTA",			html:".lbl_exibir_lista"},
			{nome:"LBL_FILTRAR",				html:".lbl_filtrar"},
			{nome:"LBL_NOVA_BUSCA",				html:".lbl_nova_busca"},
            {nome:"LBL_BAIRROS",                html:".lbl_bairros"},
            {nome:"LBL_LIMPAR_FILTRO",          html:".lbl_limpar_filtro"},
            {nome:"LBL_LIMPAR_TODOS_FILTROS",   html:".lbl_limpar_todos_filtros"},
            {nome:"LBL_SOMENTE_COM_FOTO",       html:".lbl_somente_com_foto"},
            {nome:"LBL_VAGAS",                  html:".lbl_vagas"},
            {nome:"LBL_VALOR_CATALOGO",         html:".lbl_valor_catalogo"},
            {nome:"LBL_AREA_UTIL",              html:".lbl_area_util"},
            {nome:"LBL_TOTAL_IMOVEIS_ENCONTRADOS",html:".lbl_total_imoveis_encontrados"},
            {nome:"LBL_ACIMA_DE",               html:".lbl_acima_de"},
            {nome:"LBL_FILTROS",                html:".lbl_filtros"},
            {nome:"LBL_ORDENAR_POR",            html:".lbl_order_by"},
            {nome:"LBL_LOCAL_MAPA",             html:".lbl_local_mapa"},
            {nome:"LBL_VALOR_CONDOMINIO",       html:".lbl_valor_condominio"},
            {nome:"LBL_EXIBIR_FAVORITOS",       html:".lbl_exibir_favoritos"},
            {nome:"LBL_TIPO_IMOVEL_CATALOGO",   html:".lbl_tipo_imovel_catalogo"},
            {nome:"LBL_UP_TO",                  html:".lbl_up_to"},
            {nome:"LBL_E",                      html:".lbl_e"},
            {nome:"LBL_FOTO",                   html:".lbl_foto"},
			{nome:"LBL_FAVORITOS",				html:".lbl_favoritos"},
			{nome:"LBL_SOMENTE_FAVORITOS",		html:".lbl_somente_favoritos"},
			{nome:"LBL_MAIS_FILTROS",			html:".lbl_mais_filtros"},
			{nome:"LBL_CLIQUE_MAIS_FILTROS",	html:""},
			{nome:"LBL_MEU_HISTORICO",			html:".lbl_meu_historico"},
			{nome:"LBL_MARQUE_DOIS_IMOVEIS",	html:""},
			{nome:"LBL_MARQUE_SO_DOIS_IMOVEIS",	html:""},
			{nome:"LBL_REMOVER_HISTORICO",		html:".lbl_remover_historico"},

            // Visualizacao do imovel
            {nome:"LBL_CLIQUE_PARA_EXPANDIR",   html:".lbl_clique_para_expandir"},
            {nome:"LBL_ANTERIOR",               html:".lbl_anterior"},
            {nome:"LBL_PROXIMO",                html:".lbl_proximo"},
            {nome:"LBL_ENVIAR",                 html:""},
			{nome:"LBL_DADOS_IMOVEL",			html:".lbl_dados_imovel"},
			{nome:"LBL_DESCRICAO",				html:".lbl_descricao"},
			{nome:"LBL_IMOVEL_POSSUI",			html:".lbl_imovel_possui"},
			{nome:"LBL_GOSTEI_IMOVEL",			html:".lbl_gostei_do_imovel"},
			{nome:"LBL_ENVIAR_PARA_AMIGO",		html:".lbl_enviar_para_amigo"},
			{nome:"LBL_VALOR_ESTIMADO",			html:".lbl_valor_estimado"},
			{nome:"LBL_NOME",					html:".lbl_nome"},
			{nome:"LBL_TELEFONE",				html:".lbl_telefone"},
			{nome:"LBL_EMAIL",					html:".lbl_email"},
			{nome:"LBL_CLIQUE_VER_TELEFONE",	html:".lbl_clique_ver_telefone"},
			{nome:"LBL_MAIOR_VALOR",			html:".lbl_maior_valor"},
			{nome:"LBL_MENOR_VALOR",			html:".lbl_menor_valor"},
			{nome:"LBL_AREA_UTIL",				html:".lbl_area_util"},
			{nome:"LBL_TIPO_IMOVEL",			html:".lbl_tipo_imovel"},
			{nome:"LBL_COMPARTILHE_IMOVEL",		html:".lbl_compartilhe_imovel"},
			{nome:"LBL_VERSAO_IMPRESSAO",		html:".lbl_versao_impressao"},
			{nome:"LBL_IMPRIMIR",				html:".lbl_imprimir"},
			{nome:"LBL_VOLTAR_RESULTADOS",		html:".lbl_voltar_resultados"},
			{nome:"LBL_MAPA_DO_LOCAL",			html:".lbl_mapa_do_local"},
			{nome:"LBL_ATENCAO",				html:".lbl_atencao"},
			{nome:"LBL_QUEM_VIU_ESSE_VIU_TB",	html:".lbl_quem_viu_este_viu_tb"},
			{nome:"LBL_OUTROS_IMOVEIS",			html:".lbl_outros_imoveis"},

            // Parte de Refinar Consulta
			{nome:"LBL_PESQUISA_DE_IMOVEIS",	html:".lbl_pesquisa_imoveis"},
            {nome:"LBL_PROSSEGUIR",             html:""},
			{nome:"LBL_CRITERIOS_PESQUISA",		html:".lbl_criterios_pesquisa"},
			{nome:"LBL_DETALHANDO_PROCURA",		html:".lbl_detalhando_procura"},
			{nome:"LBL_ELEVADOR_SERVICO",		html:".lbl_elevador_servico"},
			{nome:"LBL_ELEVADOR_SOCIAL",		html:".lbl_elevador_social"},
			{nome:"LBL_IMOVEL_DEVE_TER",		html:".lbl_imovel_deve_ter"},
			{nome:"LBL_GARANTIA",				html:".lbl_garantia"},
			{nome:"LBL_LOCALIZA_POR_REFERENCIA",html:".lbl_localiza_por_referencia"},
			{nome:"LBL_REFERENCIA_IMOVEL",		html:".lbl_referencia_imovel"},
			{nome:"LBL_DEP_EMPREGADA",			html:".lbl_dep_empregada"},

			// Busca de Imobiliarias
			{nome:"LBL_OFERTAS_ANUNCIANTE",		html:".lbl_ofertas_anunciante"},
			{nome:"LBL_BUSCO_IMOBILIARIAS_EM",	html:".lbl_busco_imobiliarias_em"},
			{nome:"LBL_FORAM_ENCONTRADOS",		html:".lbl_foram_encontrados"},
			{nome:"LBL_RESULTADOS",				html:".lbl_resultados"}
        ]
    }

    function init(){        
        var size = labels.itens.length;
        for(var i=0;i<size;i++){
            var html = labels.itens[i]["html"];            
            if(html != ""){
                jQuery(html).text(get(labels.itens[i]["nome"], labels.idiomaPadrao));
            }
        }
        // Botao da busca rapida
        //jQuery(labels.html.botaoBuscar).val(get("LBL_CONSULTAR"));
        // Titulo da busca Rapida
        var idioma = jQuery(labels.html.inputIdioma).val();
        //jQuery(labels.html.tituloBusca).css("background", "transparent url(http://www.rederiodeimoveis.com.br/site/wp-content/themes/rederio/imagens/busca-titulo-bg"+idioma+".jpg) no-repeat scroll 0 0");
        for(var i in labels.traducoes){
            var traducao = labels.traducoes[i];
            jQuery("#abas li a").removeClass(traducao.idioma);
            jQuery(".butoes").find(".avancada, .enviar, .mapa, .historico").removeClass(traducao.idioma);
			jQuery(".botao-buscar").removeClass(traducao.idioma);
        }

        jQuery("#abas li a").addClass(labels.idiomaPadrao);
        jQuery(".butoes").find(".avancada, .enviar, .mapa, .historico").addClass(labels.idiomaPadrao);
		jQuery(".botao-buscar").addClass(labels.idiomaPadrao);
    }

    function traduzirConteudo(conteudo, destino){
        jQuery(destino).append(get(conteudo));
    }

    function traduzDescricaoMapa(h){
        // Substitui as traducoes
            h = h.replace(/##traducao.LBL_MAPA_LOCAL##/g,           BuscaRapidaLanguage.get("LBL_LOCAL_MAPA"));
            h = h.replace(/##traducao.LBL_AREA##/g,                 BuscaRapidaLanguage.get("LBL_AREA"));
            h = h.replace(/##traducao.LBL_VAGAS##/g,                BuscaRapidaLanguage.get("LBL_VAGAS"));
            h = h.replace(/##traducao.LBL_TIPO##/g,                 BuscaRapidaLanguage.get("LBL_TIPO_IMOVEL_CATALOGO"));
            h = h.replace(/##traducao.LBL_DORMITORIOS##/g,          BuscaRapidaLanguage.get("LBL_DORMITORIOS"));
            h = h.replace(/##traducao.LBL_VALOR_CONDOMINIO##/g,     BuscaRapidaLanguage.get("LBL_VALOR_CONDOMINIO"));
            h = h.replace(/##traducao.LBL_OFERTAS_ANUNCIANTE##/g,   BuscaRapidaLanguage.get("LBL_OFERTAS_ANUNCIANTE"));
            h = h.replace(/##traducao.LBL_VER_TELEFONE##/g,         BuscaRapidaLanguage.get("LBL_VER_TELEFONE"));
            h = h.replace(/##traducao.LBL_ENTRAR_EM_CONTATO##/g,    BuscaRapidaLanguage.get("LBL_ENTRAR_EM_CONTATO"));
            h = h.replace(/##traducao.LBL_MAIS_DETALHES##/g,        BuscaRapidaLanguage.get("LBL_MAIS_DETALHES"));
            return h;
    }


    function setIdiomaPadrao(nomeIdioma){
		if(nomeIdioma == "" || nomeIdioma == undefined){
			nomeIdioma = "PT-BR";
		}
        if(labels.traducoes[nomeIdioma] == undefined){            
            alert("Idioma nao cadastrado");
            return false;
        } else {
            var idioma = "";
            switch(nomeIdioma){
                case "EN-US":
                    idioma = "_ing";
                    break;
                case "ESP":
                    idioma = "_esp";
                    break;
            }
            jQuery(labels.html.inputIdioma).val(idioma);

            labels.idiomaPadrao = nomeIdioma;
            return true;
        }
    }

    function addTraducao(traducao){
        if(traducao.idioma != undefined){            
            if(traducao.labels != undefined){
                // Verifica se existem todos os labels de traducao
                var size = labels.itens.length;                
                for(var i=0;i<size;i++){
                    var nome = labels.itens[i]["nome"];
                    if(traducao.labels[nome] == undefined){
                        alert(nome+ " precisa ser definido no arquivo de traducao ("+traducao.idioma+")");
                        return false;
                    }
                }
                // Agora que verificou os campos, adiciona este arquivo de traducao na lista
                labels.traducoes[traducao.idioma] = traducao;                
                jQuery(labels.html.caixaIdiomas).append("<img height='11' width='17' src='"+traducao.icone+"' class='"+traducao.idioma+"'/>");
                jQuery(labels.html.caixaIdiomas).find("img").unbind("click").click(function(){                    
                    BuscaRapida.setIdiomaPadrao(jQuery(this).attr("class"));
                    BuscaRapida.init();
                });
                return true;
            } else {
                alert("Traducao invalida");
                return false;
            }
        } else {
            alert("Nome do idioma nao definido");
            return false;
        }
    }

    /**
     * Retorna a traducao do idioma X
     */
    function get(label, idioma){
        if(idioma == undefined){
            idioma = labels.idiomaPadrao;
        }
        if(labels.traducoes[idioma] != undefined){
            var retorno = labels.traducoes[idioma].labels[label];
            return (retorno == undefined) ? label : retorno;            
        } else {
//            alert("Label ("+label+") nao encontrada no idioma "+idioma);
            return false;
        }
    }

    function getIdiomaPadrao(){
        return labels.idiomaPadrao;
    }

    return {
        init                : init,
        setIdiomaPadrao     : setIdiomaPadrao,
        getIdiomaPadrao     : getIdiomaPadrao,
        addTraducao         : addTraducao,
        get                 : get,
        traduzirConteudo    : traduzirConteudo,
        traduzDescricaoMapa : traduzDescricaoMapa
    }
}();
