/**
* CONTROLE DAS ABAS E FORMULÁRIOS DA BUSCA DE IMÓVEIS, IMOBILIÁRIAS E CÓDIGO DO ANÚNCIO - PÁGINA HOME
*
* Recursos utilizados:
* - Biblioteca Jquery;
* - Plugin Jquery Tabs;
*
* Rodrigo Salles
* Agence SP
*/


/* função auxiliar: verifica se variáveis estão vazias
* @var value: variável a ser verificada
* @return: boleano TRUE ou FALSE
*/
function empty(value) {
	if (value == null || value == '' || value == false || value == 0 || value == '0') {
		return true;
	}
	return false;
}


/* Função auxiliar:
* @var id: atributo id do elemento que está sendo manipulado
* @var html: texto ou elementos html a serem mostrados
* @var handler: tipo de evento da requisição ajax (start ou stop)
* Mostra texto alternativo enquanto requisição ajax é processada.
*/
function ajax_handler(id, html, handler) {
	if (handler == 'start') {
		$('#' + id).html(html);
	}
	$('#' + id).html(html);
}


/* Função auxiliar:
* Manipula os dados selecionados no elemento select múltiplo (com checkboxes) para envio de POST.
* @var obj: objeto que está sendo manipulado pela função click do jquery
* @var ajax_id: string do id do elemento que será preenchido com texto alternativo durante requisição ajax
* @var target_id: string do id do elemento alvo da resposta do POST
* @var action: string da action para envio do POST
*/
function multiple_post(obj, ajax_id, target_id, form_id, action) {
	//var multiple_id = '';
	//$(obj).parents('div.combo-box').children('ul').children('li').children('input.checkbox').serialize();	
	//if (multiple_id) {
		ajax_handler(ajax_id, 'carregando...', 'start');
		$.post('buscas/' + action, $('#' + form_id).serialize(), function(data){
			ajax_handler(ajax_id, 'selecione', 'stop');
			var array = data.split('|');
			var target = '';
			for(var i = 0; i < array.length; i++) {
				target += '<li>' + array[i] + '</li>';
			}
			$('#' + target_id).html(target);
		});
	//}
}


/* Função auxiliar:
* Manipula os dados selecionados no elemento select simples para envio de POST.
* @var ajax_id: string do id do elemento que será preenchido com texto alternativo durante requisição ajax
* @var target_id: string do id do elemento alvo da resposta do POST
* @var form_id: string do id do formulário para envio
* @var action: string da action para envio do POST
*/
function singular_post(ajax_id, target_id, form_id, action) {
	ajax_handler(ajax_id, 'carregando...', 'start');
	$.post('buscas/' + action, $('#' + form_id).serialize() , function(data){
		ajax_handler(ajax_id, 'selecione', 'stop');
		var array = data.split('|');
		var target = '';
		for(var i = 0; i < array.length; i++) {
			target += '<li>' + array[i] + '</li>';
		}
		$('#' + target_id).html(target);
	});
}



$(function(){
	/* tabs (Abas das categorias de imóveis) */
	if ($('#container-1').length || $('#container-2').length > 0 ) {
		$('#container-1').tabs();
		$('#container-2').tabs();
	}
	
	/* Controle das DIV´s combo-boxes */
	$('div.combo > a.btn-combo').click(function(e){
		e.preventDefault();
		if ($(this).hasClass('btn-combo')) {
			$(this).removeClass().addClass('btn-combo-active');
			$(this).parent('div.combo').children('div.combo-box').fadeIn(400);
			$(this).parent('div.combo').attr('style','z-index:9999 !important');
		} else {
			$(this).removeClass().addClass('btn-combo');
			$(this).parent('div.combo').children('div.combo-box').fadeOut(400);
			$(this).parent('div.combo').removeAttr('style');
		}
	});
	// Botão OK dentro da combo box
	$('div.combo-box > a.btn-ok').click(function(e){
		e.preventDefault();
		$(this).parents('div.combo').children('a.btn-combo-active').removeClass().addClass('btn-combo');
		$(this).parent('div.combo-box').fadeOut(400);
	});
	
	/* =========== CONTROLE DOS FORMS DE BUSCA ============= */
	
	/* Imóveis Venda */
	$('#btn-ok-tipos-venda').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-cidades-venda', 'cidades-venda', 'form-venda', 'imoveis_venda');
	});
	$('#faixa-valor-venda').change(function(){
		singular_post('link-cidades-venda', 'cidades-venda', 'form-venda', 'imoveis_venda');
	});
	$('#dorm-venda').change(function(){
		singular_post('link-cidades-venda', 'cidades-venda', 'form-venda', 'imoveis_venda');
	});
	$('#vagas-venda').change(function(){
		singular_post('link-cidades-venda', 'cidades-venda', 'form-venda', 'imoveis_venda');
	});
	$('#btn-ok-cidades-venda').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-bairros-venda', 'bairros-venda', 'form-venda', 'imoveis_venda');
	});
	
	
	/* Imóveis Locação */
	
	$('#btn-ok-tipos-locacao').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-cidades-locacao', 'cidades-locacao', 'form-locacao', 'imoveis_locacao');
	});
	$('#faixa-valor-locacao').change(function(){
		singular_post('link-cidades-locacao', 'cidades-locacao', 'form-locacao', 'imoveis_locacao');
	});
	$('#dorm-locacao').change(function(){
		singular_post('link-cidades-locacao', 'cidades-locacao', 'form-locacao', 'imoveis_locacao');
	});
	$('#vagas-locacao').change(function(){
		singular_post('link-cidades-locacao', 'cidades-locacao', 'form-locacao', 'imoveis_locacao');
	});
	$('#btn-ok-cidades-locacao').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-bairros-locacao', 'bairros-locacao', 'form-locacao', 'imoveis_locacao');
	});
	
	/* Imóveis Comercial */
	
	// buscando faixas de valores
	$('input.control-comercial').change(function(){
		// enviando o POST
		ajax_handler('faixa-valor-comercial', '<option>carregando...</option>', 'start');
		$.post('buscas/get_faixa_valor', {tipo_id:$(this).val()}, function(data){
			$('#faixa-valor-comercial').html(data);
		});
	});
	$('#faixa-valor-comercial').change(function(){
		singular_post('link-cidades-comercial', 'cidades-comercial', 'form-comercial', 'imoveis_comercial');
	});
	$('#btn-ok-cidades-comercial').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-bairros-comercial', 'bairros-comercial', 'form-comercial', 'imoveis_comercial');
	});
	
	/* Imóveis Estabelecimento */
	
	$('#btn-ok-tipos-estabelecimento').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-cidades-estabelecimento', 'cidades-estabelecimento', 'form-estabelecimento', 'imoveis_estabelecimento');
	});
	$('#btn-ok-cidades-estabelecimento').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-bairros-estabelecimento', 'bairros-estabelecimento', 'form-estabelecimento', 'imoveis_estabelecimento');
	});
	
	
	/* Imóveis Lançamento */
	
	$('#btn-ok-tipos-lancamento').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-cidades-lancamento', 'cidades-lancamento', 'form-lancamento', 'imoveis_lancamento');
	});
	$('#faixa-valor-lancamento').change(function(){
		singular_post('link-cidades-lancamento', 'cidades-lancamento', 'form-lancamento', 'imoveis_lancamento');
	});
	$('#dorm-lancamento').change(function(){
		singular_post('link-cidades-lancamento', 'cidades-lancamento', 'form-lancamento', 'imoveis_lancamento');
	});
	$('#vagas-lancamento').change(function(){
		singular_post('link-cidades-lancamento', 'cidades-lancamento', 'form-lancamento', 'imoveis_lancamento');
	});
	$('#btn-ok-cidades-lancamento').click(function(e) {
		e.preventDefault;
		multiple_post(this, 'link-bairros-lancamento', 'bairros-lancamento', 'form-lancamento', 'imoveis_lancamento');
	});
	
	/* Imóveis Temporada */
	
	$('input.control-temporada').change(function(){
		if ($(this).val() == 9) {
			$('#tipo-praia').fadeIn(400).children('.select').attr('disabled', '');
		} else {
			$('#tipo-praia').fadeOut(400).children('.select').attr('disabled', 'disabled').children('option').attr('selected', '');
		}
	});
	$('#regiao-temporada').change(function(){
		singular_post('link-cidades-temporada', 'cidades-temporada', 'form-temporada', 'imoveis_temporada');
	});
	$('#pessoas-temporada').change(function(){
		singular_post('link-cidades-temporada', 'cidades-temporada', 'form-temporada', 'imoveis_temporada');
	});
	$('#vagas-temporada').change(function(){
		singular_post('link-cidades-temporada', 'cidades-temporada', 'form-temporada', 'imoveis_temporada');
	});
	$('#faixa-valor-temporada').change(function(){
		singular_post('link-cidades-temporada', 'cidades-temporada', 'form-temporada', 'imoveis_temporada');
	});
	
});

