$(document).ready(function() {
	
	// Ativa ou desativa o o formulário enquanto carrega os campos
	$("#pesquisa").ajaxComplete(function(){
		$("#pesquisa_botao").removeAttr("disabled");
	});
	
	$("#pesquisa").ajaxStart(function(){
		$("#pesquisa_botao").attr("disabled", true);
	});
	
	
	// Altera os valores dos campos Valores 
	function MudaValores(val, negocio, campo, minimo){	
		if(negocio == ""){
			$("#b_valor_min").attr("disabled", true);
			$("#b_valor_max").attr("disabled", true);
			$("#b_valor_min").empty();
			$("#b_valor_max").empty();
			$("#b_valor_min").append("<option value=\'\'>MÍN.</option>");
			$("#b_valor_max").append("<option value=\'\'>MÁX.</option>");
		} else {
			
			$("#b_valor_min").removeAttr("disabled");
			$("#b_valor_max").removeAttr("disabled");

			$.post("/sistema/class/pesquisa.ajax.php", {funcao:'MudaValores', 'param[]':[val, negocio, campo, minimo]}, function(data){ return data; }, 'script');
		}
	}
	
	// Altera o Tipo (Apartamento, casa, sobrado...) conforme o negócio
	function MudaTipo(tipo, negocio){
		$("#b_tipo").attr("disabled", true);

		if(negocio != ""){
			$.post("/sistema/class/pesquisa.ajax.php", {funcao:'MudaTipo', 'param[]':[tipo, negocio] }, function(data){ return data; }, 'script');
		}
	}
	
	
	// Busca as Cidade do estado
	function MudaCidade(cidade, estado){
		$.post("/sistema/class/pesquisa.ajax.php", { funcao:'MudaCidade', 'param[]':[cidade, estado]}, function(data){ return data; }, 'script');
	}
	
	
	// Busca os Bairros da cidade
	function MudaBairro(bairro, cidade){
		$.post("/sistema/class/pesquisa.ajax.php", { funcao:'MudaBairro', 'param[]':[bairro, cidade]}, function(data){ return data; }, 'script');
	}
	
	
	// Mostra opções de temporada
	function MudaTemporada(negocio){
		if($('#pesquisa_campos_temporada').length){
			if(negocio == 'Temporada'){
				$('#pesquisa_campos_temporada').show();
				$('#b_vista').removeAttr('disabled');
				$('#b_distancia').removeAttr('disabled');
				$('#b_capacidade').removeAttr('disabled');
			}else{
				$('#pesquisa_campos_temporada').hide();
				$('#b_vista').attr('disabled', true);
				$('#b_distancia').attr('disabled', true);
				$('#b_capacidade').attr('disabled', true);
			}
		}
	}
	
	
	$("#b_negocio").change(function(){
			
		novovalor = $("#b_negocio").val();
		
		MudaValores(valormin, novovalor, 'min');
		MudaValores(valormax, novovalor, 'max', valormin);
		
		MudaTipo(valortip, novovalor);
		MudaTemporada(novovalor);
				
	});
	
	// Filtra MAX ao trocar o MIN
	$("#b_valor_min").change(function(){
		MudaValores(valormax, $("#b_negocio").val(), 'max', $("#b_valor_min").val());
	});
	
	
	// Filtra as cidade pelo estado
	$("#b_estado").change(function(){
		novovalor = $("#b_estado").val();
		MudaCidade(valorcid, novovalor, valorbai);
		$("#b_bairro").attr("disabled", true);
		$("#b_bairro").empty();
		$("#b_bairro").append("<option value=\'TODOS\'>Bairro</option>");
		
	});
	
	
	// Filtra os bairros pela cidade
	$("#b_cidade").change(function(){
		novovalor = $("#b_cidade").val();
		MudaBairro(valorbai, novovalor);
	});
	
	
		
	
	MudaTipo(valortip, valorneg);
	MudaCidade(valorcid, valorest);
	MudaBairro(valorbai, valorcid);
	MudaValores(valormin, valorneg, 'min');
	MudaValores(valormax, valorneg, 'max', valormin);
	MudaTemporada(valorneg);
	
	
	// Desativa ou ativa campos dependendo do que já está selecionado
	if($("#b_negocio").val() != ""){
		$("#b_valor_min").removeAttr("disabled");
		$("#b_valor_max").removeAttr("disabled");
		$("#b_tipo").removeAttr("disabled");
	}
	
	if($("#b_estado").val() != ""){
		$("#b_cidade").removeAttr("disabled");
	}
	
	
	function retiraAcento(palavra) {
		
		palavra = palavra.replace(" ", "-");
		
		com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇàèìòùâêîôûäëïöüáéíóúãõÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÁÉÍÓÚÃÕ ';
		sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUCaeiouaeiouaeiouaeiouaoAEIOUAEIOUAEIOUAEIOUAO-';
		nova = '';
		
		for(i=0; i < palavra.length; i++) {
			if (com_acento.search(palavra.substr(i,1))>=0) {
				nova += sem_acento.substr(com_acento.search(palavra.substr(i,1)),1);
			} else {
				nova += palavra.substr(i,1);
			}
		}
		
		return nova;
	}


	$("#form_pesquisa").submit(function(){
		
		if($('#b_negocio').val() == ""){
			alert("Você precisa selecionar um tipo de Negócio!");
			$('#b_negocio').addClass('formularios_verificar');
			$('#b_negocio').focus();
			return false;
		
		}else if($('#b_tipo').val() == ""){
			alert("Você precisa escolher o Tipo do imóvel!");
			$('#b_tipo').addClass('formularios_verificar');
			$('#b_tipo').focus();
			return false;
			
		} else {
			// Troca a pagina de resultados
			if($('#chkbuscamapa').attr('checked') == true){
				var url = '/imoveis-mapa/';
			} else {
				var url = '/imoveis/';
			}
			
			// Condicoes para url amigavel
			var getvalormin = retiraAcento($('select#b_valor_min option:selected').text()).replace('a', '');
			var getvalormax = retiraAcento($('select#b_valor_max option:selected').text()).replace('a', '');
			
			if(getvalormin == "MIN" && getvalormax == "MAX") {
				var getvalor = "";
			} else if(getvalormin != "MIN" && getvalormax == "MAX") {
				var getvalor = "/r$-"+getvalormin+"-ou-mais";
			} else if(getvalormin == "MIN" && getvalormax != "MAX") {
				var getvalor = "/ate-r$-"+getvalormax;
			} else if(getvalormin != "MIN" && getvalormax != "MAX"){
				var getvalor = "/de-r$-"+getvalormin+"-ate-"+getvalormax;
			}
			
			// Tipo
			var gettipo = $('#b_tipo').val();
			
			if(gettipo == "TODOS") {
				var gettipo = "";
			} else {
				var gettipo = "/"+gettipo;
			}
			
			// Bairro
			var getbairro = $('#b_bairro').val();
			
			if(getbairro == "TODOS") {
				var getbairro = "";
			} else {
				var getbairro = "/"+getbairro+"-"+retiraAcento($("select#b_bairro option:selected").text());
			}
			
			// Suite
			var getsuites = $('#b_suites').val();
			
			if(getsuites == "TODOS") {
				var getsuites = "";
			} else {
				if(getsuites > 1){ plural = 's'; } else { plural = "" }
				var getsuites = "/"+getsuites+"-suite"+plural;
			}
			
			// Quartos
			var getquartos = $('#b_dormitorios').val();
			
			if(getquartos == "TODOS") {
				var getquartos = "";
			} else {
				if(getquartos > 1){ plural = 's'; } else { plural = "" }
				var getquartos = "/"+getquartos+"-quarto"+plural;
			}
			
			
			// Gera primeira parte do resultado
			url += $('#b_negocio').val()+
			gettipo+
			"/"+$('#b_cidade').val()+"-"+retiraAcento($("select#b_cidade option:selected").text())+
			"-"+$('#b_estado').val()+
			getbairro+
			getvalor+
			getsuites+
			getquartos;
			
			if($('#b_negocio').val() == 'Temporada'){
			
				// Vista para o mar
				var getvista = $('#b_vista').val();
				
				if(getvista == 0) {
					var getvista = "";
				} else {
					var getvista = "/vista-mar-"+getvista;
				}
				
				// Distancia do mar
				var getdistancia = $('#b_distancia').val();
				
				if(getdistancia == 0) {
					var getdistancia = "";
				} else {
					var getdistancia = "/distancia-"+getdistancia;
				}
				
				// Capacidade
				var getcapacidade = $('#b_capacidade').val();
				
				if(getcapacidade == 0) {
					var getcapacidade = "";
				} else {
					if(getcapacidade > 1){ plural = 's'; } else { plural = "" }
					var getcapacidade = "/"+getcapacidade+"-pessoa"+plural;
				}
				
				url += getvista+
				getdistancia+
				getcapacidade;
				
			}
			
			url = url.toLowerCase().replace('todos-todos', 'todos');
			
			//alert(url);
			
			window.location.href = url;
			
		}
		
		return false;
				
	});
	
	
	// Válida a busca por código
	$("#form_pesquisa_codigo").submit(function(){
		
		if($('#ref').val() == ""){
			alert("Você precisa digitar o código do imóvel!");
			$('#ref').addClass('formularios_verificar');
			$('#ref').focus();
			return false;
		
		} else {
			
			window.location.href = "/imovel/"+$('#ref').val();
			return false;
			
		}
		
	});
	

	function urlEncode(str) {  
		var hex_chars = "0123456789ABCDEF";  
		var noEncode = /^([a-zA-Z0-9\_\-\.])$/;  
		var n, strCode, hex1, hex2, strEncode = "";  

		for(n = 0; n < str.length; n++) {  
			if (noEncode.test(str.charAt(n))) {  
				strEncode += str.charAt(n);  
			} else {  
				strCode = str.charCodeAt(n);  
				hex1 = hex_chars.charAt(Math.floor(strCode / 16));  
				hex2 = hex_chars.charAt(strCode % 16);  
				strEncode += "%" + (hex1 + hex2);  
			}  
		}  
		return strEncode;  
	}	
	
	// Válida a busca por palavra-chave
	$("#form_pesquisa_palavrachave").submit(function(){
		
		if ($('#b_palavrachave').val().length < 5){
			alert("Digite a palavra-chave desejada com pelo menos 5 letras!");
			$('#b_palavrachave').addClass('formularios_verificar');
			$('#b_palavrachave').focus();
			return false;
		} else {
			window.location.href = "/imoveis/venda/palavra-chave/"+urlEncode($('#b_palavrachave').val());
			return false;
		}
		
	});
	
	
	$("#limite").change(function(){
		var url = window.location.pathname;
		var lim = $(this).val();
		
		if(url.search('limite-') > 0){			
			url = url.replace("limite-10", "limite-"+lim);
			url = url.replace("limite-15", "limite-"+lim);
			url = url.replace("limite-20", "limite-"+lim);
			url = url.replace("limite-25", "limite-"+lim);
			url = url.replace("limite-50", "limite-"+lim);
		}else{
			url += "/limite-"+lim;
		}
		
		window.location = url;
	});
	
	
	$("#ordem").change(function(){
		var url = window.location.pathname;
		var ord = $(this).val();
		
		if(url.search('ordem-') > 0){
			
			url = url.replace("ordem-bairros.nome", "ordem-"+ord);
			url = url.replace("ordem-dormsuite+DESC", "ordem-"+ord);
			url = url.replace("ordem-imoveis.valor+DESC", "ordem-"+ord);
			url = url.replace("ordem-imoveis.valor", "ordem-"+ord);
			url = url.replace("ordem-imoveis.areatotal+DESC", "ordem-"+ord);
			url = url.replace("ordem-imoveis.areatotal", "ordem-"+ord);
			url = url.replace("+DESC+DESC", "+DESC");
			
		}else{
			url += "/ordem-"+ord;
		}
		
		window.location = url;
	});
	
	

});

	
