var coords='';
var mapdone=0;
var noevent=0;
var dosliders=0;
var standard_setup=1;
var submit_pressed=0;
function buildurl(nocoords){
var url='';
var mode=$("[name=mode]").val();
url+='mode:'+$("[name=mode]").val()+'/';
var status=$("[name=status]:checked").val();
if (status=='sold') url+='status:'+status+'/';
$("#top_alert_container").hide();
var min= $("[name=price_from]").val();
var max= $("[name=price_to]").val();
var pt=$("[name=ptype]:checked").val();
if (pt=='rental'){
min= $("[name=price_from_rental]").val();
max= $("[name=price_to_rental]").val();
}
var minsub=min;
if (min=='-1') minsub='any';
url+='price:'+minsub+'-'+max+'/';
var ybmin= $("#yearbuilt_slider").slider('values',0);
var ybmax= $("#yearbuilt_slider").slider('values',1);
var yearmax = 2010;
if ((ybmin > 1900) || (ybmax < (yearmax+1))) {
if (ybmin==1901) ybmin='any';
var doyburl=0;
if (ybmin == 'any') doyburl++;
if (ybmax == '2010') doyburl++;
if (doyburl < 2) url+='yearbuilt:'+ybmin+'-'+ybmax+'/';
}
var area=$("[name=areaid]").val();
if (area !='') url+='areaid:'+area+'/';
var vid=$("#vendorid").val();
if (vid !='') url+='vendorid:'+vid+'/';
var bed=$("#bedrooms").val();
if (bed !='any') url+='bedrooms:'+bed+'/';
var bath=$("[name=bathrooms]").val();
if (bath !='any') url+='bathrooms:'+bath+'/';
var query=$("[name=query]").val();
if (query) url+='query:'+query+"/";
var minsq= $("#sqft_slider").slider('values',0);
var maxsq= $("#sqft_slider").slider('values',1);
if ((minsq > 0) || (maxsq < 10000)) url+='sqft:'+minsq+'-'+maxsq+'/';
var type=$("[name=type]").val();
if (type!='') url+='type:'+type+'/';
var sorting=$("[name=sorting]").val();
if (sorting!='') url+='sorting:'+sorting+'/';
url+='ptype:'+$("input[@name=ptype]:checked").val()+'/';
var has_video=$("[name=has_video]:checked").val();
if (has_video =='1') url+='has_video/';
var modechange=0;
if ((mode=='table') && ($("#map").length)) modechange=1;
if ((mode=='map') && ($(".t_result").length)) modechange=2;
var page=$('input[name=page]').val();
if (modechange==1) page=parseInt((page*2)-1);
if (modechange==2) {
var op=page;
page=parseInt(page/2);
if ((op%2) == 1) page=page+1;
}
$('input[name=page]').val(page);
if (page > 1) url+='page:'+page+'/';
furl='';
$("[name=features]:checked").each( function() {
var ftext=$(this).attr('rel');
ftext=ftext.replace(/\//,'+');
furl+=ftext+',';
} );
furl=furl.substring(0,furl.length-1);
if (furl!='') url+='features:'+furl+'/';
coords=$("[name=coords]").val();
if ((nocoords!=1) && (coords) && (coords!=null)) {
url+='coords:'+coords+'/';
}
document.location.hash=url;
uri='/listings/searchjx/'+url;
//uri='http://www.realestatechannel.ca'+uri;
return uri;
}
function urlreact(use_url){
if (standard_setup==1){
var mode='';
var url='';
var query=$("[name=query]").val();
if (checkforquery()){
if (use_url=='1') {
setform2url(document.location.hash);
mode=extractmode(document.location.hash);
url=document.location.href;
url=url.replace(/\#/,'');
url=url.replace(/search/,'searchjx');
} else{
mode=$("[name=mode]").val();
url=buildurl();
}
if (no_react != 1){
if (mode=='table'){
if ($(".t_result")) {
$("#tablemsg").show();
$(".t_result").fadeTo(300,0.5, function(){
$('html,body').animate({scrollTop: $("#begin").offset().top},'fast');
});
} else {
$("#content2").html("
Updating, please wait...");
}
$.ajax({
type: "POST",
url: url,
success: function(msg){
//$(".t_result").fadeTo(300,1);
if (checkforresult(msg)){
mapdone=0;
$("#content2").html(msg);
react();
}
if ($("#tablemsg").css('display')=='block' ){
$("#tablemsg").hide();
$(".t_result").fadeTo(300,1);
}
}
});
} else{
if (mapdone==0){
//mapdone=1;
map=init();
}
$('#mapoverlay').show();
$('#mapoverlay').fadeTo(300,0.7);
$.ajax({
type: "POST",
url: url,
success: function(msg){
$('#mapoverlay').fadeTo(300,0,function(){
$('#mapoverlay').hide();
});
if (checkforresult(msg)){
map.clearOverlays();
markers=new Array();
eval(msg);
$(markers).each(function(i,marker){
GEvent.addListener(marker.gm, "click", function(){
jQuery().basebox.showurl_no('/listings/bubble/'+marker.id,'',{basedir: '/static/js/Basebox/'});
});
});
if (mapdone==0) {
fitMap(map, markers);
mapdone==1;
}
react();
}
}
});
}
}
}} else { var u=buildurl(); }
}
function init(){
var map='';
submit_pressed=1;
if (GBrowserIsCompatible()) {
text='

Please check your spelling and try again.
'); return false; } } else return true; } function checkforquery(){ var query=$("[name=query]").val(); if (!query){ $("#content2").html('Please enter a city or neighbourhood to begin your search.
'); return false; } else return true; } function changepage(p){ //alert(p); var u=document.location.hash; var p=u.indexOf('page:'); if (p > 0){ var pe=u.indexOf('/',p); var nu=u.substr(0,p)+'page:'+p;///'+ nu+=u.substr(pe,(u.length-pe)); u=nu; } else { u+'/page:'+p+'/'; } document.location.hash=u; } function react(){ $("[name=lastmode]").val("table"); $(".li_next").unbind().click(function(){ var p=$(this).attr("rel"); $("[name=page]").val(p); changepage(p); urlreact(); }); $(".li_prev").unbind().click(function(){ var p=$(this).attr("rel"); $("[name=page]").val(p); changepage(p); urlreact(); }); $(".page").unbind().click(function(){ var p=$(this).attr("rel"); $("[name=page]").val(p); changepage(p); urlreact(); }); } $(document).ready(function() { $("#advsearch").hide(); $("#advbtn").toggle(function(){ set_adv_sliders(); $("#banner_container").css({height: '230px'}); /*$("#searchmenu").css({height: '230px'}); */ $("#advsearch").fadeIn("fast",function(){ }); $("#advbtn").attr("src","/static/images/adv_search_btn_up.jpg"); return false; },function(){ /*$("#searchmenu").css({height: '150px'});*/ $("#banner_container").css({height: '110px'}); $("#advbtn").attr("src","/static/images/adv_search_btn_down.jpg"); $("#advsearch").hide(); return false; }); $("[name=query]").attr("autocomplete","off"); $("[name=query]").keyup(function(event){ if ((event.keyCode != '13')&&(event.keyCode != '38')&&(event.keyCode != '40')) { $("[name=areaid]").val(''); } }); $("[name=query]").autocomplete('/get_suggestions', { max: 50,selectFirst: false}).result(function(e,i){ i=String(i); var foo=''; var t=''; t=i.match(/(.*)<\/span>/g); t=String(t); t=t.replace('',''); t=String(t); t=t.replace('',''); foo=i.replace(/(.*)<\/span>/g,''); $("[name=areaid]").val(t); $("[name=query]").val(foo); buildurl(); $("#submit").click(); }); $("[name=mode]").change(function(){ urlreact(); }); $("[name=type]").change(function(){ reset_page();urlreact(); }); $("[name=ptype]").change(function(){ reset_page();urlreact(); }); $("[name=has_video]").change(function(){ reset_page();urlreact(); }); $("[name=features]").change(function(){ reset_page(); urlreact(); }); var min= '-1'; var max= '5000000'; $("[name=price_from]").val(-1); $("[name=price_to]").val(5000000); $('.price_sliders2').selectToUISlider({ tooltip: false,change: function(){ $("#pfr").html($("[name=price_from_rental]").find(":selected").text()); $("#pto").html($("[name=price_to_rental]").find(":selected").text()); if (dosliders!=0) { reset_page(); urlreact(); } }, slide: function(t){ $("#pfr").html($("[name=price_from_rental]").find(":selected").text()); $("#pto").html($("[name=price_to_rental]").find(":selected").text()); } }); $('.price_sliders').selectToUISlider({ tooltip: false,change: function(){ $("#pfr").html($("[name=price_from]").find(":selected").text()); $("#pto").html($("[name=price_to]").find(":selected").text()); if (dosliders!=0) { reset_page(); urlreact(); } }, slide: function(t){ $("#pfr").html($("[name=price_from]").find(":selected").text()); $("#pto").html($("[name=price_to]").find(":selected").text()); } }); var pt=$("[name=ptype]:checked").val(); if (pt=='rental'){ $("#pfr").html( $("[name=price_from_rental]").find(":selected").text() ); $("#pto").html( $("[name=price_to_rental]").find(":selected").text() ); } else { $("#pfr").html( $("[name=price_from]").find(":selected").text() ); $("#pto").html( $("[name=price_to]").find(":selected").text() ); } var ybmin= 1901; var ybmax= 2010; $("#yearbuilt_slider").slider({ min: 1901, max: 2010, values: [ ybmin,ybmax], step: 1,range: true, change: function(){ reset_page(); urlreact(); }, slide: function(){ var yearb=$("#yearbuilt_slider").slider('values',0); if (yearb==1901){yearb='any';} $("#ybfr").html(yearb); var text=$("#yearbuilt_slider").slider('values',1); if (text== 2010) text+='+'; $("#ybto").html(text); } }); if (ybmin==1901){ybmin='any';} $("#ybfr").html(ybmin); $("#ybto").html(ybmax+'+'); var smin= 0; var smax= 10000; $("#sqft_slider").slider({ min:0, max: 10000, values: [smin,smax], step:1, range: true, change: function(){ reset_page(); urlreact(); }, slide: function(){ var text=$("#sqft_slider").slider('values',0); if (text=='0') text='any'; if (text!='any') text=formatNumber(text); var textmax=formatNumber($("#sqft_slider").slider('values',1)); if (textmax=='10,000') textmax='10,000+'; $("#sfr").html(text); $("#sto").html(textmax); } }); if (smin==0) smin='any'; if (smax==10000) smax='10,000+'; $("#sfr").html(smin); $("#sto").html(smax); var beds = $('[name=bedrooms]').selectToUISlider({tooltip: false, slide: function(t){ $("#bedrooms_l").html(t); }, change: function(){ if (dosliders!=0) {reset_page(); urlreact(); } } }).next(); var baths = $('[name=bathrooms]').selectToUISlider({tooltip: false, slide: function(t){ $("#bathrooms_l").html(t); }, change: function(){ if (dosliders!=0){reset_page(); urlreact();} } }).next(); $("#bedrooms").val('any'); $("#bedrooms_l").html('any'); $("#bedrooms").change(); $("#bathrooms").val('any'); $("#bathrooms_l").html('any'); $("#bathrooms").change(); $("[name=submit]").click(function(){ submit_pressed=1; removecoords(); $("[name=coords]").val(null); $("[name=price_from]").val($("#price_slider").slider('values',0)); $("[name=price_to]").val($("#price_slider").slider('values',1)); $("[name=sqft_from]").val($("#sqft_slider").slider('values',0)); $("[name=sqft_to]").val($("#sqft_slider").slider('values',1)); }); $("[name=status]").click(function(){ urlreact(); }); $("[name=ptype]").click(function(){ var pt=$("[name=ptype]:checked").val(); if (pt=='rental'){ $("#price_sale .ui-slider").hide(); $("#price_rental").show(); $("#price_rental .ui-slider").show(); $("[name=price_from_rental]").val('-1'); $("[name=price_to_rental]").val('5000'); $("[name=price_to_rental]").change(); } else { $("#price_sale .ui-slider").show(); $("#price_rental .ui-slider").hide(); $("[name=price_from]").val('-1'); $("[name=price_to]").val('5000000'); $("[name=price_to]").change(); } }); dosliders=1; }); function reset_page(){ $("[name=page]").val('1'); } function formatNumber(n) { if (!isFinite(n)) { return n; } var s = ""+n, abs = Math.abs(n), _, i; if (abs >= 1000) { _ = (""+abs).split(/\./); i = _[0].length % 3 || 3; _[0] = s.slice(0,i + (n < 0)) + _[0].slice(i).replace(/(\d{3})/g,',$1'); s = _.join('.'); } return s; } function fitMap( map, points ) { var cs=''; if (document.location.hash) cs=extractcoords(document.location.hash); if ((cs=='') || ( submit_pressed==1 )) { var bounds = new GLatLngBounds(); for (var i=0; i< points.length; i++) { bounds.extend(points[i].point); } map.setZoom(map.getBoundsZoomLevel(bounds)); map.setCenter(bounds.getCenter()); submit_pressed=0; } } function set_adv_sliders(){ var ybmin=$("#yearbuilt_slider").slider('values',0); if (ybmin==1901){ymin='any';} $("#ybfr").html(ybmin); var text=$("#yearbuilt_slider").slider('values',1); if (text== 2010) text+='+'; $("#ybto").html(text+'+'); text=$("#sqft_slider").slider('values',0); if (text=='0') text='any'; if (text!='any') text=formatNumber(text); var textmax=formatNumber($("#sqft_slider").slider('values',1)); if (textmax=='10,000') textmax='10,000+'; $("#sfr").html(text); $("#sto").html(textmax); } function removecoords(){ var url=document.location.hash; if (url) { var mode=''; url=url.replace(/#/g,''); url=url.replace(/%20/g,' '); url=url.replace(/\/(coords:(.*)\/)/g,'/'); document.location.hash=url; } return true; } function extractcoords(url){ var mode=''; if (url){ url=url.replace(/#/g,''); url=url.replace(/%20/g,' '); var vars=url.split("/"); for(i = 0; i < vars.length; i++){ var subv=vars[i].split(':'); if (subv[1]) if (subv[0] == 'coords') mode=subv[1]; } } return mode; } function extractmode(url){ var mode=''; url=url.replace(/#/g,''); url=url.replace(/%20/g,' '); var vars=url.split("/"); for(i = 0; i < vars.length; i++){ var subv=vars[i].split(':'); if (subv[1]) if (subv[0] == 'mode') mode=subv[1]; } return mode; } function setform2url(url, nomove){ url=url.replace(/#/g,''); url=url.replace(/%20/g,' '); var vars=url.split("/"); var ptype='sale'; for(i = 0; i < vars.length; i++){ var subv=vars[i].split(':'); if (subv[0]=='ptype'){ if (subv[1]=='rental') ptype='rental'; } } for(i = 0; i < vars.length; i++){ var subv=vars[i].split(':'); if (subv[0]=='ptype'){ //alert(subv[1]); } if (subv[0]=='has_video'){ $("[name=has_video][value=1]").attr("checked","true"); } if (subv[1] != undefined){ //subv[1]=subv[1].replace(/\+/g,''); if ((subv[0]!='yearbuilt')&&(subv[0]!='price')&&(subv[0]!='status')&&(subv[0]!='sqft')&&(subv[0]!='features')&&(subv[0]!='ptype')) $("[name="+subv[0]+"]").val(subv[1]); if (subv[0]=='bedrooms') { $("#bedrooms").val(subv[1]); $("#bedrooms_l").html(subv[1]); $("#bedrooms").change(); } if (subv[0]=='status') { $("[name=status][value=sold]").attr("checked","true"); } if (subv[0]=='bathrooms') { $("#bathrooms").val(subv[1]); $("#bathrooms_l").html(subv[1]); $("#bathrooms").change(); } if (subv[0]=='size') $("#size").slider('value',subv[1]); if (subv[0]=='ptype') { if (subv[1]=='rental') $("[name=ptype][value=rental]").attr("checked","true"); if (subv[1]=='sale') $("[name=ptype][value=sale]").attr("checked","true"); } if (subv[0]=='yearbuilt'){ var range=subv[1].split('-'); $("[name=yearbuilt_from]").val(range[0]); $("[name=yearbuilt_to]").val(range[1]); $("#yearbuilt_slider").slider('values',0,range[0]); $("#yearbuilt_slider").slider('values',1,range[1]); } if (subv[0]=='price'){ var range=subv[1].split('-'); if (ptype=='rental'){ $("#price_sale .ui-slider").hide(); $("#price_rental").show(); $("#price_rental .ui-slider").show(); $("[name=price_from_rental]").val(range[0]); $("[name=price_to_rental]").val(range[1]); $('[name=price_from_rental]').change(); $('[name=price_to_rental]').change(); } else { $("[name=price_from]").val(range[0]); $("[name=price_to]").val(range[1]); $('[name=price_from]').change(); $('[name=price_to]').change(); } } if (subv[0]=='sqft'){ var range=subv[1].split('-'); $("[name=sqft_from]").val(range[0]); $("[name=sqft_to]").val(range[1]); $("#sqft_slider").slider('values',0,range[0]); $("#sqft_slider").slider('values',1,range[1]); } if (subv[0]=='features'){ var feats=subv[1].toLowerCase(); feats=feats.replace(/\+/,'/'); feats=feats.split(','); for(j = 0; j < feats.length; j++) $("[rel="+feats[j]+"]")[0].checked=true; } } } return 0; } function opensignup(){ $("#signup").click(); }