ListingSelector.SERVICE_NAME="/services/Listings";if(window.WIDGET_MODE){GuideSelector.SERVICE_NAME+=".php"}function ListingSelector(C,A,F,B,H,E){try{this.valueField=C;this.textField=A;this.optionArea=F;this.selectionCallback=H;this.invalidationCallback=E;this.findDistant=false;this.validListing=false;if(this.valueField&&this.valueField.value!=""){this.validListing=true}this.listingQuery=new YAHOO.widget.DS_XHR(ListingSelector.SERVICE_NAME,["results","name","id","lat","lng","listingType","guideName"]);this.listingQuery.responseType=YAHOO.widget.DS_XHR.TYPE_JSON;this.listingQuery.scriptQueryParam="name";this.setServerParam(B);this.selector=new YAHOO.widget.AutoComplete(A,F,this.listingQuery);this.selector.useShadow=true;this.selector.maxResultsDisplayed=20;this.selector.autoHighlight=false;var G=this;this.selector.formatResult=function(I,J){var K=I[0];if(G.findDistant){K+=", "+I[5]}return K};this.selector.doBeforeExpandContainer=function(I,J,M,L){var K=YAHOO.util.Dom.getXY(I);K[1]+=YAHOO.util.Dom.get(I).offsetHeight;YAHOO.util.Dom.setXY(J,K);return true};this.selector.listingSelector=this;this.selector.textboxKeyEvent.subscribe(function(L,K){var I=K[0];var J=I.listingSelector;J.markEntryInvalid()});this.selector.itemSelectEvent.subscribe(function(L,K){var I=K[0];var J=I.listingSelector;J.name=K[2][0];J.id=K[2][1];J.lat=K[2][2];J.lng=K[2][3];J.listingType=K[2][4];if(J.valueField){J.valueField.value=J.id}J.markEntryValid()})}catch(D){alert(D)}}ListingSelector.prototype.setServerParam=function(A){this.serverParam=A;this.buildQuery()};ListingSelector.prototype.validateEntry=function(){var A=this;setTimeout(function(){if(!A.validListing){A.checkNameMatch()}},500)};ListingSelector.prototype.markEntryValid=function(){this.validListing=true;this.textField.style.backgroundColor="#fff";if(this.selectionCallback){this.selectionCallback()}};ListingSelector.prototype.markEntryInvalid=function(A){this.validListing=false;this.textField.style.backgroundColor="#fab327";if(this.invalidationCallback){this.invalidationCallback()}};ListingSelector.prototype.buildQuery=function(){var A="event=getSimilarNames&isNameQuery=true&skipPhotos=true&max=20";if(this.serverParam){A+="&"+this.serverParam}if(this.locationParams){A+="&"+this.locationParams}if(this.findDistant){A+="&findDistant=true"}this.listingQuery.scriptQueryAppend=A};ListingSelector.prototype.checkNameMatch=function(){var B=this.listingQuery.scriptQueryAppend+"&name="+encode(this.textField.value);var A=this;YAHOO.util.Connect.asyncRequest("GET",ListingSelector.SERVICE_NAME+"?"+B,{success:A.checkMatch,failure:function(C){},scope:A})};ListingSelector.prototype.checkMatch=function(A){var C=this.textField.value.toLowerCase();var D=JSON.parse(A.responseText);var E=D.results;for(var B=0;B<E.length;B++){var F=E[B];if(F.name.toLowerCase()==C){this.textField.value=F.name;if(this.valueField){this.valueField.value=F.id}this.markEntryValid();break}}};ListingSelector.prototype.setFindDistant=function(){this.findDistant=true};ListingSelector.prototype.updateLocation=function(A,C,B){if(A){this.locationParams="guide="+A}else{if(C&&B){this.locationParams="lat="+encode(C)+"&lng="+encode(B)}else{this.locationParams=null}}this.buildQuery()};
