var siteroot="";var srp={ht:0,ct:0,rg:0,pl:0,pn:0,ds:0,da:0,nm:0,page:0,ns:[],fc:[],di:0,trn:0,rn:0,la:0,pmi:0,pma:0,sort:0,dir:0,hc:0,mode:'list',x:1,bounds:0,poi:[],maptype:0};var fsrp={ht:0,ct:0,rg:0,pl:0,pn:0,ds:0,da:0,nm:0,page:0,rn:0,la:0,pmi:0,pma:0};var orgsrp=oclone(srp);var orgfsrp=oclone(fsrp);var lastdd='';var moveListener=0;$(function(){if(sitesection=="search"){jQuery.history.init(HistoryPageLoad,{unescape:true});}})
function openSaveSearch(){$('#qtip-blanket').remove();$('.qtip').remove();$('<div id="qtip-blanket">').css({position:'absolute',top:0,left:0,height:$(document).height(),width:'100%',opacity:0.7,backgroundColor:'#ffffff',zIndex:5000}).appendTo(document.body).hide();$(".btn_save").qtip({content:{title:{text:txt_name_search,button:txt_close_window},text:'',url:"ajax/save_search"},position:{target:$(window),corner:'center',adjust:{scroll:true}},show:{when:false,ready:true,solo:true,effect:{length:0}},hide:false,style:{width:{max:700,min:300},padding:'10px',border:{width:5,radius:10,color:'#a9e3f8'},title:{background:'#d8f0f8',color:'#000000','font-size':11},'font-size':11},api:{beforeShow:function(){$('#qtip-blanket').fadeIn(this.options.show.effect.length);},beforeHide:function(){$('#qtip-blanket').fadeOut(this.options.hide.effect.length);}}});}
function saveSearch(){nm=$("#sr_name").val();if(nm==''){alert('Please chose a name');}else{s_url=siteroot+"ajax/save_sr";s_params="sale="+sale+"&params="+$.toJSON(params)+"&nm="+nm;$.ajax({type:"POST",url:s_url,data:s_params,success:saveSearchResult});}}
function deleteSearch(id){s_url="ajax/saved_search_page";s_params="del="+id;$.ajax({type:"POST",url:s_url,data:s_params,success:displaySavedSearchResult});}
function delSaved(){var houses=[];$('.savchk:checked').each(function(){houses.push(this.id);});if(houses.length==0)return;res=houses.join('_');deleteSearch(res);}
function displaySavedSearchResult(data){jdata=$.evalJSON(data);$("#savcount").html("("+jdata.count+")");if(jdata.count==0){$(".savcount").hide();}
doSearch(srp,false);}
function hideTips(){$('.stooltip').hide();return false;}
function saveSearchResult(data){$("#savcount").html("("+data+")");$(".savcount").show();$sr=$.cookie.get('s');$(".btn_save").qtip('hide');$(".btn_save").qtip('destroy');if($sr==null){$('#savcount').qtip({content:{text:$('#savcount').attr('tooltip'),title:{text:$('#savcount').attr('title'),button:$('#savcount').attr('close')}},position:{corner:{target:'bottomMiddle',tooltip:'topRight'},adjust:{scroll:true,screen:true,resize:true}},show:{when:false,ready:true,solo:true},hide:false,style:{border:{width:3,radius:5,color:'#a9e3f8'},title:{background:'#d8f0f8',color:'#000000','font-size':11},padding:10,'font-size':12,tip:true}});}else{alert(txt_s_saved);}
$.cookie.set('s',"1",{expires:0,path:'/'});}
function HistoryPageLoad(hash){if(!hash){hash="";}
if(hash==""){doSearch(orgsrp,false);}else{decodeuri(hash);}}
function decodeuri(uri){srp=oclone(orgsrp);s_url=siteroot+"ajax/decode_uri";s_params="uri="+uri;$.ajax({type:"POST",url:s_url,data:s_params,success:decodeResult});}
function decodeResult(data){try{result=$.evalJSON(data);}catch(e){alert("decodeResult "+data);}
srp=oclone(orgsrp);for(key in result){srp[key]=result[key];}
doSearch(srp,false);}
function doSearchMap(){showLoading();$.each($.fn.qtip.interfaces,function(i,curValue){if(curValue&&curValue.status&&curValue.status.rendered){curValue.hide();}});params=oclone(srp);ptypes=poi.split('');params['poi']=ptypes;params['sethistory']=true;s_url=siteroot+"ajax/search";zoom=map.getZoom();s_params="sale="+sale+"&zoom="+zoom+"&mapsearch=1&params="+$.toJSON(params);$.ajax({type:"POST",url:s_url,data:s_params,success:searchResult});}
function setURL(data){try{result=$.evalJSON(data);}catch(e){alert("decodeResult "+data);}
url=result['uri'];if(result['sale']){window.location=base_href+search_surl+"/"+search_sale_surl+"/#"+url;}else{window.location=base_href+search_surl+"/#"+url;}}
function doSearch(obj,sethistory){if(sitesection=="search"){showLoading();params=oclone(obj);params['sethistory']=sethistory;s_url=siteroot+"ajax/search";s_params="sale="+sale+"&params="+$.toJSON(params);$.ajax({type:"POST",url:s_url,data:s_params,success:searchResult});}else{params=oclone(obj);s_url=siteroot+"ajax/encode_uri";s_params="sale="+sale+"&params="+$.toJSON(params);$.ajax({type:"POST",url:s_url,data:s_params,success:setURL});}}
function changeMapType(){val=$("#results_right_select").val();if(val=='map'){map.setMapType(G_NORMAL_MAP);}
if(val=='satellite'){map.setMapType(G_SATELLITE_MAP);}
if(val=='hybrid'){map.setMapType(G_HYBRID_MAP);}
$.cookie.set('maptype',val,{path:'/'});}
function mapMoved(){var bounds=map.getBounds();var sw=bounds.getSouthWest();var ne=bounds.getNorthEast();var sBound=sw.lat();var wBound=sw.lng();var nBound=ne.lat();var eBound=ne.lng();sbounds=[sBound,wBound,nBound,eBound];srp["bounds"]=sbounds;doSearchMap();}
function addMoveListener(){moveListener=GEvent.addListener(map,"moveend",function(){mapMoved();});}
function centerAndZoom(latlon){zoom=map.getZoom();map.setCenter(latlon,zoom+1);}
function CloseTooltip(){$("#tooltip").hide();}
function OShowTooltip(marker){tooltip=document.getElementById("tooltip");if(!tooltip){tooltip=document.createElement("div");tooltip.id="tooltip";$(tooltip).addClass("pretty");$(tooltip).addClass("fancy");document.getElementById("listing_map").appendChild(tooltip);}
$("#tooltip").html("");$("#tooltip").load("ajax/get_house_tooltip?house_id="+marker.hid);var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());var anchor=marker.getIcon().iconAnchor;var width=5;var pos=new GControlPosition(G_ANCHOR_BOTTOM_LEFT,new GSize(offset.x-point.x-anchor.x+width,-offset.y+point.y+anchor.y-20));pos.apply(tooltip);$("#tooltip").show();tooltip.style.visibility="visible";}
function changeTooltipPage(idold,idnew){$("#"+idold).hide();$("#"+idnew).show();}
function getMarkerId(marker){re=/mtgt_unnamed_(\d+)/;for(var p in marker)
{try{id=marker[p].id
if(re.test(id)){return id;}}catch(e){}}}
function ShowTooltip(marker){mid=getMarkerId(marker);cnt=marker.count+1;$(".qtip").remove();if(cnt>1){if(sale){ptitle=txt_properties;}else{ptitle=txt_holiday_homes;}}else{if(sale){ptitle=txt_property;}else{ptitle=txt_holiday_home;}}
$("#"+mid).qtip({content:{text:'<img src="img/loading.gif" alt="Loading..." />',url:"ajax/get_house_tooltip?house_id="+marker.houses+"&sale="+sale,title:{text:cnt+' '+ptitle,button:txt_close_window}},position:{corner:{target:'topMiddle',tooltip:'bottomRight'},adjust:{scroll:true,screen:true,resize:true,x:0,y:0}},show:{when:false,ready:true,solo:true},hide:'unfocus',style:{border:{width:3,radius:5,color:'#a9e3f8'},title:{background:'#d8f0f8',color:'#000000','font-size':11},padding:10,'font-size':11,tip:true,width:270}})}
function searchMap(){$("#tooltip").hide();address=$("#search_box").val();geocoder=new GClientGeocoder();if(geocoder){geocoder.getLatLng(address,function(point){if(!point){alert(address+" not found");}else{map.setCenter(point,9);}});}}
function ClickCluster(marker){zoom=map.getBoundsZoomLevel(marker.bounds);czoom=map.getZoom();center=marker.bounds.getCenter();if(czoom>=zoom){center=marker.getPoint();zoom++;}
if(zoom>17)zoom=17;if(moveListener)GEvent.removeListener(moveListener);moveListener=0;map.setCenter(center,zoom);mapMoved();}
function orderOfCreation(marker,b){t=marker.type;if(t==1){return(10000);}else{return(1);}}
function populateMap(data){var batch=[];var icons=[]
mgr.clearMarkers();bounds=new GLatLngBounds();var pngicons={};pngicons[0]={image:'img/icons/house.png',w:32,h:32};pngicons[1]={image:'img/icons/airport.png',w:32,h:32};pngicons[2]={image:'img/icons/golf.png',w:32,h:32};pngicons[3]={image:'img/icons/house.png',w:32,h:32};pngicons[4]={image:'img/icons/houseplus.png',w:32,h:32};pngicons[5]={image:'img/icons/marker24.png',w:24,h:24};pngicons[6]={image:'img/icons/marker32.png',w:32,h:32};pngicons[7]={image:'img/icons/marker40.png',w:40,h:40};pngicons[8]={image:'img/icons/marker48.png',w:48,h:48};for(i=0;i<9;i++){var icon=new GIcon();icon.image=pngicons[i].image;icon.iconSize=new GSize(pngicons[i].w,pngicons[i].h);icon.iconAnchor=new GPoint(16,16);icon.infoWindowAnchor=new GPoint(16,0);icons[i]=icon;}
for(i=0;i<data['poi'].length;i++){marker=data['poi'][i];t=marker.type;icon=icons[t];point=new GLatLng(marker.lat,marker.lon);marker=new GMarker(point,{icon:icon,title:marker.name})
batch.push(marker);}
for(i=0;i<data['markers'].length;i++){marker=data['markers'][i];point=new GLatLng(marker.latitude,marker.longitude);bounds.extend(point);house_id=marker.house_id;count=marker.count;houses=marker.houses.join('_');if(marker.count==0){iid=0;}else{iid=4;}
marker=new GMarker(point,{icon:icons[iid],zIndexProcess:orderOfCreation,title:marker.name})
marker.type="home"
marker.hid=house_id;marker.count=count;marker.houses=houses;batch.push(marker);GEvent.addListener(marker,"click",function(){ShowTooltip(this);});}
icon=new GIcon();for(i=0;i<data['clusters'].length;i++){marker=data['clusters'][i]['data'];count=data['clusters'][i]['count'];mbounds=data['clusters'][i]['bounds'];point=new GLatLng(marker.latitude,marker.longitude);sw=new GLatLng(mbounds.maxLat,mbounds.minLon);ne=new GLatLng(mbounds.minLat,mbounds.maxLon);bounds.extend(point);name=count;labelclass="markerLabel";mt=5;if(count>9){mt=6;}
if(count>99){mt=7;}
if(count>999){mt=8;}
icon=icons[mt];labelclass="markerLabel"+pngicons[mt].w;if(data['clusters'][i]['name']){name=data['clusters'][i]['name'];}
marker=new LabeledMarker(point,{labelClass:labelclass,icon:icon,"labelOffset":new GSize(-16,-16),labelText:count,title:name})
marker.hid=marker.type="cluster";marker.origimg=pngicons[mt].image;marker.bounds=new GLatLngBounds(sw,ne);GEvent.addListener(marker,"mouseover",function(){map.disableDragging();});GEvent.addListener(marker,"mouseout",function(){map.enableDragging();});GEvent.addListener(marker,"click",function(){ClickCluster(this);});batch.push(marker);}
try{center=new GLatLng(data['center']['lat'],data['center']['lon']);}catch(e){}
mgr.addMarkers(batch,1);mgr.refresh();if(!data['mapsearch']){center=bounds.getCenter();zoom=map.getBoundsZoomLevel(bounds);if(zoom>16)zoom=16;if(zoom==4){center=new GLatLng(center.lat()+2,center.lng());}
map.setCenter(center,zoom);}
if(!moveListener){addMoveListener();}}
function searchResult(data){try{result=$.evalJSON(data);}catch(e){alert(data);}
$('#refine_search').html(result["sidebar"]);if(result['mapsearch']){$(".number span").html(result['house_count']);$(".searchmap").html(result['searchmap']);populateMap(result);$("#mlist").html(result["listing"]);}else{$('#content').html(result["listing"]);if(srp['mode']=='map'||srp['mode']=='mapsearch'){populateMap(result);}}
$('.breadcrumb').html(result["breadcrumb"]);if(result["last_houses"]!='0'){$('.lastviewed').show();$('.lastviewed_items').html(result["last_houses"]);}
if(result["srp"]){for(key in result["srp"]){srp[key]=result["srp"][key];}}
fsrp=oclone(orgfsrp);for(key in fsrp){fsrp[key]=srp[key];}
for(key in result["names"]){if(key=='da'||key=='nm'){$("#ff_"+key).val(result["names"][key]);}else{$("#ff_"+key).html(result["names"][key]);}}
if(result['sethistory']){jQuery.history.load(result["uri"],false);}
hideLoading();}
function selectDate(dateText,inst){dt=$.datepick.formatDate('yy-mm-dd',inst);if(dt==''){dt=0;}
changeSearchParam(fsrp,"da",dt,false);changeSearchParam(fsrp,'ds',0,false);$("#ff_ds").html(def_form_text['ds']);}
function performMainSearch(){if(srp['lm'])fsrp['lm']=1;if(srp['hc']){fsrp['hc']=srp['hc'];}
srp=oclone(orgsrp);fsrp['nm']=0;for(key in fsrp){srp[key]=fsrp[key];}
doSearch(srp,true);}
function unsetChildParam(obj,param){switch(param){case'ct':changeSearchParam(obj,'rg',0,false);changeSearchParam(obj,'pl',0,false);break;case'rg':changeSearchParam(obj,'pl',0,false);break;case'da':changeSearchParam(obj,'ds',0,false);break;}}
function deleteFilter(name,value){if(name=='bounds'){srp.bounds=0;value=0;}else{if(value==-1){value=srp[name];}
unsetChildParam(srp,name);}
changeSearchParam(srp,name,value,true);}
function clearSearch(){srp=oclone(orgsrp);doSearch(srp,true);}
function changeFilter(name,value){if(name=='bounds'){srp.bounds=0;}
changeSearchParam(srp,name,value,true);}
function changeSearchParam(obj,name,value,ds){if(obj['mode']!='list'&&obj['mode']!='gallery'&&obj['mode']!='map'&&obj['mode']!='mapsearch'){obj['mode']='list';}
if(isArray(obj[name])){var inarray=false;for(i=0;i<obj[name].length;i++){if(obj[name][i]==value){obj[name].splice(i,1);inarray=true;break;}}
if(!inarray){obj[name].push(value);}}
else{if(obj[name]==value&&name!='mode'){obj[name]=0;}else{obj[name]=value;}}
if(name!="page"){obj.page='0';}
if(ds){doSearch(obj,true);}}
function changePage(nr){changeSearchParam(srp,'page',nr,true);}
function changeSort(){val=$("#results_right_select").val();params=val.split('_');if(params.length==2){srp['sort']=params[0];srp['dir']=params[1];}else{srp['sort']=0;srp['dir']=0;}
doSearch(srp,true);}
function hideLastDropDown(){$(".ddlist").hide();}
function processClick(e){tname=e.target.id;piece3=tname.substring(0,3);piece7=tname.substring(0,7);if(piece3!="ff_"&&piece3!="a_"&&piece7!="list_ff"){hideLastDropDown();$("body").unbind('click');}}
function showDropDown(fname){$("body").bind('click',processClick);if($('#list_ff_'+fname).css('display')!='none'){hideLastDropDown();}else{hideLastDropDown();lastdd=fname;$('#list_ff_'+fname).show();$('#list_ff_'+fname).html("<div class='dd_loading'><img src='img/loading.gif' /></div>");if(srp['lm'])fsrp['lm']=1;if(srp['hc']){fsrp['hc']=srp['hc'];}
params=oclone(fsrp);params["fname"]=fname;s_url=siteroot+"ajax/dropdown";s_params="sale="+sale+"&params="+$.toJSON(params);$.ajax({type:"POST",url:s_url,data:s_params,success:dropDownResult});}}
function changeMode(mtype){changeSearchParam(srp,'mode',mtype,true);}
function selectItem(itype,key,text){changeSearchParam(fsrp,itype,key,false);if(key!="0"){$("#ff_"+itype).html(text);}else{$("#ff_"+itype).html(def_form_text[itype]);}
switch(itype){case"ct":changeSearchParam(fsrp,'rg',0,false);$("#ff_rg").html(def_form_text['rg']);changeSearchParam(fsrp,'pl',0,false);$("#ff_pl").html(def_form_text['pl']);break;case"rg":changeSearchParam(fsrp,'pl',0,false);$("#ff_pl").html(def_form_text['pl']);break;}}
function dropDownResult(data){try{result=$.evalJSON(data);fname=result.fname;$('#list_ff_'+fname).html(result.data);}catch(e){}}
function showLoading(){$("#wrapper").mask(txt_loading);}
function hideLoading(){$("#wrapper").unmask();dh=$(window).scrollTop();if(dh>200){$.scrollTo('#content',500);}}
function delFavorites(){var houses=[];$('.favchk:checked').each(function(){did=(this.id.split('-'));houses.push(did[1])});if(houses.length==0)return;chouses=$.cookie.get('favs',true);if(chouses==null){chouses=[];}
for(i=0;i<houses.length;i++){x=chouses.indexOf(houses[i]);if(x!=-1){chouses.splice(x,1);}}
$.cookie.set('favs',chouses,{json:true,path:'/'});$('#favcount').html("("+chouses.length+")");doSearch(srp,false);}
function addFavorites(){var houses=[];$('.favchk:checked').each(function(){did=(this.id.split('-'));houses.push(did[1])});if(houses.length==0)return;chouses=$.cookie.get('favs',true);if(chouses==null){chouses=[];}
chouses=chouses.concat(houses);chouses=unique(chouses);if(chouses.length>20){num=chouses.length;chouses=chouses.slice(num-20,num);}
$.cookie.set('favs',chouses,{json:true,path:'/'});$('#favcount').html("("+chouses.length+")");$fr=$.cookie.get('f');if($fr==null){$('#favcount').qtip({content:{text:$('#favcount').attr('tooltip'),title:{text:$('#favcount').attr('title'),button:$('#favcount').attr('close')}},position:{corner:{target:'bottomMiddle',tooltip:'topRight'},adjust:{scroll:true,screen:true,resize:true}},show:{when:false,ready:true,solo:true},hide:false,style:{border:{width:3,radius:5,color:'#a9e3f8'},title:{background:'#d8f0f8',color:'#000000','font-size':11},padding:10,'font-size':12,tip:true}});}else{alert(txt_f_added);}
$.cookie.set('f',"1",{expires:0,path:'/'});}
function doCompare(){var houses=[];$('.favchk:checked').each(function(){did=(this.id.split('-'));houses.push(did[1])});if(houses.length==0)return;list=houses.join('_');if(sale){c_url=property_surl;}else{c_url=house_surl;}
url=base_href+c_url+"/compare/"+list+".html";setTimeout("window.location.href = '"+url+"';",0);}
