(function(b){b.fn.afautocomplete=function(h){if("undefined"==typeof this)alert("unkonwn element");else{var c={throttletime:300,ajaxTimeout:5E3,service:null,placesService:null,resultContainer:".coAddLookupDropDown",resultElement:"#lookup-results li",keyboardActiveElementClass:"j-scroll"};b.extend(c,h);var d=!1;b.ajaxSetup({timeout:c.ajaxTimeout});var g=null;return b(this).each(function(h){var f=this;if(b(f).hasClass("j-address-autocomplete-activated"))return!0;b(f).addClass("j-address-autocomplete-activated");
b(f).on("search",function(a){b(c.resultContainer).hide()});b(f).on("keyup",function(a){a="number"==typeof a.which?a.which:a.keyCode;var e=String.fromCharCode(a);0<a&&27!=a&&229!=a&&!/[a-zA-Z0-9-_\.\\\/ ]/.test(e)?window.clearTimeout(g):(q=b(f).val(),/[1-9a-zA-Z]/.test(q))?d||(3<q.length?(window.clearTimeout(g),b(c.resultElement+".j-complete-result").remove(),d=!0,g=window.setTimeout(function(){b(c.resultContainer).show();c.service.getPlacePredictions({input:q,componentRestrictions:{country:["NZ",
"AU"]},types:["geocode"]},function(a,e){e==google.maps.places.PlacesServiceStatus.OK&&(a.forEach(function(a){b('<li class="j-complete-result"></li>').appendTo(c.resultContainer+" ul").html(a.description).data("prediction",a)}),b(".j-complete-result:eq(0)").addClass(c.keyboardActiveElementClass));d=!1});d=!1},c.throttletime)):(window.clearTimeout(g),b(c.resultContainer).hide(),d=!1),b(".addLookup").show()):(window.clearTimeout(g),b(c.resultContainer).hide())});b(document).on("click",c.resultElement+
".j-complete-result",function(){var a={};c.placesService.getDetails({placeId:b(this).data("prediction").place_id},function(e){if(e.address_components){e.address_components.forEach(function(b,c){switch(b.types[0].toString()){case "country":a[b.types[0].toString()]=b.short_name;break;default:a[b.types[0].toString()]=b.long_name}});for(var d in a)"subpremise"==d&&(a.street_number=a[d]+"/"+a.street_number);a.formatted_address="";a.formatted_address+="undefined"==typeof a.street_number?"":a.street_number+
" ";a.formatted_address+="undefined"==typeof a.route?"":a.route;a.formatted_address+="undefined"==typeof a.sublocality_level_1?"":", "+a.sublocality_level_1;a.formatted_address+="undefined"==typeof a.locality?"":", "+a.locality;a.formatted_address+="undefined"==typeof a.postal_code?"":" "+a.postal_code;a.formatted_address+="undefined"==typeof a.country?"":", "+a.country;c.updateFields(a);b(c.resultContainer).hide();b(f).val("")}})});b(document).keyup(function(a){var e=b(c.resultElement+"."+c.keyboardActiveElementClass),
d=b(c.resultElement);a="number"==typeof a.which?a.which:a.keyCode;40==a?(b(f).blur(),e.removeClass(c.keyboardActiveElementClass).next().addClass(c.keyboardActiveElementClass),0==e.next().length&&d.eq(0).addClass(c.keyboardActiveElementClass)):38===a?(b(f).blur(),e.removeClass(c.keyboardActiveElementClass).prev().addClass(c.keyboardActiveElementClass),0==e.prev().length&&d.eq(-1).addClass(c.keyboardActiveElementClass)):13==a&&b(c.resultContainer).is(":visible")&&1==b("."+c.keyboardActiveElementClass).length&&
b("."+c.keyboardActiveElementClass).click()})})}}})(jQuery);