Meetup.FreeformLocation=(function(){var geocodeAttempted=false,geocoder=null,inputEl=null,mcIdEl=null,gcResultsEl=null,formEl=null,tooSlowTimeout=null;var submitHandler=function(e){if(!inputEl){return}var addressStr=inputEl.value;var mcIdStr=mcIdEl.value;var latStr=latEl.value;var lonStr=lonEl.value;if(addressStr!=""&&mcIdStr==""&&latStr==""&&lonStr==""&&!geocodeAttempted){$.get(APIURL+"?method=googleMapsQuery");e.preventDefault();var succeed=function(){clearTimeout(tooSlowTimeout);submitForm(formEl)};var fail=function(){submitForm(formEl)};geocodeAddress(addressStr,succeed,fail);geocodeAttempted=true;tooSlowTimeout=setTimeout(fail,2000)}else{}};var geocodeHandler=function(e){var addressStr=inputEl.value;var mcIdStr=mcIdEl.value;if(addressStr!=""&&mcIdStr==""){var succeed=function(){$(formEl).trigger("geocode_complete")};var fail=function(){$(formEl).trigger("geocode_fail")};geocodeAddress(addressStr,succeed,fail);geocodeAttempted=true}else{$(formEl).trigger("geocode_complete")}};var getElementByName=function(element,propertyToFind){for(var property in element){if(property==propertyToFind){return element[property]}else{if(typeof(element[property])=="object"){var node=getElementByName(element[property],propertyToFind);if(node!=null){return node}}}}return null};var addAddressToSubmit=function(succeed,fail,response){var gcResults="";if(!response||response.Status.code!=200){fail.call(this)}else{for(var i=0;i<response.Placemark.length;i++){var place=response.Placemark[i];var address=place.address;var countryCode=getElementByName(place,"CountryNameCode");var region1=getElementByName(place,"AdministrativeAreaName");var region2=getElementByName(place,"SubAdministrativeAreaName");var city=getElementByName(place,"LocalityName");var city2=getElementByName(place,"DependentLocalityName");var zip=getElementByName(place,"PostalCodeNumber");var lat=place.Point.coordinates[1];var lon=place.Point.coordinates[0];if(i>0){gcResults+="|"}gcResults+=address+":"+countryCode+":"+region1+":"+region2+":"+city+":"+city2+":"+zip+":"+lat+":"+lon}}gcResultsEl.value=gcResults;succeed.call(this)};var geocodeAddress=function(addressStr,succeed,fail){mcIdEl.value="";gcResultsEl.value="";geocoder.getLocations(addressStr,function(response){addAddressToSubmit(succeed,fail,response)})};var init=function(el){inputEl=$(el).get(0);formEl=inputEl.form;mcIdEl=formEl.mcId;mcNameEl=formEl.mcName;latEl=formEl.lat;lonEl=formEl.lon;geocodeAttemptedEl=formEl.geocodeAttempted||false;gcResultsEl=formEl.gcResults;try{geocoder=new GClientGeocoder()}catch(err){$(formEl).data("isGeocodable",false);return false}$(formEl).data("isGeocodable",true);$(formEl).bind("submit",function(e){submitHandler(e)});$(formEl).bind("geocode",function(){geocodeHandler()})};return{handleSubmit:function(e){submitHandler(e)},init:init}})();Meetup.LocationLiveSearch=(function(){var data={arg_offset:0,arg_token:"",arg_language:Meetup.Language,arg_urlDecode:"true",method:"getLocationMatches",arg_lat:Meetup.GeoLat,arg_lon:Meetup.GeoLon};var init=function(){var $locationSearch=$("#locationSearch");$locationSearch.bind("keyup",function(e){data.arg_token=this.value;data.arg_lat=Meetup.GeoLat;data.arg_lon=Meetup.GeoLon});$locationSearch.autocomplete({source:function(request,response){$("#mcId").val("");var arr=[];$.ajax({url:APIURL,dataType:"json",data:data,success:function(data){response($.map(data,function(item){return{label:item.name,value:item.name,id:item.id}}))}})},focus:function(event,ui){$("#mcId").val(ui.item.id);$locationSearch.data("isUserSelected",true);$locationSearch.trigger("location-change")},minLength:2})};return{init:init}})();
