/* powersearch.js 8/23/2010 3:05:29 PM */

var name;var activeTab=$$('ul#tabs li a')[0].id;var isRental=false;var hoodlike=false;var searchvars={custom:{},area:{},city:{},county:{},postalcode:{},neighborhood:{},minprice:{},maxprice:{},proptype:{},minbeds:{},minbaths:{},minsqft:{},minacres:{},minyear:{},status:{},feature:{},featureor:{},maxdayslisted:{},tours:{},keyword:{},remarks:{},stories:{},hoodlike:null};function checklistChecked(inp){updateChecklistSearchVars(inp);updateTotal();}
function updateChecklistSearchVars(inp){var div=inp.parentNode.parentNode;var cbs=div.getElementsByTagName("INPUT");var arr=new Array();for(var i=1;i<cbs.length;i++){if(inp.value=="-1")
cbs[i].checked=inp.checked;else
cbs[0].checked=false;if(cbs[0].checked==false&&inp.value!="-1"&&cbs[i].checked)
arr.push(cbs[i].value);}
switch(div.id){case"customs":searchvars.custom=arr.join(",");break;case"areas":searchvars.area=arr.join(",");break;case"cities":searchvars.city=arr.join(",");break;case"counties":searchvars.county=arr.join(",");break;case"zipcodes":searchvars.postalcode=arr.join(",");break;}}
function itemChanged(el){isRental=isRentalSearch();updateSearchVars(el);updateTotal();}
function updateSearchVars(el){if(el.name=="proptype"){searchvars.proptype=null;searchvars.proptype=getCheckedVals(el.name).join(',');$$('.zeros').invoke('show');$('rentalprices').hide();if(isRental){$$('.zeros').invoke('hide');$('rentalprices').show();setPrice('powminprice');setPrice('powmaxprice');}}
if(el.id=="powminprice"||el.id=="powmaxprice"){setPrice(el.id);}
if(el.tagName.toLowerCase()=="select"){if(el.selectedIndex>0)searchvars[el.name]=el.options[el.selectedIndex].value;else searchvars[el.name]=null;}
if(el.name=="status"||el.name=='feature'||el.name=='featureor'){var cbs=$(document.forms[0].id).getInputs('checkbox',el.name);searchvars[el.name]=null;searchvars[el.name]=getCheckedVals(el.name).join(',');}
if(el.id=="remarks"||el.id=='tours'){if(el.type=='textbox'&&el.value=='')searchvars[el.id]=null
else if(el.type=='checkbox'&&el.checked==false)searchvars[el.id]=null;else searchvars[el.id]=el.value.replace('"','');}}
function setPrice(id){var val=$(id).value;if(isNaN(val))return;var name=id.replace('pow','');var multiplier=1000;if(isRental)multiplier=1;searchvars[name]=null;if(val!=''&&val!='0')
searchvars[name]=new Number(cleanPrice(val))*multiplier;}
function getCheckedVals(name){var arr=document.forms[0][name];var output=new Array();for(var i=0,len=arr.length;inp=arr[i],i<len;i++){if(inp.checked)output.push(inp.value);}
return output;}
function isRentalSearch(){var arr=getCheckedVals('proptype');var val=arr.find(function(s){return(s=='RN'||s=='CL')});return val!=null;}
function cleanPrice(s){return s.replace(",","").replace("$","")}
function getQueryString(){var hash=$H(searchvars);switch(activeTab){case"customs-tab":hash.remove('area','city','postalcode','neighborhood','county');break;case"areas-tab":hash.remove('custom','city','postalcode','neighborhood','county');break;case"cities-tab":hash.remove('custom','area','postalcode','neighborhood','county');break;case"counties-tab":hash.remove('custom','area','city','postalcode','neighborhood');break;case"zipcodes-tab":hash.remove('custom','area','city','neighborhood','county');break;case"neighborhoods-tab":hash.remove('custom','area','city','postalcode','county');break;case"mls-tab":hash.remove('custom','area','city','postalcode','neighborhoods','county');break;}
hash.each(function(pair){if(pair.value==null||pair.value.length==0)
hash.remove(pair.key);});var qs=hash.toQueryString();if(qs!='')qs='&'+qs;return qs;}
function updateTotal(){var url="/service.ashx?method=getTotalCount"+getQueryString();var total;new Ajax.Request(url,{method:"get",onCreate:function(){$("indicator").show();},onComplete:function(transport){total=QuickUtils.addCommas(transport.responseText);$("totalcount1").innerHTML=total;$("totalcount2").innerHTML=total;$('results1').href='/results.aspx?'+getQueryString();$("results1").show();$("results2").show();$("indicator").hide();if(total=="0")$("no-results").show();else $("no-results").hide();}});}
function pageLoaded(){$$('#powersearch input').each(function(el){updateSearchVars(el);});$$('#container input[type="checkbox"]').each(function(el){if(el.checked)
updateChecklistSearchVars(el);});updateTotal();}
function getResults(){var url="/results.aspx?p=1"+getQueryString();window.location=url;}
function mlsSearch(){var mls=$("mlsnumber").value;var url="/service.ashx";if(!mls)return;new Ajax.Request(url,{method:"get",parameters:{method:"getListingIdByMls",mls:mls},onComplete:function(transport){if(transport.responseText=="-1"){$("mlserror").innerHTML="No listings matched the MLS # you entered";$("mlserror").show();}
else{window.location="/listing.aspx?listingid="+transport.responseText;}}});}
function isTabSelected(){var tabs=$$("ul#tabs li a");for(i=0;i<tabs.length;i++)
if($(tabs[i]).hasClassName('active'))
return true;return false;}
function showTab(id){$$('ul#tabs li a').invoke('removeClassName','active');$(id).addClassName("active");$('container').immediateDescendants().invoke('hide');$(id.replace('-tab','-container')).show();activeTab=id;updateTotal();}
function getNeighborhoods(ids,type){new Ajax.Request("/service.ashx",{method:"get",parameters:{method:"getneighborhoods",type:type,keys:ids.join()},onComplete:function(transport){$("neighborhoods").innerHTML=transport.responseText;}});}
function removeNeighborhood(neighborhood){var list=$("selected-items").getElementsByTagName("OL")[0];var lis=$$("#selected-items li");for(var i=0;i<lis.length;i++){var span=lis[i].childNodes[0];var value=span.innerHTML.replace("&amp;","&");if(value==neighborhood){list.removeChild(lis[i]);}}
getDisplayedNeighborhoods();updateTotal();}
function validateNeighborhood(neighborhood){var parms={prefixText:neighborhood,count:10};new Ajax.Request("/search.aspx/NeighborhoodIsValid",{asynchronous:false,method:"post",contentType:"application/json",postBody:Object.toJSON(parms),onComplete:function(transport){if(transport.responseText!=0){addNeighborhood(neighborhood,false);updateTotal();}
else{$("neighborhoods-error").show();new Effect.Highlight($("neighborhoods-error"),{startcolor:"#ffffff",endcolor:"#FBF5AB",duration:.5});}}});}
function addHoodlike(neighborhood){if(searchvars.hoodlike){var arr=searchvars.hoodlike.split(' or ');arr.push(neighborhood);searchvars.hoodlike=arr.join(' or ');}
else{searchvars.hoodlike=neighborhood;}
showNeighborhood(neighborhood);updateTotal();}
function addNeighborhood(neighborhood,shouldValidate){var list=$("selected-items").getElementsByTagName("OL")[0];var lis=list.getElementsByTagName("LI");var addItem=true;if(lis.length>0){for(var i=0;i<lis.length;i++){if(lis[i].innerHTML==neighborhood)return;}}
if(hoodlike){addHoodlike(neighborhood);return;}
if(shouldValidate){validateNeighborhood(neighborhood);getDisplayedNeighborhoods()
updateTotal();}
else{$("neighborhoods-error").hide();txtNeighborhoodName.value="";txtNeighborhoodName.focus();showNeighborhood(neighborhood);getDisplayedNeighborhoods()
updateTotal();}}
function showNeighborhood(neighborhood){$("selected-items").show();var list=$("selected-items").getElementsByTagName("OL")[0];new Insertion.Bottom(list,"<li><span>"+neighborhood+"</span><a href=\"#\" onclick=\"removeNeighborhood('"+neighborhood+"'); return false\">remove</a></li>");}
function getDisplayedNeighborhoods(){var items=$$("#selected-items ol li span");var arr=new Array();if(items&&items.length>0){for(var i=0;i<items.length;i++){arr.push(items[i].innerHTML.replace("&amp;","&"));}}
if(hoodlike){searchvars.hoodlike=arr.join(" or ");}
else{searchvars.neighborhood=arr.join("|");}}
Event.observe(window,"load",function(event){if(!isTabSelected())
showTab(activeTab);if(txtNeighborhoodName){Event.observe(txtNeighborhoodName,"keyup",function(event){if(event.keyCode==Event.KEY_RETURN){var neighborhood=Event.element(event).value.replace("'","");addNeighborhood(neighborhood,true);}});Event.observe(txtNeighborhoodName,"focus",function(){if(txtNeighborhoodName.value=="enter a neighborhood")txtNeighborhoodName.value="";});Event.observe(txtNeighborhoodName,"blur",function(){if(txtNeighborhoodName.value=="")txtNeighborhoodName.value="enter a neighborhood";});Event.observe(document.forms[0],'keypress',function(event){if(event.keyCode==Event.KEY_RETURN){if(Event.element(event)==txtNeighborhoodName){Event.stop(event);return;}
$$('#powersearch input').each(function(el){updateSearchVars(el);});$$('#container input[type="checkbox"]').each(function(el){if(el.checked)
updateChecklistSearchVars(el);});getResults();}});}
pageLoaded();});

