var ordem='';
var tipo_ordem='';
var linkTodosMapa='';
var pagina_sel='1';

if (pa!='s') {
	var filtro = {
		tipo: '',
		bairro: '',
		dorm: '',
		pg: pg,
		cid: cid,
		imob: imob,
		vi: vi,
		vf: vf
	};
}
var favorito_nao;
var favorito_sim;
var modo_listagem='m'; // Poder ser l -lista ou m - miniatura
var xml_cache;

$(document).ready(function(){
	if (readCookie('modo_visual')==null) {
		createCookie('modo_visual','m',7);
		$('#modo_listagem').html('<a href="javascript:void(0);" onclick="mudarVisualizacao(\'l\')"><img src="images/lista/modolista.png" alt="Mudar para o modo de exibição em lista"/></a>');
	} else if (readCookie('modo_visual')!='m') {
		createCookie('modo_visual','l',7);
		$('#modo_listagem').html('<a href="javascript:void(0);" onclick="mudarVisualizacao(\'m\')"><img src="images/lista/modocfoto.png" alt="Mudar para o modo de exibição de Miniaturas"/></a>');
	} else {
		createCookie('modo_visual','m',7);
		$('#modo_listagem').html('<a href="javascript:void(0);" onclick="mudarVisualizacao(\'l\')"><img src="images/lista/modolista.png" alt="Mudar para o modo de exibição em lista"/></a>');
	}
	
	init1();
});

function changeTipo() {
	$('option:first','#iDormitorios').attr('selected','selected');
	$('option:first','#iCidade').attr('selected','selected');
	init();
}

function init() {
	filtro.vi='';
	filtro.vf='';
	if (pa!='s') {
		filtro.tipo=$('#iTipoImovel :selected').val();
		filtro.bairro=$('#iBairro').val();
	}
	filtro.dorm=$('#iDormitorios :selected').val();
	if (!filtro.dorm) {
		filtro.dorm='';
	}
	filtro.cid=$('#iCidade :selected').val();
	if (!filtro.cid) {
		filtro.cid='';
	}
	
	getDormitorios();
	
	getCidades();
	
	getImoveis();
	
	getNumFavoritos();
}

function init1() {
	if (pa!='s') {
		filtro.tipo=$('#iTipoImovel :selected').val();
		filtro.bairro=$('#iBairro').val();
	}
	filtro.dorm=$('#iDormitorios :selected').val();
	if (!filtro.dorm) {
		filtro.dorm='';
	}
	
	getDormitorios();
	
	getCidades();
	
	getImoveis();
	
	getNumFavoritos();
}

function initCidade() {
	filtro.cid=$('#iCidade :selected').val();
	if (!filtro.cid) {
		filtro.cid='';
	}
	
	getCidades();
	
	getImoveis();
	
	getNumFavoritos();
}

function getDormitorios() {
	$('#iDormitorios option').each(function() {	
		$(this).remove();
	});
	
	$('#iDormitorios').append('<option value="">Todos</option>');
	
	if (pa!='s') {
		$.get("inc/xml/filtro_imoveis.asp", {pg:filtro.pg, t:filtro.tipo, b:filtro.bairro,cid:filtro.cid,imob:filtro.imob,vi: filtro.vi, vf: filtro.vf, a:aleatorio() },function(xml){
			$('dorm', xml).each(function() {
				dorm=$(this).text();
				if (dorm==filtro.dorm) {
					$('#iDormitorios').append('<option value="'+dorm+'" selected>'+dorm+'</option>');
				} else {
					$('#iDormitorios').append('<option value="'+dorm+'">'+dorm+'</option>');
				}
			});
		});
	} else {
		//Pesquisa Avançada
		$.get("inc/xml/filtro_imoveis.asp", {pg:filtro.pg, t:filtro.tipo, b:filtro.bairro,cid:filtro.cid,imob:filtro.imob,ref:filtro.ref, a:aleatorio() },function(xml){
			$('dorm', xml).each(function() {
				dorm=$(this).text();
				if (dorm==filtro.dorm) {
					$('#iDormitorios').append('<option value="'+dorm+'" selected>'+dorm+'</option>');
				} else {
					$('#iDormitorios').append('<option value="'+dorm+'">'+dorm+'</option>');
				}
			});
		});
	}
}

function getCidades() {
	$('#iCidade option').each(function() {	
		$(this).remove();
	});
	
	$('#iCidade').append('<option value="">Todas</option>');
	
	$.get("inc/xml/filtro_imoveis_cid.asp", {pg:filtro.pg, t:filtro.tipo, b:filtro.bairro, d: filtro.dorm, imob:filtro.imob,vi: filtro.vi, vf: filtro.vf, a:aleatorio() },function(xml){
		$('cidade', xml).each(function() {
			cid=$(this).text();
			if (cid==filtro.cid) {
				$('#iCidade').append('<option value="'+cid+'" selected>'+cid+'</option>');
			} else {
				$('#iCidade').append('<option value="'+cid+'">'+cid+'</option>');
			}
		});
	});
}

function mudarOrdem(o) {
	if (o==ordem) {
		if (tipo_ordem=='asc') {
			tipo_ordem='desc';
		} else {
			tipo_ordem='asc';
		}
	} else {
		tipo_ordem='asc';
	}
	ordem=o;
	getImoveis();
}

function getImoveis() {
	var mapa=0;
	
	$('#lista_imoveis').html('<center><img id="carregando" src="images/loader.gif" alt="Carregando"/></center>');
	
	modo_listagem=readCookie('modo_visual');
	
	if (pa!='s') {
		$.get('inc/xml/imoveis.asp', {pg:filtro.pg, t:filtro.tipo, b:filtro.bairro,cid:URLEncode(filtro.cid), d:filtro.dorm,imob:filtro.imob, co:ordem, to:tipo_ordem, ret: pagina_sel, vi: filtro.vi, vf: filtro.vf, a:aleatorio() },function(xml){
			var result='';
			var infs_pesquisa='';
			var infs_pesquisa_ini='';
			
			if (filtro.pg=='v') {
				infs_pesquisa_ini='Venda de ';
			} else {
				infs_pesquisa_ini='Locação de ';
			}
			
			$('inf_tipo', xml).each(function() {
				infs_pesquisa=infs_pesquisa_ini+'<span id="inf_tipo">'+$(this).text()+'</span>';
			});
			$('inf_cidade', xml).each(function() {
				infs_pesquisa+='<span id="inf_cidade">'+$(this).text()+'</span>';
			});
			
			$('#infs_pesquisa').html(infs_pesquisa);
			
			if (modo_listagem=='l') {
				result='<table class="tbImoveis"><thead>';
				result+='<tr><th class="tb_ref"><a href="javascript:void(0)" onclick="mudarOrdem(\'ref\')">Referência</a></th>';
				result+='<th class="tb_endereco"><a href="javascript:void(0)" onclick="mudarOrdem(\'end\')">Cidade</a></th>';
				result+='<th class="tb_bairro"><a href="javascript:void(0)" onclick="mudarOrdem(\'bairro\')">Bairro</a></th>';
				result+='<th class="tb_area" style="text-align:center;"><a href="javascript:void(0)" onclick="mudarOrdem(\'area_total\')">Área</a></th>';
				result+='<th class="tb_dorm" style="text-align:center;"><a href="javascript:void(0)" onclick="mudarOrdem(\'dormitorios\')">Dorm.</a></th>';
				result+='<th class="tb_valor" style="text-align:center;"><a href="javascript:void(0)" onclick="mudarOrdem(\'valor\')">Valor</a></th>';
				result+='<th class="tb_foto" style="text-align:center;">Foto</th>';				
				result+='<th class="tb_mapa">Mapa</th>';
				result+='<th class="tb_fav">Favorito</th></tr></thead><tbody>';
				result+='</tbody></table><table class="tbImoveis tbImoveisConteudo" border="0" cellspacing="0" cellpadding="0">';
			} else {
				result='<table id="tb_mini_imoveis"><tr>';
			}
			
			tratarErro(xml);
			x=0;
			$('imovel', xml).each(function() {
				imob=$(this).find('imob').text();
				ref=$(this).find('referencia').text();
				refnaimob=$(this).find('refnaimob').text();
				bairro=$(this).find('bairro').text();
				area=$(this).find('area').text();
				dorm=$(this).find('dorm').text();
				valor=$(this).find('valor').text();
				coordx=$(this).find('coordx').text();
				coordy=$(this).find('coordy').text();
				favorito=$(this).find('favorito').text();
				endereco=$(this).find('endereco').text();
				video='';
				foto=$(this).find('foto').text();
				fotothumb=$(this).find('foto').text();
				
				if (bairro=='') {
					bairro='&nbsp;';
				}
				
				if (foto=='images/lista/indisponivel.jpg') {
					foto='<img src="images/lista/photo_off.png"/>';
				} else {
					foto='<img src="images/lista/photo_on.png"/>';
				}
				
				if (filtro.pg=='v') {
					link='<a href="detalhes_ven.asp?imob='+imob+'&ref='+ref+'" target="_blank">';
				} else {
					link='<a href="detalhes_loc.asp?imob='+imob+'&ref='+ref+'" target="_blank">';
				}
				
				favorito_sim='<a href="javascript:void(0)" onclick="setFavorito(\''+imob+'\',\''+ref+'\',\''+filtro.pg+'\',\'del\',this)"><img src="images/lista/fav_on.png" /></a>';
				favorito_nao='<a href="javascript:void(0)" onclick="setFavorito(\''+imob+'\',\''+ref+'\',\''+filtro.pg+'\',\'add\',this)"><img src="images/lista/fav_off.png" alt="Add" /></a>';
				
				if (favorito=='s') {
					favorito='<div id="'+imob+ref+'">'+favorito_sim+'</div>';
				}
				else {
					favorito='<div id="'+imob+ref+'">'+favorito_nao+'</div>';
				}
				
				if (modo_listagem=='l') {			
					result+='<tr><td class="tb_ref">'+link+refnaimob+'</a></td>';
					result+='<td class="tb_endereco">'+link+endereco+'</a></td>';
					result+='<td class="tb_bairro">'+link+bairro+'</a></td>';
					result+='<td class="tb_area">'+link+area+'</a></td>';
					result+='<td class="tb_dorm">'+link+dorm+'</a></td>';
					result+='<td class="tb_valor">'+link+valor+'</a></td>';
					result+='<td class="tb_foto" style="text-align:center;">'+link+foto+'</a></td>';
					if (coordx!='' && coordy!='' && coordx!='0' && coordy!='0') {
						result+='<td class="tb_mapa"><a href="javascript:void(0);" onclick="window.open(\'ver_mapa.asp?x='+coordx+'&y='+coordy+'\', \'Mapa\', \'height=520, width=870\');"><img src="images/lista/mapa_on.png" alt="ver mapa"/></a></td>';
						mapa=1;
					} else {
						result+='<td class="tb_mapa"><img src="images/lista/mapa_off.png" alt="sem mapa"/></td>';
					}
					result+='<td class="tb_fav" style="text-align:center;">'+favorito+'</td></tr>';
					
				} else {
					if (x % 4==0) {
						result+='</tr><tr>'
					}
					result+='<td>'
					if (coordx!='' && coordy!='') {
						mapa=1;
					}
					result+='<div class="mini_imovel">';
					result+='<p class="mini_bairro">'+link+bairro+'</a></p>';
					result+='<center>'+link+'<img src="'+fotothumb+'" class="foto_mini"/></a></center>';
					result+='<p>'+link+area+'</a></p>';
					result+='<p>'+link+dorm+' dorms</a></p>';
					result+='<p class="mini_valor">'+link+valor+'</a></p>';					
					result+='</div></td>';
				}
				x=x+1;
			});			
			
			if (modo_listagem=='l') {
				result+='</tbody></table>';
			} else {
				result+='</tr></table>';
			}
			
			$('#lista_imoveis').html(result);
			
			if (mapa==1) {
				linkTodosMapa='ver_mapa.asp?pg='+filtro.pg+'&t='+filtro.tipo+'&b='+filtro.bairro+'&cid='+filtro.cid+'&d='+filtro.dorm+'&imob='+filtro.imob;
				
				$('#todosnomapa').html('<a href="javascript:void(0);" onclick="window.open(\''+linkTodosMapa+'\', \'Mapa\', \'height=520, width=870\');" class="txt_sem_format"><img src="images/lista/vertodosnomapa.png" alt="ver imóveis no mapa"/></a>');
			}
			else {
				$('#todosnomapa').html('');
			}
			
			$('root', xml).each(function() {
				total_imoveis=$(this).find('total_imoveis').text();
				pagina=$(this).find('pagina').text();
				
				paginacao(pagina,total_imoveis);
			});
		});
		
	} else {
		//Pesquisa Avançada
		$.get('inc/xml/imoveis.asp', {uf:filtro.uf, end:filtro.end, m2i:filtro.m2i, m2f:filtro.m2f, vi:filtro.vi, vf:filtro.vf, ref:filtro.ref, pg:filtro.pg, t:filtro.tipo, b:filtro.bairro,cid:filtro.cid, di:filtro.di, df:filtro.df, imob:filtro.imob, co:ordem, to:tipo_ordem, ret: pagina_sel, a:aleatorio() },function(xml){
			var result='';
			
			if (modo_listagem=='l') {
				result='<table class="tbImoveis"><thead>';
				result+='<tr><th class="tb_ref"><img src="images/lista/titulo_esquerda.gif"/><a href="javascript:void(0)" onclick="mudarOrdem(\'ref\')">Referência</a></th>';
				result+='<th class="tb_endereco"><a href="javascript:void(0)" onclick="mudarOrdem(\'end\')">Cidade</a></th>';
				result+='<th class="tb_bairro"><a href="javascript:void(0)" onclick="mudarOrdem(\'bairro\')">Bairro</a></th>';
				result+='<th class="tb_area" style="text-align:center;"><a href="javascript:void(0)" onclick="mudarOrdem(\'area_total\')">Área</a></th>';
				result+='<th class="tb_dorm" style="text-align:center;"><a href="javascript:void(0)" onclick="mudarOrdem(\'dormitorios\')">Dorm.</a></th>';
				result+='<th class="tb_valor" style="text-align:center;"><a href="javascript:void(0)" onclick="mudarOrdem(\'valor\')">Valor</a></th>';
				result+='<th class="tb_foto" style="text-align:center;">Foto</th>';				
				result+='<th class="tb_mapa">Mapa</th>';
				result+='<th class="tb_fav"><img src="images/lista/titulo_direita.gif" style="float:right;"/>Favorito</th></tr></thead><tbody>';
				result+='</tbody></table><table class="tbImoveis tbImoveisConteudo" border="0" cellspacing="0" cellpadding="0">';
			} else {
				result='<table id="tb_mini_imoveis"><tr>';
			}
			
			tratarErro(xml);
			x=0;
			$('imovel', xml).each(function() {			
				imob=$(this).find('imob').text();
				ref=$(this).find('referencia').text();
				refnaimob=$(this).find('refnaimob').text();
				bairro=$(this).find('bairro').text();
				area=$(this).find('area').text();
				dorm=$(this).find('dorm').text();
				valor=$(this).find('valor').text();
				coordx=$(this).find('coordx').text();
				coordy=$(this).find('coordy').text();
				favorito=$(this).find('favorito').text();
				endereco=$(this).find('endereco').text();
				video='';
				foto=$(this).find('foto').text();
				fotothumb=$(this).find('foto').text();
				
				if (foto=='images/lista/indisponivel.jpg') {
					foto='<img src="images/lista/photo_off.png"/>';
				} else {
					foto='<img src="images/lista/photo_on.png"/>';
				}
				
				if (filtro.pg=='v') {
					link='<a href="detalhes_ven.asp?imob='+imob+'&ref='+ref+'">';
				} else {
					link='<a href="detalhes_loc.asp?imob='+imob+'&ref='+ref+'">';
				}
				
				favorito_sim='<a href="javascript:void(0)" onclick="setFavorito(\''+imob+'\',\''+ref+'\',\''+filtro.pg+'\',\'del\',this)"><img src="images/lista/fav_on.png" /></a>';
				favorito_nao='<a href="javascript:void(0)" onclick="setFavorito(\''+imob+'\',\''+ref+'\',\''+filtro.pg+'\',\'add\',this)"><img src="images/lista/fav_off.png" alt="Add" /></a>';
				
				if (favorito=='s') {
					favorito='<div id="'+imob+ref+'">'+favorito_sim+'</div>';
				}
				else {
					favorito='<div id="'+imob+ref+'">'+favorito_nao+'</div>';
				}
				
				if (modo_listagem=='l') {
					result+='<tr><td class="tb_ref">'+link+refnaimob+'</a></td>';
					result+='<td class="tb_endereco">'+link+endereco+'</a></td>';
					result+='<td class="tb_bairro">'+link+bairro+'</a></td>';
					result+='<td class="tb_area">'+link+area+'</a></td>';
					result+='<td class="tb_dorm">'+link+dorm+'</a></td>';
					result+='<td class="tb_valor">'+link+valor+'</a></td>';
					result+='<td class="tb_foto" style="text-align:center;">'+foto+'</td>';
					if (coordx!='' && coordy!='' && coordx!='0' && coordy!='0') {
						result+='<td class="tb_mapa"><a href="javascript:void(0);" onclick="window.open(\'ver_mapa.asp?x='+coordx+'&y='+coordy+'\', \'Mapa\', \'height=520, width=870\');"><img src="images/lista/map_on.png" alt="ver mapa"/></a></td>';
						mapa=1;
					} else {
						result+='<td class="tb_mapa"><img src="images/lista/map_off.png" alt="sem mapa"/></td>';
					}
					result+='<td class="tb_fav" style="text-align:center;">'+favorito+'</td></tr>';
				} else {
					if (x % 4==0) {
						result+='</tr><tr>'
					}
					result+='<td>'
					if (coordx!='' && coordy!='') {
						mapa=1;
					}
					result+='<div class="mini_imovel">';
					result+='<p class="mini_bairro">'+link+bairro+'</a></p>';
					result+='<center>'+link+'<img src="'+fotothumb+'" class="foto_mini"/></a></center>';
					result+='<p>'+link+area+'</a></p>';
					result+='<p>'+link+dorm+' dorms</a></p>';
					result+='<p class="mini_valor">'+link+valor+'</a></p>';					
					result+='</div></td>';
				}
				x=x+1;
			});
			
			if (modo_listagem=='l') {
				result+='</tbody></table>';
			} else {
				result+='</tr></table>';
			}
			$('#lista_imoveis').html(result);
			
			if (mapa==1) {
				linkTodosMapa='ver_mapa.asp?pg='+filtro.pg+'&t='+filtro.tipo+'&b='+filtro.bairro+'&cid='+filtro.cid+'&d='+filtro.dorm+'&imob='+filtro.imob;
				
				$('#todosnomapa').html('<a href="javascript:void(0);" onclick="window.open(\''+linkTodosMapa+'\', \'Mapa\', \'height=520, width=870\');" class="txt_sem_format"><img src="images/lista/vertodosnomapa.png" alt="ver imóveis no mapa"/></a>');
			}
			else {
				$('#todosnomapa').html('');
			}
			
			$('root', xml).each(function() {
				total_imoveis=$(this).find('total_imoveis').text();
				pagina=$(this).find('pagina').text();
				
				paginacao(pagina,total_imoveis);
			});
		});
	}
}

function tratarErro(xml) {
	$('erro', xml).each(function() {
		if ($(this).text()=='True') {
			$('#mensagens').html('Nenhum imóvel encontrado!');
			window.setTimeout(function() {$('#mensagens').html('');}, 5000);
		}
	});
	return false;
}

function setFavorito(imob,ref,pg,opt,obj) {
	$.post('inc/xml/favoritos.asp', {pg:pg, imob:imob, ref:ref, opt:opt},function(f){
		getImoveis();
	});
}

function getNumFavoritos() {
	$.get('inc/xml/favoritos.asp', {opt:'quant'}, function(xml) {
		$('favoritos', xml).each(function() {
			v=$(this).find('venda').text();
			l=$(this).find('locacao').text();
			
			$('#qtd_fav_v').html(v);
			$('#qtd_fav_l').html(l);
		});
	});
}

function mudarVisualizacao(visual) {
	if (visual=='l') {
		modo_listagem='l';
		$('#modo_listagem').html('<a href="javascript:void(0);" onclick="mudarVisualizacao(\'m\')"><img src="images/lista/modocfoto.png" alt="Mudar para o modo de exibição de Miniaturas"/></a>');
	} else {		
		modo_listagem='m';
		$('#modo_listagem').html('<a href="javascript:void(0);" onclick="mudarVisualizacao(\'l\')"><img src="images/lista/modolista.png" alt="Mudar para o modo de exibição em lista"/></a>');
	}
	createCookie('modo_visual',modo_listagem,7);
	getImoveis();
}

function paginacao(pg_atual,total) {
	var ret='';
	t=parseInt(total)/100;
	for (i=1;i<parseInt(t)+2;i++) {
		if (i==pg_atual) {
			ret=ret+'<li class="pagina_sel">'+i+'</li>';
		} else {
			ret=ret+'<li><a href="javascript:void(0);" onclick="mudarPaginacao(\''+i+'\')">'+i+'</a></li>';
		}
	}
	if (ret!='') {
		ret='<ul>'+ret+'</ul>'
	} else {
		ret='<ul><li class="pagina_sel">1</li></ul>'
	}
	$('#paginacao').html(ret);
}

function mudarPaginacao(pag) {
	pagina_sel=pag;
	getImoveis();
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
