(function(a){Modernizr.load({load:"//maps.googleapis.com/maps/api/js?sensor=false&callback=$.initMaps"}),a.initMaps=function(){var b=a(".map");if(b.length==0)return!1;var c={zoom:14,mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel:!1};b.each(function(){var b=a(this),d=parseFloat(b.attr("lat")),e=parseFloat(b.attr("lng"));if(isNaN(d)||isNaN(e))d=51.163375,e=10.447683;var f=new google.maps.LatLng(d,e),g=new google.maps.Map(this,a.extend(c,{center:f})),h={position:f,clickable:!1,map:g},i=new google.maps.Marker(h);if(b.hasClass("editable")){var j=["street","city","postal_code"],k=["post_box","street_number","floor","room","street_address","route","intersection"],l=b.closest("form").get(0);i.setDraggable(!0);var m=function(){var b=[];return l["company[street]"].value.trim().length>0&&b.push(l["company[street]"].value),(l["company[postal_code]"].value.trim().length>0||l["company[city]"].value.trim().length>0)&&b.push(l["company[postal_code]"].value+" "+l["company[city]"].value),b.push(l["company[state]"].value+" "+a(l["company[country]"]).val()),b.join(", ")},n=function(b){for(var c=0;c<b.length;c++)if(a.inArray(b[c],k)!=-1)return!0;return!1},o=function(b,c){var d=a("#geocoding_message");d.removeClass("alert info notice"),d.addClass(b),a("span",d).hide(),a("."+c,d).show(),d.show()},p=function(){var b=new google.maps.Geocoder;o("notice","in_progress"),b.geocode({address:m()},function(b,c){c==google.maps.GeocoderStatus.OK?(i.setPosition(b[0].geometry.location),g.setCenter(b[0].geometry.location),n(b[0].types)?a("#geocoding_message").hide():o("alert","inaccurate")):o("alert","geocoding_error")})};a(".address",a(l)).change(function(a){for(var b=0;b<j.length;b++)l["company["+j[b]+"]"].value.trim().length==0&&a.preventDefault();p()}),google.maps.event.addListener(i,"position_changed",function(){l["company[latitude]"].value=i.getPosition().lat(),l["company[longitude]"].value=i.getPosition().lng(),a(l).trigger("change")}),a(l).find(".geocode").click(function(a){a.preventDefault(),p()})}})}})(jQuery)
