	/**
	 * JavaScript Document
	 * Este arquivo permite que seja consultado o endereço a partir do CEP.
	 * É possível também, popular os campos de cidade, de acordo com o estado selecionado, 
	 * e bairro, de acordo com a cidade selecionada.
	 * @author Vinicius Cruz
	 * @date 29/05/2008
	 */
	jQuery.noConflict();
	jQuery(document).ready(function(){
		/* Consulta endereço a partir do CEP
		 */
		jQuery("input[name=cep]").blur(function(){
			var cepDigitado = jQuery("input[name=cep]").val();
			if(cepDigitado != '_____-___')
			{
				jQuery("select[name=idestado]").attr("disabled","disabled"); //Desabilita
				jQuery("select[name=idcidade]").attr("disabled","disabled"); //Desabilita
				jQuery("select[name=idbairro]").attr("disabled","disabled"); //Desabilita
				//jQuery("#carregando").show();
				
				if(cepDigitado!='') //Se tiver digitado CEP
				{
					jQuery.post(ENDERECO_ABSOLUTO+'index.php/cidade/AJAXpopulaEndereco',
					{
						cep :  cepDigitado
					},
					function(resposta){
						if(resposta=='')
						{
							alert('O CEP informado não existe.');
							jQuery("select[name=idestado]").attr("disabled",""); //Habilita
							jQuery("select[name=idcidade]").attr("disabled",""); //Habilita
							jQuery("select[name=idbairro]").attr("disabled",""); //Habilita
						}else
						{
							var end = resposta.split("#");
							var enderecoToGoogleMaps = end[0] + ", " + end[1] + " - " + end[2] + ", " + end[3] + " - Brasil";
							
							//Marca ESTADO
							if(end[3])
							{
								jQuery("select[name=idestado]").attr("disabled",""); //Habilita
								jQuery("select[name=idestado] option:contains('"+end[3]+"')").attr("selected", true);
								populaCidade(); //Consulta AJAX sincrona

								//Marca CIDADE apenas se tiver selecionado ESTADO
								if(end[2])
								{
									jQuery("select[name=idcidade] option:contains('" + end[2] + "')").attr("selected", true);
									populaBairro(); //Consulta AJAX sincrona
								
									//Marca Endereco
									jQuery("input[name=endereco]").val(end[0]);
										
									//Marca BAIRRO apenas se tiver selecionado CIDADE
									if(end[1])
									{
										jQuery("select[name=idbairro] option:contains('" + end[1] + "')").attr("selected", true);
									}
								}
							}
							//atualiza google maps
							//mostraEndereco(enderecoToGoogleMaps);
						}
						jQuery("#carregando").hide();
	
					});
				}
			}
		});

		 /************************************************************************************|
		 |*** CONSULTA OUTRAS BUSCAS, DIFERENTE DA BUSCA *************************************|
		 |************************************************************************************/
		/* Popula combo de SUBTIPO via AJAX
		 */
		jQuery("select[name=idtipo]").change(function(){
			populaSubtipo();
		});
		/* Popula combo de CIDADE via AJAX
		 */
		jQuery("select[name=idestado]").change(function(){
			populaCidade();
		});
	    /* Popula combo de BAIRRO via AJAX
		 */
		jQuery("select[name=idcidade]").change(function(){
			populaBairro();
		});
		//Funções auxiliares
		function populaSubtipo()
		{
			populaComboGenerico("idtipo", "idsubtipo", "subtipo", "ajaxConsulta_todos_subtipos", "idtipo");
		}
		function populaCidade()
		{
			populaComboGenerico("idestado", "idcidade", "cidade", "ajaxConsulta_todas_cidades", "idestado");
		}
		function populaBairro()
		{
			populaComboGenerico("idcidade", "idbairro", "bairro", "ajaxConsulta_todos_bairros", "idcidade");
		}

		/*************************************************************************
		 *** CONSULTA DE BUSCA DE IMOVEIS ****************************************
		 *************************************************************************/
		/* Visita p�gina de imobiliaria
		 */
		jQuery("select[name=imobiliaria]").change(function(){
			if(jQuery(this).val() != "")
			{
				parent.document.location = jQuery(this).val();
			}
		});
		jQuery("select[name=construtora]").change(function(){
			if(jQuery(this).val() != "")
			{
				parent.document.location = jQuery(this).val();
			}
		});


		/*************************************************************************
		 *** CONSULTA DE BUSCA DE IMOVEIS ****************************************
		 *************************************************************************/

		//ESTADO é desabilitado até que seja carregada toda a página
		jQuery("select[name=idestadoBusca]").attr("disabled","");

		/* Popula combo de CIDADE via AJAX do campo de BUSCA
		 * Consulta apenas cidades que possuem imóveis cadastrados
		 */
		jQuery("select[name=idestadoBusca]").change(function(){
			jQuery.ajax({
				type: "POST",
				url: ENDERECO_ABSOLUTO+"index.php/estado/AJAXsalvaSession",
				data: "idestado="+jQuery(this).val(),
				success: function(resposta){
					parent.document.location = ENDERECO_ABSOLUTO;
				}
			});
		});

	    /* Popula combo de BAIRRO via AJAX do campo de BUSCA
		 * Consulta apenas bairros que possuem imóveis cadastrados
		 */
		jQuery("select[name=idcidadeBusca]").change(function(){
			populaTransacaoBusca();
			populaTipoBusca();
			populaBairroBusca();
			populaQuartoBusca();
		});

	    /* Popula combo do campo de BUSCA
		 * Consulta apenas bairros que possuem imóveis cadastrados
		 */
		jQuery("select[name=transacaoBusca]").change(function(){
			populaTipoBusca();
			populaBairroBusca();
			populaQuartoBusca();
		});
	    /* Popula combo do campo de BUSCA
		 * Consulta apenas bairros que possuem imóveis cadastrados
		 */
		jQuery("select[name=tipoBusca]").change(function(){
			populaBairroBusca();
			populaQuartoBusca();
		});
	    /* Popula combo do campo de BUSCA
		 * Consulta apenas bairros que possuem imóveis cadastrados
		 */
		jQuery("select[name=idbairroBusca]").change(function(){
			populaQuartoBusca();
		});


		/************************************************************************************
		 *** FUNÇÕES DE CONSULTA, PARA POPULAR COMBO ****************************************
		 ************************************************************************************/
		/* Consulta Cidades que existem cadastradas
		 */
		function populaCidadeBusca()
		{
			populaComboGenerico("idestadoBusca", "idcidadeBusca", "cidade", "AJAXpopulaCidade", "idestado");
		}

		/* Consulta Transações que existem cadastradas
		 */
		function populaTransacaoBusca()
		{
			//Grava opção selecionada
			var transacaoSelecionado = jQuery("select[name=transacaoBusca] option:selected").text();

			//Consulta baseado nos dados já selecionados
			var idestado = jQuery("select[name=idestadoBusca]").val();
			var idcidade = jQuery("select[name=idcidadeBusca]").val();
			
			jQuery("select[name=transacaoBusca]").attr("disabled","disabled"); //Desabilita
			jQuery("select[name=transacaoBusca]").html('<option value="#">Carregando...</option>');
			jQuery.ajax({
				type: "POST",
				async: false,
				url: ENDERECO_ABSOLUTO+"index.php/transacao/AJAXpopulaTransacao",
				data: "idestado="+idestado+"&idcidade="+idcidade,
				success: function(resposta){
					jQuery("select[name=transacaoBusca]").attr("disabled",""); //Habilita
					jQuery("select[name=transacaoBusca]").html(resposta);
				}
			});

			//Reseleciona opção marcada anteriormente
			jQuery("select[name=transacaoBusca] option:contains('"+transacaoSelecionado+"')").attr("selected", true);
		}
		/* Consulta Tipos de Imoveis cadastradas
		 */
		function populaTipoBusca()
		{
			//Grava opção selecionada
			var tipoSelecionado = jQuery("select[name=tipoBusca] option:selected").text();
			
			//Consulta baseado nos dados já selecionados
			var idestado = jQuery("select[name=idestadoBusca]").val();
			var idcidade = jQuery("select[name=idcidadeBusca]").val();
			var transacao = jQuery("select[name=transacaoBusca]").val();
			
			jQuery("select[name=tipoBusca]").attr("disabled","disabled"); //Desabilita
			jQuery("select[name=tipoBusca]").html('<option value="#">Carregando...</option>');
			jQuery.ajax({
				type: "POST",
				async: false,
				url: ENDERECO_ABSOLUTO+"index.php/tipo/AJAXpopulaTipo",
				data: "idestado="+idestado+"&idcidade="+idcidade+"&transacao="+transacao,
				success: function(resposta){
					jQuery("select[name=tipoBusca]").attr("disabled",""); //Habilita
					jQuery("select[name=tipoBusca]").html(resposta);
				}
			});

			//Reseleciona opção marcada anteriormente
			jQuery("select[name=tipoBusca] option:contains('"+tipoSelecionado+"')").attr("selected", true);
		}
		/* Consulta Bairros de Imoveis cadastradas
		 */
		function populaBairroBusca()
		{
			//Grava opção selecionada
			var bairroSelecionado = jQuery("select[name=idbairroBusca] option:selected").text();

			//Consulta baseado nos dados já selecionados
			var idestado = jQuery("select[name=idestadoBusca]").val();
			var idcidade = jQuery("select[name=idcidadeBusca]").val();
			var transacao = jQuery("select[name=transacaoBusca]").val();
			var tipo = jQuery("select[name=tipoBusca]").val();
			
			jQuery("select[name=idbairroBusca]").attr("disabled","disabled"); //Desabilita
			jQuery("select[name=idbairroBusca]").html('<option value="#">Carregando...</option>');
			jQuery.ajax({
				type: "POST",
				async: false,
				url: ENDERECO_ABSOLUTO+"index.php/bairro/AJAXpopulaBairro",
				data: "idestado="+idestado+"&idcidade="+idcidade+"&transacao="+transacao+"&tipo="+tipo,
				success: function(resposta){
					jQuery("select[name=idbairroBusca]").attr("disabled",""); //Habilita
					jQuery("select[name=idbairroBusca]").html(resposta);
				}
			});

			//Reseleciona opção marcada anteriormente
			jQuery("select[name=idbairroBusca] option:contains('"+bairroSelecionado+"')").attr("selected", true);
		}
		/* Consulta Quartos de Imoveis cadastradas
		 */
		function populaQuartoBusca()
		{
			//Grava opção selecionada
			var quartoSelecionado = jQuery("select[name=quartoBusca] option:selected").text();
			
			//Consulta baseado nos dados já selecionados
			var idestado = jQuery("select[name=idestadoBusca]").val();
			var idcidade = jQuery("select[name=idcidadeBusca]").val();
			var transacao = jQuery("select[name=transacaoBusca]").val();
			var tipo = jQuery("select[name=tipoBusca]").val();
			var idbairro = jQuery("select[name=idbairroBusca]").val();
			
			jQuery("select[name=quartoBusca]").attr("disabled","disabled"); //Desabilita
			jQuery("select[name=quartoBusca]").html('<option value="#">Carregando...</option>');
			jQuery.ajax({
				type: "POST",
				async: false,
				url: ENDERECO_ABSOLUTO+"index.php/quarto/AJAXpopulaQuarto",
				data: "idestado="+idestado+"&idcidade="+idcidade+"&transacao="+transacao+"&tipo="+tipo+"&idbairro="+idbairro,
				success: function(resposta){
					jQuery("select[name=quartoBusca]").attr("disabled",""); //Habilita
					jQuery("select[name=quartoBusca]").html(resposta);
				}
			});
			
			//Reseleciona opção marcada anteriormente
			jQuery("select[name=quartoBusca] option:contains('"+quartoSelecionado+"')").attr("selected", true);
		}
	});

	/* função genérica para consultar COMBO
	 */
	function populaComboGenerico(campoEntrada, campoSaida, controller, metodo, idpost)
	{
		var identrada = jQuery("select[name="+campoEntrada+"]").val();
		
		jQuery("select[name="+campoSaida+"]").attr("disabled","disabled"); //Desabilita
		jQuery("select[name="+campoSaida+"]").html('<option value="#">Carregando...</option>');
		jQuery.ajax({
			type: "POST",
			async: false, //Sincrono
			url: ENDERECO_ABSOLUTO+"index.php/"+controller+"/"+metodo,
			data: idpost+"="+identrada,
			success: function(resposta){
				jQuery("select[name="+campoSaida+"]").attr("disabled",""); //Habilita
				jQuery("select[name="+campoSaida+"]").html(resposta);
			}
		});
	}
	function is_array( mixed_var )
	{
		// http://kevin.vanzonneveld.net
		// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +   improved by: Legaev Andrey
		// +   bugfixed by: Cord
		// *     example 1: is_array(['Kevin', 'van', 'Zonneveld']);
		// *     returns 1: true
		// *     example 2: is_array('Kevin van Zonneveld');
		// *     returns 2: false
	 
		return ( mixed_var instanceof Array );
	}
