prodResorts = {
	urlBusca : 'pub/json/getResorts.php'
	
	,page : 1
	,uf : ''
	,requests	: null
	
	,addRequest : function(req)
	{
		this.request = req;
	}
	
	,cancelRequest : function()
	{
		if (this.request) this.request.abort();
		this.request = null;
	}
	
	,getDestaque : function()
	{
		this.cancelRequest();
		
		$('div.pacResorts .destaque').hide();
		$('div.pacResorts ul').empty();
		$('div.pacResorts .destaque ul').empty();
		$('.totProdutos').empty().hide();
		$('.paginas').empty();
		$("<span>Carregando...</span>").appendTo('.destaque ul');
		
		tiposDestaque = [
			{
				tipo : 'resortsRecomendados',
				flagRecomendado : 1,
				limit : 9
			}/*,
			{
				tipo : 'outrosResorts',
				flagRecomendado : 0,
				limit : 6
			}*/
		];
		
		$.each(tiposDestaque, function(i, destaque) {
			prodResorts.addRequest(
				$.get(WEB_ROOT + prodResorts.urlBusca,
					{
						"flagRecomendado": destaque.flagRecomendado,
						"limit"				: destaque.limit
					}, 
					function(data) {
						$('.destaque ul span').remove();
						if (!data.error) {
							if (data.resorts.length == 0) {
								$("<span>Nenhum resort encontrado.</span>").appendTo('.resultadoBusca ul');
							} else {
								prodResorts.mostraResorts(data);
							}
						}
					},'json'
				)
			);
		});
	}
	
	,getResults : function()
	{
		this.cancelRequest();
		
//		$('div.pacResorts').show();
		$('div.pacResorts .destaque').hide();
		$('div.pacResorts ul').empty();
		$('div.pacResorts .destaque ul').empty();
		$('.totProdutos').empty();
		$('.paginas').empty();
		
		this.addRequest($.get(
			WEB_ROOT + this.urlBusca,
			{
				"page"			: this.page,
				"uf"			: this.uf
			}, 
			function(data) {
				if (!data.error) {
					if (data.resorts.length == 0) {
						alert = $("<span>Nenhum resort encontrado.</span>");
					} else {
						prodResorts.mostraResorts(data);
					}
				}
			},'json'
		));
	}
	
	,mostraResorts : function(data)
	{
		page = parseInt(data.page);
		totPages = parseInt(data.totPages);
		totResorts = parseInt(data.totResults);
		
		$('.totProdutos').text(data.totResorts+' resorts');
		
		if (page > 1) {
			$("<a>&laquo;Anterior | </a>")
				.attr('href', '#')
				.addClass('btAnterior')
				.click(function()
				{
					prodResorts.page = page-1;
					prodResorts.getResults();
					
					$(this).remove();
					return false;
				})
				.appendTo('.paginas');
		}
		
		if (totPages > 1) {
			$("<span> página "+page+" de "+totPages+" </span>").appendTo('.paginas');
		}
		
		if (page < totPages) {
			$("<a> | Proximo&raquo;</a>")
				.attr('href', '#')
				.addClass('btProximo')
				.click(function()	
				{
					prodResorts.page = page+1;
					prodResorts.getResults();
					
					$(this).remove();
					return false;
				})
				.appendTo('.paginas');
		}
		
		hasRecomendados = false;
		hasOutros = false;
		j = 0;
		
		$.each(data.resorts, function(i, item) {
			
			if (item.flagRecomendado) {
				tipo = 'resortsRecomendados';
				if (!hasRecomendados) {
					hasRecomendados = true;
					$('.resultBusca .'+tipo).show();
				}
			} else {
				tipo = 'outrosResorts';
				if (!hasOutros) {
					j = 0;
					hasOutros = true;
					$('.resultBusca .'+tipo).show();
				}
			}
			
			strClear = '';
			if ((!item.flagRecomendado && (j%2 == 0)) || (item.flagRecomendado && (j%3 == 0))) {
				//strClear = 'style="clear: left;"'; else strClear = "";
				$("<div style='clear: left;'></div>").appendTo('.resultBusca .'+tipo+' ul')
			}
			
			if (item.flagRecomendado) {
				 $('.resultBusca .'+tipo+' ul').append(
					'<li class="unit" '+strClear+'>'
					+'	<a href="'+item.link+'"><img src="'+item.foto+'" title="Saiba mais sobre o '+item.nome+'"></a>'
					+'	<a href="'+item.link+'"><h4>'+item.nome+'</h4></a>'
					+'	<h5>'+item.subtitulo+'</h5>'
					+'	<p class="dias">'+(item.num_noites > 0 ? item.num_noites+" noites" : "")+'</p>'
					+'	<div class="preco">'+(item.preco_isca > 0 ? 'a partir de R$ <b>'+item.preco_isca+'</b>' : "")+'</div>'
					+'</li>'
				)
			} else {
				 $('.resultBusca .'+tipo+' ul').append(
					'<li class="unit" '+strClear+'>'
					+'	<a href="'+item.link+'"><h4>'+item.nome+'</h4></a>'
					+'	<h5>'+item.subtitulo+'</h5>'
					+'</li>'
				)
			}
			j++;
		})
	}
	
	,changeUF : function(item) {
		this.page = 1;
		this.uf = $(item).val();
		this.getResults();
	}
};
