var Search =
{
	SEPage			: false,
	firstLoaded		: false,
	campaign		: false, //Campanhas
	arCampaign		: [], //Lista de ids dos Empreendimentos da campanha atual
	hashValues      : "",
	
	cidadeChecked	: false,
	tipoChecked		: false,
	dormsChecked	: false,
	bairroChecked	: false,
	etapaChecked	: false,
	precoChecked	: false,
	estruturaChecked : false,
	metragemChecked	: false,
	lazerChecked	: false,
	
	checkedQuery    : "",
	statusChecked   : "unchecked", //check/uncheck
	lastChecked     : null,
	
	estado			: "",
	queryCidade		: [],
	queryTipo		: [],
	queryDorms		: [],
	queryBairro		: [],
	queryEtapa		: [],
	queryPreco		: [],
	queryEstrutura	: [],
	queryMetragem	: [],
	queryLazer		: [],
	
	currentState	: 0,
	
	arColors		: new Array(),
	xml				: null,
	
	arListIds		: new Array(),
	matchedTotal	: 0,
	loading         : false, //prevines overloading
	
	/** @config order */
	querySearch     : "", //to configure order
	precoOrientc    : 0, //0 - null, 1 - DESC, 2 - ASC
	dormsOrientc    : 0, //same here
	metragemOrientc : 0, //same here
	etapaOrientc    : 0, //same here
	
	testeAjax		: 2,
	teste			: null,
	
	init	: function()
	{
		this.arColors[4]			= "pronto-para-morar";
		this.arColors[3]			= "em-obras";
		this.arColors[2]			= "lancamento";
		this.arColors[1]			= "breve-lancamento";
		
		
		
		this.hashValues = window.location.hash.split(TopSearch.strDivisor);
		
		if(this.hashValues[0] != "") //estado
		{
			if(jQuery('#cEstado').val() == "")
			{
				jQuery('#uf-filter option').each(function() {
					if( jQuery(this).text().toLowerCase() == Search.hashValues[0].substring(1) )
					{
						jQuery('#cEstado').val(jQuery(this).val());
						return false;
					}
					return true;
				})
			}
		}
		
		if(jQuery('#cEstado').val() == "")
		{
			jQuery('#cEstado').val(jQuery('#uf-filter').val());
		}
		
		this.estado			= jQuery('#cEstado').val();
		this.queryCidade	= jQuery('#cCidade').val();
		this.queryBairro	= jQuery('#cBairro').val();
		this.queryTipo		= jQuery('#cTipo').val();
		this.queryEtapa		= jQuery('#cEtapa').val();
		this.queryPreco		= jQuery('#cPreco').val();
		
		this.queryDorms		= jQuery('#cDorms').val();
		this.queryMetragem	= jQuery('#cMetragem').val();
		this.queryLazer		= jQuery('#cLazer').val();
		
		Search.currentState = parseInt( jQuery('#cEstado').val() );
		
		//bind dos botões de envio de comparação
		jQuery('.sel-compare').each(function() {
			jQuery(this).bind('click',function() {
				if(Search.C_numItens <= 2)
				{
					alert('Selecione 3 itens.');
					return false;
				}
				
				jQuery('#form-compare').submit();
				return true;
			});
		});
		
		
		/* Tira o sublinhado de todos os itens de ordenação sempre que clicar em um deles, menos do atual. */
		$(".order-by").find("a").click(function(){
			$(".order-by").find("a").each(function(){
				$("#ordering-etapa").css('background-image', 'url(_images/faixa-busca-etapa.png)');
				$("#ordering-metragem").css('background-image', 'url(_images/faixa-busca-metro.png)');
				$("#ordering-dorms").css('background-image', 'url(_images/faixa-busca-dorm.png)');
				$("#ordering-preco").css('background-image', 'url(_images/faixa-busca-preco.png)');
			})
		});
		
		// ao iniciar a página, deixa a ordenação de etapa sublinhada, pois é o filtro inicial.
		jQuery('#ordering-etapa').css('background-image', 'url(_images/faixa-busca-etapa-c.png)');
		
		//configura os itens de ordenação
		jQuery('#ordering-preco').bind('click',function() {
			Search.querySearch = "preco";
			Search.clearOrdering();
			
			if(Search.precoOrientc == 0 || Search.precoOrientc == 2)
			{
				Search.precoOrientc = 1;
				$(this).css('background-image', 'url(_images/faixa-busca-preco-c.png)');
			}
			else
			{
				Search.precoOrientc = 2;
				$(this).css('background-image', 'url(_images/faixa-busca-preco-b.png)');
			}
				
			Search.load();
		});
		
		jQuery('#ordering-dorms').bind('click',function() {
			Search.querySearch = "dorms";
			Search.clearOrdering();
			
			if(!Search.dormsOrientc || Search.dormsOrientc == 2)
			{
				Search.dormsOrientc = 1;
				$(this).css('background-image', 'url(_images/faixa-busca-dorm-c.png)');
			}
			else
			{
				Search.dormsOrientc = 2;
				$(this).css('background-image', 'url(_images/faixa-busca-dorm-b.png)');
			}
			
			Search.load();
		});
		
		jQuery('#ordering-metragem').bind('click',function(){
			Search.querySearch = "metragem";
			Search.clearOrdering();
			
			if(!Search.metragemOrientc || Search.metragemOrientc == 2)
			{
				Search.metragemOrientc = 1;
				$(this).css('background-image', 'url(_images/faixa-busca-metro-c.png)');
			}
			else
			{
				Search.metragemOrientc = 2;
				$(this).css('background-image', 'url(_images/faixa-busca-metro-b.png)');
			}
			
			Search.load();
		});
		
		jQuery('#ordering-etapa').bind('click',function() {
			Search.querySearch = "etapa";
			Search.clearOrdering();
			
			if(!Search.etapaOrientc || Search.etapaOrientc == 2)
			{
				Search.etapaOrientc = 1;
				$(this).css('background-image', 'url(_images/faixa-busca-etapa-c.png)');
			}
			else
			{
				Search.etapaOrientc = 2;
				$(this).css('background-image', 'url(_images/faixa-busca-etapa-b.png)');
			}
			Search.load();
		});
		
	},
	
	/**
	* Alimenta o array de busca principal
	* Utiliza como parametros
	* 	1) os itens selecionados na busca do topo ou
	* 	2) o arCampaign, caso venha de alguma campanha
	*/
	setValues	: function()
	{
		var listItens = jQuery( this.xml ).find('cidade').find('item');
		
		if( this.cidadeChecked == true )
		{
			this.arListIds = new Array(); //zera array principal
		}
		
		/** @cidade */
		if(jQuery('#cCidade').val() == "") //nenhuma cidade selecionada
		{
			jQuery(listItens).each(function(e) {
				Search.addUniqueValues( jQuery(this).text() );
			});
		}
		else //por cidade
		{
			var found  = false;
			var arVals = jQuery('#cCidade').val().split(",");
			var arItens= [];
			
			for(w = 0; w < TopSearch.arCidades[TopSearch.curState].length; w++)
			{
				for( y = 0; y < arVals.length;y++ )
				{
					if( arVals[y] == TopSearch.arCidades[TopSearch.curState][w]['id'] )
					{
						found = true;
						arItens.push( w );
					}
				}
			}
			
			if(found)
			{
				for( a = 0; a < arItens.length; a++ )
				{
					Search.addUniqueValues( TopSearch.arCidades[TopSearch.curState][arItens[a]]['list'] );
				}
			}
		}
		
		/** @bairro */
		if(jQuery('#cBairro').val() != "")
		{
			var ib;
			var arCidades = jQuery('#cCidade').val().split(",");
			var arBairros = jQuery('#cBairro').val().split(",");
			var arItens   = [];
			
			for( b in TopSearch.arBairro )
			{
				if( typeof(TopSearch.arBairro[b]) != 'function' )
				{
					for(c = 0; c < TopSearch.arBairro[b].length; c++)
					{
						//filtra pelo estado atual
						for(k = 0; k < arBairros.length; k++)
						{
							if( TopSearch.arBairro[b][c]['idBairro'] == arBairros[k] )
							{
								var tmyA = TopSearch.arBairro[b][c]['list'].split(',');
								for( y = 0;y < tmyA.length;y++ ) arItens.push(tmyA[y]);
							}
						}
					}
				}
			}
			Search.arListIds = new Array();
			Search.addUniqueValues( arItens.toString() );
		}
		
		/** @tipo */
		if(jQuery('#cTipo').val() != "")
		{
			//Search.arListIds = new Array();
			var arVals      = jQuery('#cTipo').val().split(",");
			var arItens     = [];
			
			for( y = 0; y < arVals.length;y++ )
			{
				t_b = TopSearch.arTipo[TopSearch.curState][arVals[y]].split(",");
				for(cb = 0; cb < t_b.length; cb++)
				{
					arItens.push( t_b[cb] );
				}
			}
			Search.matchUniqueValues( arItens.toString() );
		}
		
		/** @dorms */
		if(jQuery('#cDorms').val() != "")
		{
			var arVals      = jQuery('#cDorms') .val().split(",");
			var arItens     = [];
			
			for( y = 0; y < arVals.length;y++ )
			{
				if (TopSearch.arDorms[TopSearch.curState][arVals[y]] != undefined){
					t_b = TopSearch.arDorms[TopSearch.curState][arVals[y]].split(",");
					for(cb = 0; cb < t_b.length; cb++)
					{
						arItens.push( t_b[cb] );
					}
				}
			}
			Search.matchUniqueValues( arItens.toString() );
		}
		
		
		/** @metragem */
		if(jQuery('#cMetragem').val() != "")
		{
			var arVals      = jQuery('#cMetragem').val().split(",");
			var arItens     = [];
			
			for( y = 0; y < arVals.length;y++ )
			{
				if (TopSearch.arTamanho[TopSearch.curState][arVals[y]] != undefined){
					t_b = TopSearch.arTamanho[TopSearch.curState][arVals[y]].split(",");
					for(cb = 0; cb < t_b.length; cb++)
					{
						arItens.push( t_b[cb] );
					}
				}
			}
			Search.matchUniqueValues( arItens.toString() );
		}
		
		/** @etapa */
		
		if(jQuery('#cEtapa').val() != "")
		{
			var arVals      = jQuery('#cEtapa').val().split(",");
			var arItens     = [];
			
			
			
			for( y = 0; y < arVals.length;y++ )
			{
				if (TopSearch.arEtapa[TopSearch.curState][arVals[y]] != undefined){
					t_b = TopSearch.arEtapa[TopSearch.curState][arVals[y]].split(",");
					for(cb = 0; cb < t_b.length; cb++)
					{
						arItens.push( t_b[cb] );
						
						
					}
				}	
			}

			Search.matchUniqueValues( arItens.toString() );			
		}
		
		 /** @lazer */
		if(jQuery('#cLazer').val() != "")
		{
			var arVals      = jQuery('#cLazer').val().split(",");
			var arItens     = [];
			
			for( y = 0; y < arVals.length;y++ )
			{
				if (TopSearch.arLazer[TopSearch.curState][arVals[y]] != undefined){
					t_b = TopSearch.arLazer[TopSearch.curState][arVals[y]].split(",");
					for(cb = 0; cb < t_b.length; cb++)
					{
						arItens.push( t_b[cb] );
					}
				}
			}
			Search.matchUniqueValues( arItens.toString() );
		}
		
		/** @lazer */
		if(jQuery('#cPreco').val() != "")
		{
			var arVals      = jQuery('#cPreco').val().split(",");
			var arItens     = [];
			
			for( y = 0; y < arVals.length;y++ )
			{
				if (TopSearch.arPreco[TopSearch.curState][arVals[y]] != undefined){
					t_b = TopSearch.arPreco[TopSearch.curState][arVals[y]].toString().split(",");
					for(cb = 0; cb < t_b.length; cb++)
					{
						arItens.push( t_b[cb] );
					}
				}	
			}
			if( Search.arListIds.length > 0 )
			{
				Search.matchUniqueValues( arItens.toString() );
			}
		}
		
		//display da quantidade de resultados
		jQuery('#length-matching').text(Search.arListIds.length);
		
		/** query de busca */
		this.queryCidade	= jQuery('#cCidade').val();
		this.queryBairro	= jQuery('#cBairro').val();
		this.queryTipo		= jQuery('#cTipo').val();
		this.queryEtapa		= jQuery('#cEtapa').val();
		this.queryPreco		= jQuery('#cPreco').val();
		
		this.queryDorms		= jQuery('#cDorms').val();
		this.queryMetragem	= jQuery('#cMetragem').val();
		this.queryLazer		= jQuery('#cLazer').val();
		
		Search.updateURL();
	},
	
	/**
	* Alimenta os campos de formulário que fazem os filtros
	*/
	feedItens	: function()
	{
		var strNode;
		var arQueue     = Search.checkedQuery.split(',');
		var lastChecked = arQueue[arQueue.length-1];
		var hasItens;
		
		/** @cidade */
		//se não foi a ultima selecionada, muda as informações
		if(this.lastChecked != 'cidade')
		{
			var cityList = jQuery(this.xml).find('cidade').find('item');
			var checkedList = jQuery('#cCidade').val().split(',');
			hasItens = false;
			
			jQuery('#cidade-list > ul').empty();
			
			jQuery(cityList).each(function(i) {
				if( Search.getMatchingTotal( jQuery(this).text() ) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					strNode = '<li>\n';
					strNode += '	<input id="cidade-'+i+'"'+strChecked+' type="checkbox" name="cidade[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="cidade-'+i+'">'+ jQuery(this).attr('label') +' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					jQuery('#cidade-list > ul').append( strNode );
					
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#cidade-list').css('display','none');
			else
				jQuery('#cidade-list').css('display','block');
		}
		
		/** @tipo */
		if( this.lastChecked != 'tipo' )
		{
			var typeList = jQuery(this.xml).find('tipo').find('item');
			var checkedList = jQuery('#cTipo').val().split(',');
			hasItens = false;
			
			jQuery('#tipo-list > ul').empty();
			
			jQuery(typeList).each(function(i) {
				if( Search.getMatchingTotal( jQuery(this).text() ) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					
					strNode = '<li>\n';
					strNode += '	<input id="tipo-'+i+'"'+strChecked+' type="checkbox" name="tipo[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="tipo-'+i+'">'+ jQuery(this).attr('label') +' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					
					jQuery('#tipo-list > ul').append( strNode );
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#tipo-list').css('display','none');
			else
				jQuery('#tipo-list').css('display','block');
		}
		
		/** @dormitórios */
		if( this.lastChecked != 'dorms' )
		{
			var dormsList = jQuery(this.xml).find('dormitorios').find('item');
			var checkedList = jQuery('#cDorms').val().split(',');
			hasItens = false;
			
			jQuery('#dorms-list > ul').empty();
			
			jQuery(dormsList).each(function(i) {
					
				if( Search.getMatchingTotal(jQuery(this).text()) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					
					strNode = '<li>\n';
					strNode += '	<input id="numDorms-'+i+'"'+strChecked+' type="checkbox" name="numDorms[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="numDorms-'+i+'">'+ jQuery(this).attr('label') +' Quartos <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					
					jQuery('#dorms-list > ul').append( strNode );
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#dorms-list').css('display','none');
			else
				jQuery('#dorms-list').css('display','block');
		}
		
		
		/** @metragem */
		if( this.lastChecked != 'tamanho' )
		{
			var tamanhoList = jQuery(this.xml).find('tamanho').find('item');
			var checkedList = jQuery('#cMetragem').val().split(',');
			hasItens = false;
			
			jQuery('#metragem-list > ul').empty();
			
			jQuery(tamanhoList).each(function(i) {
				
				metragem = jQuery(this).attr('label').split(' ');
				metragem = metragem[0] + 'm<sup>2</sup> ' + metragem[1] + ' ' + metragem[2] + 'm<sup>2</sup>';
				
				if( Search.getMatchingTotal(jQuery(this).text()) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					
					strNode = '<li>\n';
					strNode += '	<input id="metragem-'+i+'"'+strChecked+' type="checkbox" name="metragem[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="metragem-'+i+'">'+ metragem +' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					
					jQuery('#metragem-list > ul').append( strNode );
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#metragem-list').css('display','none');
			else
				jQuery('#metragem-list').css('display','block');
		}
		
		
		/** @etapa */
		if( this.lastChecked != 'etapa' )
		{
			var stageList = jQuery(this.xml).find('etapa').find('item');
			var checkedList = jQuery('#cEtapa').val().split(',');
			jQuery('#estagio-list > ul').empty();
			hasItens = false;
			
			jQuery(stageList).each(function(i) {
				
				if( Search.getMatchingTotal(jQuery(this).text()) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					
					strNode = '<li>\n';
					strNode += '	<input id="estagio-'+i+'"'+strChecked+' type="checkbox" name="estagio[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="estagio-'+i+'">'+ jQuery(this).attr('label') +' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					
					jQuery('#estagio-list > ul').append( strNode );
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#estagio-list').css('display','none');
			else
				jQuery('#estagio-list').css('display','block');
		}
		
		
		/** @preco */
		if( this.lastChecked != 'preco' )
		{
			var priceList = jQuery(this.xml).find('preco').find('item');
			var checkedList = jQuery('#cPreco').val().split(',');
			hasItens = false;
			
			jQuery('#preco-list > ul').empty();
			
			jQuery(priceList).each(function(i) {
				
				if( Search.getMatchingTotal(jQuery(this).text()) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					
					strNode = '<li>\n';
					strNode += '	<input id="preco-'+i+'"'+strChecked+' type="checkbox" name="preco[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="preco-'+i+'">'+ jQuery(this).attr('label') +' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					
					jQuery('#preco-list > ul').append( strNode );
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#preco-list').css('display','none');
			else
				jQuery('#preco-list').css('display','block');
		}
		
		/** @lazer */
		if( Search.lazerChecked == false )
		{
			var lazerList = jQuery(Search.xml).find('lazer').find('item');
			var checkedList = jQuery('#cLazer').val().split(',');
			hasItens = false;
			
			jQuery('#lazer-list > ul').empty();
			
			jQuery(lazerList).each(function(i) {
				if( Search.getMatchingTotal(jQuery(this).text()) > 0 )
				{
					strChecked = ""
					if(checkedList.in_array(jQuery(this).attr('id')))
					{
						strChecked = ' checked="checked"'
					}
					
					strNode = '<li>\n';
					strNode += '	<input id="lazer-'+i+'"'+strChecked+' type="checkbox" name="lazer[]" value="'+ jQuery(this).attr('id') +'" />\n';
					strNode += '	<label for="lazer-'+i+'">' + jQuery(this).attr('label') + ' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
					strNode += '</li>\n';
					
					jQuery('#lazer-list > ul').append( strNode );
					hasItens = true;
				}
			});
			if(!hasItens)
				jQuery('#lazer-list').css('display','none');
			else
				jQuery('#lazer-list').css('display','block');
		}
		
		
		/** @bairro */
		if( this.lastChecked != 'bairro' )
		{
			var name, districtList = jQuery(this.xml).find('bairro').find('item');
			var checkedList = jQuery('#cBairro').val().split(',');
			hasItens = false;
			
			jQuery('#bairro-list > ul').empty();
			
			jQuery(districtList).each(function(i) {
				
				if( jQuery(this).text() != "" )
				{
					if( jQuery(this).attr('label') != "" )
					{
						name = jQuery(this).attr('label');
						
						if( Search.getMatchingTotal(jQuery(this).text()) > 0 )
						{
							strChecked = "";
							if(checkedList.in_array(jQuery(this).attr('idBairro')))
							{
								strChecked = ' checked="checked"'
							}
					
							strNode = '<li>\n';
							strNode += '	<input id="bairro-'+i+'"'+strChecked+' type="checkbox" name="bairro[]" value="'+ jQuery(this).attr('idBairro') +'" />\n';
							strNode += '	<label for="bairro-'+i+'">'+ name +' <strong>('+ Search.getTotal( jQuery(this).text() ) +')</strong></label>\n';
							strNode += '</li>\n';
							
							jQuery('#bairro-list > ul').append( strNode );
							hasItens = true;
						}
					}
				}
			});
			if(!hasItens)
				jQuery('#bairro-list').css('display','none');
			else
				jQuery('#bairro-list').css('display','block');
		}
		
		Search.setEventListeners();
		Search.querySearch = "";
		Search.clearOrdering();
		
		
		
		if( TopSearch.arListIDs.length > 0 )
		{
			Search.firstLoaded = true;
			Search.load();
		}
		else
		{
			if(Search.arListIds.length > 0)
			{
				Search.firstLoaded = true;
				Search.load();
			}
		}
	},
	
	updateURL	: function()
	{
		var tmpURL="", c=0,estado="", cidade="", bairro="", tipo="", etapa="", preco="", urlTo="";
		urlTo = "#" + TopSearch.getStateValue();
		
		/** @bairro */
		tmpURL = "";
		if( this.queryBairro != "" )
		{
			arValues = this.queryBairro.toString().split(",");
			
			for(j=0;j<arValues.length;j++)
			{
				jQuery(Search.xml).find("bairro").find("item").each(function() {
					if(arValues[j] == jQuery(this).attr("idBairro"))
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr("label").toString().toLowerCase() ) + TopSearch.strConcatenacao;
					}
				});
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		/** @cidade */
		var arValues = [],w;
		var Uf		 = TopSearch.curState;
		
		if( this.queryCidade != "" )
		{
			arValues = this.queryCidade.toString().split(',');
			
			for(j=0;j<arValues.length;j++)
			{
				for(w = 0; w < TopSearch.arCidades[Uf].length; w++)
				{
					if( arValues[j] ==  TopSearch.arCidades[Uf][w]['id'])
					{
						tmpURL += TopSearch.normalize(TopSearch.arCidades[Uf][w]['label'].toString().toLowerCase()) + TopSearch.strConcatenacao;
					}
				}
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		
		
		/** @tipo */
		tmpURL = "";
		if( this.queryTipo != "" )
		{
			arValues = this.queryTipo.toString().split(",");
			
			for(j=0;j < arValues.length;j++)
			{
				jQuery(Search.xml).find('tipo').find('item').each(function() {
					if( arValues[j] == parseInt(jQuery(this).attr('id')))
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr('label').toString().toLowerCase() ) + TopSearch.strConcatenacao;
					}
				})
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		/** @etapa */
		tmpURL = "";
		if( this.queryEtapa != "" )
		{
			arValues = this.queryEtapa.toString().split(",");
			
			for(j = 0; j < arValues.length; j++)
			{
				jQuery(Search.xml).find('etapa').find('item').each(function() {
					if( arValues[j] == parseInt(jQuery(this).attr("id")) )
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr("label").toString().toLowerCase() ) + TopSearch.strConcatenacao;
					}
				});
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		/** @preco */
		tmpURL = "";
		if( this.queryPreco != "" )
		{
			arValues = this.queryPreco.toString().split(",");
			
			for(j=0; j < arValues.length; j++)
			{
				jQuery(Search.xml).find('preco').find('item').each(function() {
					if(arValues[j] == jQuery(this).attr('id'))
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr('label').toString().toLowerCase() ) + TopSearch.strConcatenacao;
					}
				});
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		/***
		 * URLs adicionais, não fazem parte da busca,
		 * somente tem aqui, nos filtros laterais
		 */
		
		/** @dormitorios */
		tmpURL = "";
		if( this.queryDorms != "" )
		{
			arValues = this.queryDorms.toString().split(",");
			
			for(j=0; j < arValues.length; j++)
			{
				jQuery(Search.xml).find('dormitorios').find('item').each(function() {
					if(arValues[j] == jQuery(this).attr('id'))
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr('label').toString().toLowerCase() ) + "-dormitorios" + TopSearch.strConcatenacao;
					}
				});
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		/** @tamanho */
		tmpURL = "";
		if( this.queryMetragem != "" )
		{
			arValues = this.queryMetragem.toString().split(",");
			
			for(j=0; j < arValues.length; j++)
			{
				jQuery(Search.xml).find('tamanho').find('item').each(function() {
					if(arValues[j] == jQuery(this).attr('id'))
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr('label').toString().toLowerCase() ) + TopSearch.strConcatenacao;
					}
				});
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		/** @lazer */
		tmpURL = "";
		if( this.queryLazer != "" )
		{
			arValues = this.queryLazer.toString().split(",");
			
			for(j=0; j < arValues.length; j++)
			{
				jQuery(Search.xml).find('lazer').find('item').each(function() {
					if(arValues[j] == jQuery(this).attr('id'))
					{
						tmpURL += TopSearch.normalize( jQuery(this).attr('label').toString().toLowerCase() ) + TopSearch.strConcatenacao;
					}
				});
			}
			urlTo += TopSearch.strDivisor + tmpURL.substring(0,tmpURL.length-1);
		}
		else
			urlTo += TopSearch.strDivisor;
		
		for(u = urlTo.length; u >= 0; u--)
		{
			if(urlTo.charAt(u) == '')
				continue;
			
			if(urlTo.charAt(u) != TopSearch.strDivisor)
				break;
			else
				urlTo = urlTo.substring(0,urlTo.length-1)
		}
		
		window.location.hash = urlTo;
		return false;
	},
	
	stripCount	: function(v)
	{
		var sp = v.toLowerCase().match(/[áâãàäéêèëíîìïóôõòöúûùüçA-Za-z0-9\s]{0,}/);
		return sp;
	},
	
	setEventListeners : function()
	{
		jQuery('#form-filter input').each(function() {
			
			if(jQuery(this).attr('name') == "tipo[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByType( this );
				});
			}
			
			if(jQuery(this).attr('name') == "cidade[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByCity( this );
				});
			}
			
			if(jQuery(this).attr('name') == "numDorms[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByDorms( this );
				});
			}
			
			if(jQuery(this).attr('name') == "metragem[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByTamanho( this );
				});
			}
			
			if(jQuery(this).attr('name') == "estagio[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByEstagio( this );
				});
			}
			
			if(jQuery(this).attr('name') == "lazer[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByLazer( this );
				});
			}
			
			if(jQuery(this).attr('name') == "bairro[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByBairro( this );
				});
			}
			
			if(jQuery(this).attr('name') == "preco[]")
			{
				jQuery(this).unbind('change');
				jQuery(this).bind('change',function() {
					Search.filterByPreco( this );
				});
			}
		})
	},
	
	//adiciona os filtros à lista de itens marcados
	addQueueCheck : function(filter)
	{
		var f=false, ar=Search.checkedQuery.split(",");
		for(i=0;i<ar.length;i++)
		{
			if(filter == ar[i])
			{
				f = true;
				break;
			}
		}
		if(!f)
		{
			if(Search.checkedQuery=="")
				Search.checkedQuery = filter;
			else
				Search.checkedQuery += "," + filter;
		}
	},
	//remove os filtros à lista de itens marcados
	remQueueCheck : function(filter)
	{
		var ar=Search.checkedQuery.split(",");
		for(i=0;i<ar.length;i++)
		{
			if(filter==ar[i])
			{
				ar.splice(i,1);
				break;
			}
		}
		
		Search.checkedQuery=ar.toString();
	},
	
	/**
	* Filtrando e adicionando paginação
	*/
	filterByType	: function( obInput )
	{
		this.lastChecked = 'tipo';
		if( obInput.checked == true )
		{
			this.tipoChecked = true;
			if( jQuery('#cTipo').val() == "" )
				finalValue = obInput.value
			else
				finalValue = jQuery('#cTipo').val() + "," + obInput.value;
			
			jQuery('#cTipo').val( finalValue );
			Search.addQueueCheck('tipo');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cTipo').val().split(",");
			for(q=0;q<arValues.length;q++)
			{
				if(arValues[q] == obInput.value)
				{
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				this.tipoChecked = false;
				Search.remQueueCheck('tipo');
			}
			jQuery('#cTipo').val( arValues.toString() );
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByCity	: function( obInput )
	{
		if( obInput.checked == true )
		{
			this.cidadeChecked = true;
			this.lastChecked = 'cidade';
			if( jQuery('#cCidade').val() == "" )
				finalValue = obInput.value
			else
				finalValue = jQuery('#cCidade').val()+","+obInput.value;
			
			jQuery('#cCidade').val( finalValue );
			Search.addQueueCheck('cidade');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cCidade').val().split(",");
			for(q=0;q<arValues.length;q++) {
				if(arValues[q] == obInput.value) { 
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				this.cidadeChecked = false;
				Search.remQueueCheck('cidade');
			}
			jQuery('#cCidade').val( arValues.toString() );
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByDorms : function( obInput )
	{
		if( obInput.checked == true )
		{
			this.dormsChecked = true;
			this.lastChecked = 'dorms';
			if( jQuery('#cDorms').val() == "" )
				finalValue = obInput.value
			else
			   finalValue = jQuery('#cDorms').val()+","+obInput.value;
			
			jQuery('#cDorms').val( finalValue );
			Search.addQueueCheck('dorms');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cDorms').val().split(",");
			for(q=0;q<arValues.length;q++) {
				if(arValues[q] == obInput.value) { 
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				this.dormsChecked = false;
				Search.remQueueCheck('dorms');
			}
			jQuery('#cDorms').val( arValues.toString() );
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByTamanho : function( obInput )
	{
		if( obInput.checked == true )
		{
			this.metragemChecked = true;
			this.lastChecked = 'tamanho';
			if( jQuery('#cMetragem').val() == "" )
				finalValue = obInput.value
			else
			   finalValue = jQuery('#cMetragem').val() + "," + obInput.value;
			
			jQuery('#cMetragem').val( finalValue );
			Search.addQueueCheck('tamanho');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cMetragem').val().split(",");
			for(q=0;q<arValues.length;q++) {
				if(arValues[q] == obInput.value) { 
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				this.metragemChecked = false;
				Search.addQueueCheck('tamanho');
			}
			jQuery('#cMetragem').val(arValues.toString());
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByEstagio : function( obInput )
	{
		if( obInput.checked == true )
		{
			this.etapaChecked = true;
			this.lastChecked = 'etapa';
			if( jQuery('#cEtapa').val() == "" )
				finalValue = obInput.value
			else
			   finalValue = jQuery('#cEtapa').val() + "," + obInput.value;
			
			jQuery('#cEtapa').val( finalValue );
			Search.addQueueCheck('etapa');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cEtapa').val().split(",");
			for(q=0;q<arValues.length;q++) {
				if(arValues[q] == obInput.value) {
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" ){
				this.etapaChecked = false;
				Search.remQueueCheck('etapa');
			}
			jQuery('#cEtapa').val(arValues.toString());
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByLazer : function( obInput )
	{
		if( obInput.checked == true )
		{
			Search.lazerChecked = true;
			this.lastChecked = 'lazer';
			if( jQuery('#cLazer').val() == "" )
				finalValue = obInput.value
			else
			   finalValue = jQuery('#cLazer').val() + "," + obInput.value;
			
			jQuery('#cLazer').val( finalValue );
			Search.addQueueCheck('lazer');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cLazer').val().split(",");
			for(q=0;q<arValues.length;q++) {
				if(arValues[q] == obInput.value) {
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				Search.lazerChecked = false;
				Search.remQueueCheck('lazer');
			}
			jQuery('#cLazer').val(arValues.toString());
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByPreco : function( obInput )
	{
		if( obInput.checked == true )
		{
			Search.precoChecked = true;
			this.lastChecked = 'preco';
			if( jQuery('#cPreco').val() == "" )
				finalValue = obInput.value
			else
			   finalValue = jQuery('#cPreco').val() + "," + obInput.value;
			
			jQuery('#cPreco').val( finalValue );
			Search.addQueueCheck('preco');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cPreco').val().split(",");
			for(q=0;q<arValues.length;q++) {
				if(arValues[q] == obInput.value) {
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				Search.precoChecked = false;
				Search.remQueueCheck('preco');
			}
			jQuery('#cPreco').val(arValues.toString());
			Search.statusChecked = 'unchecked';
		}
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	filterByBairro : function( obInput )
	{
		if( obInput.checked == true )
		{
			Search.bairroChecked = true;
			this.lastChecked = 'bairro';
			if( jQuery('#cBairro').val() == "" )
				finalValue = obInput.value
			else
				finalValue = jQuery('#cBairro').val() + "," + obInput.value;
			
			jQuery('#cBairro').val( finalValue );
			
			Search.addQueueCheck('bairro');
			Search.statusChecked = 'checked';
		}
		else
		{
			var arValues = jQuery('#cBairro').val().split(",");
			for(q=0;q<arValues.length;q++)
			{
				if(arValues[q] == obInput.value)
				{
					break;
				}
			}
			arValues.splice(q,1);
			
			if( arValues.toString() == "" )
			{
				Search.bairroChecked = false;
				Search.remQueueCheck('bairro');
			}
			jQuery('#cBairro').val(arValues.toString());
			Search.statusChecked = 'unchecked';
		}
		
		Paginator.offset = 1;
		
		Search.setValues();
		Search.feedItens();
		
		this.load();
	},
	
	getTotal: function(strValues)
	{
		if( this.matchedTotal != 0 )
			return this.matchedTotal;
		else
			return strValues.split(',').length;
	},
	
	getMatchingTotal : function( strValues )
	{
		var new_ArrValues	= new Array();
		var temp_Values		= strValues.split(',');
		
		for(q = 0; q < temp_Values.length; q++)
		{
			new_ArrValues.push( temp_Values[q] );
		}
		
		Search.matchedTotal = this.arListIds.matchCount( new_ArrValues );
		return Search.matchedTotal;
	},
	
	/**
	* Carregando via ajax, os resultados de acordo com os filtros até aqui utilizados
	*/
	load	: function(setItem)
	{
		if(Search.loading == false)
		{
			Search.loading = true;
			if(setItem==undefined) setItem = false;
			
			
			var strQuery = "";
			var orientacao="";
			
			if(Search.querySearch != "")
			{
				switch(Search.querySearch)
				{
					case "preco":
						orientacao = (Search.precoOrientc == 1) ? "ud" : "du";
						break;
					case "dorms":
						orientacao = (Search.dormsOrientc == 1) ? "ud" : "du";
						break;
					case "metragem":
						orientacao = (Search.metragemOrientc == 1) ? "ud" : "du";
						break;
					case "etapa":
						orientacao = (Search.etapaOrientc == 1) ? "ud" : "du";
						break;
				}
				strQuery = '&order=' + Search.querySearch + '&orientacao=' + orientacao;
			} else
			{
				Search.querySearch = "etapa";
				Search.etapaOrientc = 1;
				orientacao = "ud";
				strQuery = '&order=' + Search.querySearch + '&orientacao=' + orientacao;
			}
			
			
			
			var strIDs = (Search.arListIds.toString() != "" ? Search.arListIds.toString() : "0");
			
			if(strIDs == "0")
			{
				Search.setValues()
				Search.feedItens();
				
				strIDs = (Search.arListIds.toString() != "" ? Search.arListIds.toString() : "0");
			}
			
			// SE VIER POR CAMPANHA, FIZ UMA GAMBIARRA PRA AJEITAR A BUSCA
			if(Search.campaign == true){
				
				strIDsCampanha 	= strIDs.split(',');
				strIDs 			= array_unique( strIDsCampanha );
				
				var kstrIDs = '';
				
				for(k in strIDs){
					for(achaCampanha = 0; achaCampanha < Search.arCampaign.length; achaCampanha++)
					{
						if(Search.arCampaign[achaCampanha] == strIDs[k] ) {
							kstrIDs += strIDs[k] + ',';
						}
					}					
				}
				
				kstrIDs = kstrIDs.slice(0,-1);
				
				strIDs = kstrIDs;
				
			}
			
			$('html, body').animate({
				scrollTop: $(".nav").offset().top
			}, 500);
			
			//console.info('Loading');
			
			jQuery.ajax({
				url		: "_services/busca.php",
				cache	: false,
				type	: 'POST',
				data	: 'list_ids=' + strIDs + '&page=' + Paginator.offset + strQuery,
				dataType: 'xml',
				error	: function()
				{
				},
				success	: function(data, request, settings)
				{
					Search.testeAjax = 1;
					Paginator.data_results = jQuery(data).find('searchList');
					Paginator.show(setItem);
					
					Search.loading = false;
					Search.setFilterEvents();
					
					if( !setItem )
						Search.clearComparacao();
				}
			});
			
			Search.teste = setInterval("mostraStatus()",500);
		}
	},
	
	/**
	* Funções do compare
	*/
	C_numItens  : 0,
	C_arSelected: [],
	C_arLabels  : [],
	
	setFilterEvents : function()
	{
		jQuery('#form-compare input').each(function() {
			if( jQuery(this).attr("name") == 'idEmpreendimento[]' )
			{
				jQuery( this ).bind(
					'change',
					function() {
						Search.setComparacao( this );
					}
				)
			}
		});
	},
	setComparacao : function( obCH )
	{
		if( obCH.checked == true )
		{
			if( Search.C_numItens < 3 )
			{
				Search.C_arSelected.push( obCH.value );
				Search.C_numItens++;
				
				Search.C_arLabels.push( jQuery(obCH).parent().parent().find('.title-corretora').text() );
				
				jQuery('#empreendimentoList').val( Search.C_arSelected.toString() );
				
				if( Search.C_numItens == 3 )
				{
					if (confirm('Deseja realizar a comparação?'))
						jQuery('#form-compare').submit();
				}
				
				var strLabels="";
				for( w=0; w < Search.C_arLabels.length; w++ )
				{
					strLabels = strLabels.concat((w==0?"":", "),Search.C_arLabels[w]);
				}
				jQuery('#compare-list').html( '<strong>' + strLabels + '</strong>' );
			}
			else
			{
				alert('Selecione no máximo 3 empreendimentos.');
				obCH.checked = false;
			}
		}
		else
		{
			Search.C_numItens--;
			for(cy = 0; cy < Search.C_arSelected.length;cy++)
				if( obCH.value == Search.C_arSelected[cy] )
					break;
			
			if( Search.C_arSelected[cy] )
			{
				Search.C_arLabels.splice  (cy,1);
				Search.C_arSelected.splice(cy,1);
				
				jQuery('#empreendimentoList').val( Search.C_arSelected.toString() );
				
				strLabels="";
				for( w=0; w < Search.C_arLabels.length; w++ )
				{
					strLabels = strLabels.concat((w==0?"":", "),Search.C_arLabels[w]);
				}
				jQuery('#compare-list').html( '<strong>' + strLabels + '</strong>' );
			}
		}
	},
	clearComparacao : function()
	{
		Search.C_numItens = 0;
		for( c = Search.C_arSelected.length; c >= 0; c--)
		{
			Search.C_arLabels.splice(c,1);
			Search.C_arSelected.splice(c,1);
		}
		jQuery('#empreendimentoList').val("");
	},
	
	/**
	* Adiciona ao array principal, os novos valores, certificando que eles ainda
	* não existem
	*/
	addUniqueValues : function(arValues)
	{
		var vw = new Array();
		if(typeof(arValues) == "string")
		{
			arValues = arValues.split(",");
		}
		
		for(y in arValues)
			vw.push( arValues[y] );
		
		if( (this.arListIds instanceof Array) )
		{
			this.arListIds.uniquePush(vw);
		}
	},
	
	/**
	* Casa o array principal com o novo array critério passado no parâmetro
	*/
	matchUniqueValues : function( arValues )
	{
		if(Search.campaign == false) {
			if(Search.arListIds.length > 0)
			{
				var cA = Search.arListIds.intersect(arValues.split(","));
				Search.arListIds = new Array();
				Search.arListIds = cA;
			}
		}
		else {
			if(Search.arListIds.length > 0)
			{
				var cA = Search.arListIds.intersect(arValues.split(","));
				arcA = new Array();
				for(i = 0; i < cA.length; i++){
					for(k in Search.arCampaign){
						if( cA[i] == Search.arCampaign[k] ){
							arcA.push(cA[i]);
						}
					}
				}
				
				arcA = array_unique(arcA);
				cA = new Array();
				for(k in arcA) {
					cA.push( arcA[k] )
				}
				
				Search.arListIds = new Array();
				Search.arListIds = cA;
			}
		}
	},
	
	clearOrdering : function()
	{
		if(Search.querySearch != 'preco')    Search.precoOrientc = 0;
		if(Search.querySearch != 'dorms')    Search.dormsOrientc = 0;
		if(Search.querySearch != 'metragem') Search.metragemOrientc = 0;
		if(Search.querySearch != 'etapa')    Search.etapaOrientc = 0;
	}
}

var Paginator =
{
	qtdeResults : 0, /** quantidade dessa página */
	qtdeTotal   : 0, /** quantidade total da busca */
	qtdePPage   : 0, /** quantidade de itens por página */
	arColors    : Search.arColors,
	data_results: null, /** xml com os resultados */
	
	num_Pages   : 0,
	offset      : 1,
	
	show  : function(setItem)
	{
		if(setItem==undefined) setItem = false;
		this.qtdeTotal   = jQuery(this.data_results).attr('searchtotal');
		this.qtdeResults = parseInt(jQuery(this.data_results).attr('total'));
		this.qtdePPage   = jQuery(this.data_results).attr('itenspage');
		
		/**
		* Inicia os itens da paginação
		*/
		this.printItens(setItem);
	},
	
	printItens : function(setItem)
	{
		if(setItem==undefined) setItem = false;
		var node, result;
		
		jQuery('#content-busca').empty();
		
		for(w = 0; w < this.qtdeResults; w++)
		{
			result = jQuery(this.data_results).find('item').get(w);
			
			id      = jQuery(result).attr('idEmpreendimento');
			nome    = jQuery(result).children('nome').text();
			nomeRe  = jQuery(result).children('nomeRe').text();
			tipo  	= jQuery(result).children('tipo').text();
			etapa   = parseInt( jQuery(result).children('idEtapa').text() );
			idClasse   = parseInt( jQuery(result).children('idClasse').text() );
			image   = jQuery(result).children('imagem').text();
			idAntigo  = parseInt(jQuery(result).children('idAntigo').text());
			estado  = jQuery(result).children('estado').text().toLowerCase();
			spliter = image.split('/');
			
			if(tipo == "Sala Comercial"){
				salascomerciais = 'Salas Comerciais ';
			} else {
				salascomerciais = '';
			}
			
			if(spliter[spliter.length-1] == '')
				image = 'img/img-indisponivel.jpg';
			
			cidade				= jQuery(result).children('cidade').text();
			cidadeRe			= jQuery(result).children('cidadeRe').text();
			bairro				= jQuery(result).children('bairro').text();
			bairroRe			= jQuery(result).children('bairroRe').text();
			percentualVenda		= jQuery(result).children('percentualVenda').text();
			
			strPerc = "";
			if( percentualVenda == "100" )
			{
				strPerc = '<div class="logo-100cento-vendidos-cor-'+idClasse+'" ><small>100%vendido</small>';
			}
			
			
			
			
			minDorms = jQuery(result).children('minDorms').text();
			maxDorms = jQuery(result).children('maxDorms').text();
			qtdSuite = jQuery(result).children('qtdSuite').text();
			descUso = jQuery(result).children('descUso').text();
			
			var suites = "";
			var pluralSuites = qtdSuite > 1 ? "Suítes" : "Suíte";
			if(qtdSuite > 0) suites = "("+qtdSuite+" "+pluralSuites+")";
			
			if(maxDorms == qtdSuite && minDorms == qtdSuite){
				legDorms = "Suíte";
			}else{
				legDorms = descUso;
			}
			
			var s = "";
			if(maxDorms > 1) s = "s";
			
			dorms   = "";
			if(minDorms != "" && minDorms != "0")
			{
				dorms = '' + minDorms;
				if( maxDorms != "0" )
				{
					if(minDorms != maxDorms)
					{
						dorms += " e " + jQuery(result).children('maxDorms').text();
					}
				}
				dorms += " " + legDorms+s+" "+suites;
			}
			
			
			
			
			minTamanho = jQuery(result).children('tamanhoMinimo').text();
			maxTamanho = jQuery(result).children('tamanhoMaximo').text();
			
			minTamanho = Math.floor(minTamanho);
			maxTamanho = Math.floor(maxTamanho);
			
			var tamanho = "";
			if( minTamanho != "0" && maxTamanho != "0" )
			{
				tamanho = minTamanho;
				if(minTamanho != maxTamanho)
				{
					tamanho += ' a ' + Math.floor(jQuery(result).children('tamanhoMaximo').text());
				}
				tamanho += 'm<sup>2</sup>\n';
			}
			
			preco = Number.format_number(jQuery(result).children('preco').text(),2,",",".");
			var precoEmpreendimento = "";
			if( preco != "0,00" )
			{
				precoEmpreendimento = '<span class="box-apartirde">A partir de </span><strong><big class="big-font" style="color: #ED1C24 !important">R$ ' + preco + '</big></strong>\n';
			}
			
			mensais = Number.format_number(jQuery(result).children('mensais').text(),2,",",".");
			var mensaisEmpreendimento = "";
			if( mensais != "0,00" )
			{
				mensaisEmpreendimento = '<span class="box-mensais-apartirde">Mensais a partir de</span> <big class="big-font" style="color: #ED1C24 !important">R$ ' + mensais + '</big>\n';
			}
			
			node = '<tr class="item">\n';
			node += '    <td class="col-check-compare">\n';
			node += '        <input type="checkbox" name="idEmpreendimento[]" value="' + id + '" />\n';
			node += '    </td>\n';
			node += '    <td class="col-thumb">\n';
			node += '        <div class="img-imovel-container">\n';
			node += '            <img src="'+image+'" alt="imagem" class="imovel-thumb" />\n';
			node += '             <div class="mask-state  png"><span class="faixa-' + Paginator.arColors[etapa] + '">' + Paginator.arColors[etapa] + '</span></div>\n';
			node += '            <a href="' + cidadeRe + "/" + bairroRe + "/" + nomeRe + '">\n';
			node += '                <div class="round-borders png"><div class="ie-thumbs-min">Imagem</div></div>\n';
			node += '            </a>\n';
			node += '        </div>\n';
			node += '    </td>\n';
			node += '    <td class="col-discript" onClick="document.location = \'' + cidadeRe + '/' + bairroRe + '/' + nomeRe + '\';">\n';
			node += '        <dl class="data-imoveis">\n';
			node += '            <dt>\n';
			node += '               <h2 class="title-local empreendimento-cor-'+idClasse+'">' + bairro + '</h2>\n';
			node += '                <h3 class="title-corretora empreendimento-cor-'+idClasse+'">' + nome + '</h3>\n';
			node += '                <address>' + cidade + '</address>' + strPerc + '</div>\n';
			node += '            </dt>\n';
			node += '            <dd>\n';
			node += '                ' + dorms
			node += '            </dd>\n';
			node += '            <dd>\n';
			node += '                ' + salascomerciais + tamanho;
			node += '            </dd>\n';
			node += '            <dd>\n';
			node +=            		precoEmpreendimento;
			node += '            </dd>\n';
			node += '            <dd>\n';
			node +=            		mensaisEmpreendimento;
			node += '            </dd>\n';
			node += '        </dl>\n';
			node += '    </td>\n';
			node += '    <td class="col-buttons">\n';
			node += '        <a href="javascript:;" rel="nofollow" href="javascript:;" onclick="openInteracao(\'interacaocomcorretor\',\''+nome+'\','+idAntigo+',\''+estado+'\',\'\');">\n';
			node += '            <img src="_images/bt-fale-corretor-empreedimento-cor-' + idClasse +'.jpg" alt="fale com o corretor" title="" class="bt-fale-corretor png" />\n';
			node += '        </a>\n';
			node += '        <a href="' + cidadeRe + "/" + bairroRe + "/" + nomeRe + '" rel="nofollow">\n';
			node += '            <img src="_images/bt-saibamais-empreendimento-cor-' + idClasse + '.jpg" alt="saiba mais sobre esse imóvel" title="" class="bt-saiba-mais png" />\n';
			node += '        </a>\n';
			node += '    </td>\n';
			node += '</tr>\n';
			
			jQuery('#content-busca').append( node );
		}
		
		jQuery('#content-busca > .item:last').removeClass('item');
		if(!setItem)
			this.printNavigation();
	},
	
	printNavigation : function()
	{
		var link;
		jQuery('.search-paginator').empty();
		
		if( this.qtdeTotal > this.qtdeResults )
		{
			this.num_Pages = Math.ceil(this.qtdeTotal / this.qtdePPage);
			
			for(w = 1; w <= this.num_Pages; w++)
			{
				if( w == this.offset )
				{
					appendText = '<li>' + w + '</li>\n';
				}
				else
				{
					appendText = '<li><a href="javascript:void(0);">' + w + '</a></li>\n';
				}
				
				jQuery(appendText).children('a').unbind('click');
				
				jQuery('.search-paginator').append(appendText);
				
				jQuery('.search-paginator').each(function(e) {
					if( jQuery(this).find('li:last > a').text() != "" )
					{
						link = jQuery(this).find('li:last > a');
						
						/** index do item em questao, tanto de cima, como o de baixo */
						link.get(0).index = w;
						
						jQuery(link).bind('click', function() {
							Paginator.setItem(this);
						});
					}
				});
			}
			
			jQuery('.search-paginator').each(function() {
				jQuery(this).find('li:last').addClass('list-last-iten');
			});
			
			jQuery('.search-paginator').append('<li class="arrows foward"><a href="javascript:;">Avançar</a></li>');
			jQuery('.search-paginator').each(function(e) {
				if( jQuery(this).find('li:last > a').text() != "" )
				{
					link = jQuery(this).find('li:last > a');
					jQuery(link).bind(
						'click', function()
						{
							Paginator.next(this);
						}
					)
				}
			});
			
			jQuery('.search-paginator').prepend('<li class="arrows back"><a href="javascript:;">Voltar</a></li>');
			jQuery('.search-paginator').each(function(e) {
				if( jQuery(this).find('li:first > a').text() != "" )
				{
					link = jQuery(this).find('li:first > a');
					jQuery(link).bind(
						'click', function()
						{
							Paginator.previous(this);
						}
					)
				}
			});
		}
	},
	
	setItem : function(ob)
	{
		//muda o conteudo do item de só texto para o link
		jQuery('.search-paginator').each(function() {
			link = jQuery(this).find('li').eq(Paginator.offset);
			
			link.html('<a href="javascript:;">' + Paginator.offset + '</a>');
			
			jQuery(this).find('li').eq(Paginator.offset).find('a').each(function() {
				
				this.index = Paginator.offset;
				
				jQuery(this).bind('click', function() {
					Paginator.setItem( this );
				});
			})
		});
		
		//faz o inverso com o item clicado, muda de link para texto
		jQuery('.search-paginator').each(function() {
			link = jQuery(this).find('li').eq(ob.index);
			link.html( ob.index );
		});
		
		Paginator.offset = ob.index;
		
		if( Paginator.offset == 1 )
		{
			jQuery('.search-paginator').find('.back').hide();
		}
		else
		{
			jQuery('.search-paginator').find('.back').css('display','block');
		}
		
		if( Paginator.offset < Paginator.num_Pages )
		{
			jQuery('.search-paginator').find('.foward').show();
		}
		else
		{
			jQuery('.search-paginator').find('.foward').hide();
		}
		
		//por fim, carrega o xml de itens e mostra o conteúdo da busca
		Search.load(true);
	},
	
	next : function(ob)
	{
		//Paginator.offset++;
		
		//setItem
		jQuery(jQuery(ob).parent().parent().find('li').eq(Paginator.offset+1)).children('a').trigger('click');
		
		//show the inverse way
		if( jQuery('.search-paginator').find('.back').css('display') == 'none' || jQuery('.search-paginator').find('.back').css('display') == undefined )
		{
			jQuery('.search-paginator').find('.back').show();
		}
		
		/** ultimo item */
		if( Paginator.offset == Paginator.num_Pages )
		{
			jQuery('.search-paginator').find('.foward').hide();
		}
	},
	
	previous : function(ob)
	{
		//Paginator.offset--;
		
		//setItem
		jQuery(jQuery(ob).parent().parent().find('li').eq(Paginator.offset-1)).children('a').trigger('click');
		
		//show the inverse way
		if( jQuery('.search-paginator').find('.forward').css('display') == 'none' || jQuery('.search-paginator').find('.forward').css('display') == undefined )
		{
			jQuery('.search-paginator').find('li:last').show();
		}
		
		/** primeiro item */
		if( Paginator.offset == 1 )
		{
			jQuery('.search-paginator').find('.back').hide();
		}
	}
}


/**
* @param v (Array)
* @description inserts an array elements in the current array, excluding matched itens
*/
Array.prototype.uniquePush = function(v)
{
	var t, i, to_insert;
	for(t in v)
	{
		if( typeof(v[t]) != 'function' )
		{
			if(parseInt(v[t]))
			{
				value		= parseInt( v[t] );
				to_insert	= true;
				
				for(i = 0; i < this.length; i++)
				{
					if( this[i] == value )
					{
						to_insert = false;
						break;
					}
				}
				
				if(to_insert)
					this.push(v[t]);
			}
		}
	}
	return this;
}

/**
 * @description Casa um array com outro. Tendo pelo menos um item que coincida, retorna verdadeiro
 * @param A (Array)
 */
Array.prototype.matchCount = function(A)
{
	var MA = new Array();
	
	for(w = 0; w < this.length; w++)
	{
		for(y = 0; y < A.length; y++)
		{
			if( A[y] == this[w] )
				MA.push( A[y] );
		}
	}
	return MA.length;
}

/**
* @description Procura os elementos do array B (param) dentro do array objeto (this) e retorno novo arrays com os elementos encontrados
* @returm Novo Array dos valores achados
*/
Array.prototype.intersect = function(B)
{
	var MA = new Array();
	for(w=0;w<this.length;w++)
	{
		for(y=0;y<B.length;y++)
		{
			if(B[y] == this[w])
				MA.push(B[y]);
		}
	}
	return MA;
}

/**
* @description Searchs a given value in a array
* @param valor
* @param strict (Matches the type to)
*/
Array.prototype.in_array = function(value,strict)
{
	strict = !!strict;
	for(w=0;w<this.length;w++)
	{
		if(!strict)
		{
			if(this[w] == value)
				return true
		}
		else
		{
			if(this[w] === value)
				return true
		}
	}
	return false;
}

/**
 * @description Format Number from http://phpjs.org functions
 * http://phpjs.org/functions/number_format:481
 */
Number.format_number = function(number, decimals, dec_point, thousands_sep)
{
	var n = !isFinite(+number) ? 0 : +number,
		prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
		sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
		dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
		s = '',
		toFixedFix = function (n, prec) {
			var k = Math.pow(10, prec);
			return '' + Math.round(n * k) / k;
		};
	// Fix for IE parseFloat(0.55).toFixed(0) = 0;
	s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
	if (s[0].length > 3)
	{
		s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
	}
	if ((s[1] || '').length < prec)
	{
		s[1] = s[1] || '';
		s[1] += new Array(prec - s[1].length + 1).join('0');
	}
	return s.join(dec);
}

function array_unique (inputArr) {	
	
    var key = '', tmp_arr2 = {}, val = '';
 
    var __array_search = function (needle, haystack) {
        var fkey = '';
        for (fkey in haystack) {
            if (haystack.hasOwnProperty(fkey)) {
                if ((haystack[fkey] + '') === (needle + '')) {
                    return fkey;
                }
            }
        }
        return false;
    };
	 
    for (key in inputArr) {
        if (inputArr.hasOwnProperty(key)) {
            val = inputArr[key];
            if (false === __array_search(val, tmp_arr2)) {
                tmp_arr2[key] = val;
            }
        }
    }
 
    return tmp_arr2;

}

function mostraStatus(){
	
	if(Search.testeAjax == 1) {
		//console.info('OK');
		clearInterval(Search.teste);
	}
	else
	{
		//console.info('Entrou no item 2');
		Search.init();
	}
}



