---
title: "'58 Foundations"
url: https://stacklist.com/card/322b0ff0-fc6e-4e4d-8ff0-6939d017a1a3
source_url: "https://58foundations.com"
summary: "'58 Foundations is a home repair company specializing in foundation repair, basement waterproofing, crawl space encapsulation, concrete leveling, mold removal, and radon mitigation, with over 65 years of experience since 1958. The company offers a life-of-the-structure warranty, money-back guarantee, free inspections, and has earned strong customer testimonials praising their professionalism and integrity."
tags: "foundation-repair, basement-waterproofing, crawl-space-repair, concrete-leveling, mold-removal, home-improvement, radon-mitigation"
key_entities: "Mark McMichen (person), '58 Foundations & Waterproofing (organization), Foundation Repair (concept), Basement Waterproofing (concept), Crawl Space Encapsulation (concept), Concrete Leveling (concept), Radon Mitigation (concept)"
classification: "reference"
content_hash: "sha256:26d861223e499842f4d3042e368a9b411cdf44dd673e8196c9d454f895b46b00"
acp_version: "0.2"
token_counts_approximate: 10016
visibility: public
agent_accessible: true
status: "final"
---

# '58 Foundations

Foundation Repair, Basement Waterproofing &amp; Crawl Space Experts | ’58 Foundations Live operators available: 8am to 11pm weekdays. Saturday &amp; Sunday 9am to 3pm. We're Open 8am–12am EST weekdays. Saturday & Sunday 9am–12am EST. Foundation Repair Basement Waterproofing Crawl Space Repair Concrete Leveling Mold Removal Egress Window Limited Time: 50% Off Labor*&nbsp;-&nbsp;Projects you’ve been putting off just got affordable. Anyone can say they can fix it. We guarantee it... for Life! Trusted by your neighbors, endorsed by top home inspectors, and approved by structural engineers. Call 888-698-1958 Call Now for Priority Scheduling tag for other button types --> Schedule Free Inspection In under 2 minutes Discover why over a million homeowners have chosen us We&#039;ve been helping homeowners repair their homes since 1958 – so we&#039;ve seen and fixed it all. That’s experience you can count on to get the job done right. 65+ Years Experience Money Back Guarantee Honest &amp; Fair Pricing Life-Of-The-Structure-Warranty Easy Financing** Customers Love Us Call 888-698-1958 Call Now for Priority Scheduling tag for other button types --> Schedule Free Inspection In under 2 minutes Award winning services Foundation Repair, Basement Waterproofing, Crawl Space Repair Experts Foundation Repair Wall cracks, bowing walls, and settlement Basement Waterproofing Protect against basement leaks and moisture Crawl Space Repair Crawl space encapsulation and waterproofing Concrete Leveling Expert lifting and leveling of sunken concrete surfaces Mold Removal Protect your home and health from mold Radon Mitigation Protect your family from dangerous radon gas Egress Window Provide safety and a finished look for your basement "You Saved My Home!" I'm immensely grateful to you and your team. Despite a challenging situation, your friendly and efficient team completed the job promptly. Just two weeks later we needed it and I can't imagine the devastation without it. You saved my home, thank you from the bottom of my heart! - Rich M, Basement Waterproofing We were very pleased with the techs who performed the work in our basement. They listened to our concerns and were very... View full review We were very pleased with the techs who performed the work in our basement. They listened to our concerns and were very prompt with responding to our questions. Read less Jessica B. Happy Customer --> Excellent work; great customer service. Got the job done quickly and did it right. David L Happy Customer --> Had a crack in my basement wall fixed. ’58 Foundations &amp; Waterproofing called ahead, showed up on time, were professional and courteous.... View full review Had a crack in my basement wall fixed. ’58 Foundations &amp; Waterproofing called ahead, showed up on time, were professional and courteous. The crack repair was just a stop-gap as we're looking to have the entire basement done with a water mitigation system. We'll be going with them for that once we get some other projects off our plate. Read less Greg Y. Happy Customer --> The thought of house repairs, especially to the foundation, can easily cause a sense of dread. I was impressed by the open... View full review The thought of house repairs, especially to the foundation, can easily cause a sense of dread. I was impressed by the open and prompt communication by every member of the ’58 Foundations &amp; Waterproofing team. I loved the embrace of technology to see the work in progress via pictures and pay remotely. Read less Eddie B. Happy Customer --> While other waterproofing companies could&#039;ve milked me for Thousands of Dollars for unnecessary waterproofing, I am so glad that I called ’58... View full review While other waterproofing companies could've milked me for Thousands of Dollars for unnecessary waterproofing, I am so glad that I called ’58 Foundations &amp; Waterproofing to get the issue resolved. I greatly appreciate the Knowledge, Honesty and Integrity exhibited with ’58 Foundations &amp; Waterproofing! I Highly Recommend this company! Read less Hillary C. Happy Customer --> The service is exceptional, there is superior attention to detail and the price is affordable. And, the installation works; which is most... View full review The service is exceptional, there is superior attention to detail and the price is affordable. And, the installation works; which is most important. I can now say goodbye to water problems in my home! Read less Steve C. Happy Customer --> We couldn&#039;t believe how careful they were around our existing rough ins and pipes and were shocked that our grass looked like... View full review We couldn't believe how careful they were around our existing rough ins and pipes and were shocked that our grass looked like it wasn't even touched! We noticed that there was a conflict with a rough in that wasn't even their problem and was an issue the original plumber, but because it was in question for a second, they fixed it for free! Read less Sofia K. Happy Customer --> Great reliable products. Hands down best quality out there. Kyle L Happy Customer --> Great experience. All work was done as expected and on time. They educated us on how it all works, and did a... View full review Great experience. All work was done as expected and on time. They educated us on how it all works, and did a wonderful job with the installation. Highly recommend. Read less Tyler W. Happy Customer --> We had multiple quotes, but noticed the other companies were upselling more and more, very used car salesman like, but ’58 Foundations... View full review We had multiple quotes, but noticed the other companies were upselling more and more, very used car salesman like, but ’58 Foundations &amp; Waterproofing made us feel comfortable during the sales process. With this being a big expense, they have multiple options on payment, and we were thankful for this as we had multiple projects going on at the same time. Read less Joe K Happy Customer --> Frequently Asked Questions Do you offer financing? Yes, we offer financing** with approved credit to fit your budget. We use multiple financing companies, so we have a better chance of helping you find a financing plan that works for you. How long does an estimate take? We ask that you set aside 1 hour for a thorough inspection and price estimate. Time will vary, shorter or longer, depending on the complexity or questions you may have. We are happy to spend as much time as necessary to get the correct solution and accurate cost estimate. Do you offer appointments outside of listed business hours? Yes. When you call to schedule an appointment, we will be able to work with you to accommodate your schedule. What exactly can I expect from a free estimate? You can expect a few things: We will show up on time. We will do a thorough inspection your basement or crawl space, inside and out, to make sure we understand the situation. We will ask a lot of questions to better understand the problem and your concerns. We will explain what we’ve seen and present you with our solution to fix the problem. We will let you know the cost to fix the problem. We certainly would love to earn your business, but we will NOT pressure you into buying. Does homeowner’s insurance cover basement waterproofing, foundation repair, radon mitigation, or mold removal? It is not typical that homeowner’s insurance covers any of the basement, crawl space or foundation repair services that we offer. To know for sure, check your home owner’s insurance policy and/or speak with your insurance company. Still have any questions? Contact us Schedule your free estimate at a time that works best for you! Evenings | Weekends | Weekdays Appointment scheduling that fits your schedule. Easy-and-affordable payment options* and the industry's ONLY money-back guarantee and life-of-the-structure warranty protection combo. Money-back Guarantee § Life-of-the-Structure Warranty † Over 1-million Happy Customers since 1958 A+ Better Business Bureau Rating 4.8/5 Star-rating on Google Best Prices. Best Financing Options. Guaranteed. Free No-Obligation Quote 1 Address 2 Contact 3 Comments Address (Required) Street Address City Alabama Alaska American Samoa Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Guam Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Northern Mariana Islands Ohio Oklahoma Oregon Pennsylvania Puerto Rico Rhode Island South Carolina South Dakota Tennessee Texas Utah U.S. Virgin Islands Vermont Virginia Washington West Virginia Wisconsin Wyoming Armed Forces Americas Armed Forces Europe Armed Forces Pacific State ZIP Code Next First Name (Required) Last Name (Required) Mobile Phone (Required) Email (Required) Previous Next Service (Required) Foundation Repair Basement Waterproofing Crawl Space Encapsulation Concrete Lifting Other Tell us about your issue Privacy &amp; Consent (Required) I agree to the Terms & Conditions and Privacy Policy. (Required) By checking this box and signing up for texts, you authorize &#039;58 Foundations &amp; Waterproofing to text/call the number above, possibly using automated means and/or AI-generated calls/content, including appointment reminders, informational, marketing, and promotional messages such as sales, coupons, seasonal deals, etc. We will never share your personal information with third parties for marketing purposes. Msg/data rates apply, msg frequency varies. Text HELP for help and STOP to unsubscribe. Learn more on our Privacy Policy and Terms & Conditions page. Previous Submit Call Us To Schedule Now 888-698-1958 We respect your privacy. By submitting, you authorize '58 Foundations and Waterproofing to reach you via call, email or text for information about your project needs. We will never share your personal information with third parties for marketing purposes. You can opt out at any time. Message/data rates may apply. Consent is not a condition of purchase. Privacy Policy facebook-square linkedin-square angle-down youtube-play instagram cross-circle &times; Limited Time Offer Pick Your Discount Foundation, basement, or crawl space, pick the discount that fits your budget. Free in-home inspection. Lifetime transferable written warranty. 48 MONTHS NO INTEREST* Schedule now &rarr; or 18 MONTHS NO INTEREST* NO PAYMENTS Schedule now &rarr; or $1,500 OFF PROJECT TOTAL Schedule now &rarr; Hi there, have a question? Text us here! &times; Text Us! &times; First Name (Required) Last Name (Required) Mobile Phone (Required) ZIP Code (Required) Tell us about your issue Text Me By submitting this form, I authorize &#039;58 Foundations &amp; Waterproofing to call or text me at the phone number provided regarding services using automated technology. I understand that consent is not a condition of purchase. Msg &amp; data rates may apply. Text Us! <script id="vt-gpaa-single-line" defer src="data:text/javascript,%28function%28%24%29%20%7B%0A%20%20%20%20%20%20%20%20%27use%20strict%27%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28typeof%20%24%20%3D%3D%3D%20%27undefined%27%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20var%20VT_GPAA%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20enhancedFields%3A%20%7B%7D%2C%20%2F%2F%20Track%20which%20fields%20have%20been%20enhanced%0A%20%20%20%20%20%20%20%20%20%20%20%20globalEnabled%3A%20false%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Initialize%20GPAA%20single%20line%20for%20all%20applicable%20forms%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20self%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Find%20forms%20that%20should%20use%20single-line%20autocomplete%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28%27%5Bdata-vanterra-form%5D%27%29.each%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24wrapper%20%3D%20%24%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20formSlug%20%3D%20%24wrapper.data%28%27vanterra-form%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Check%20if%20enabled%20for%20this%20form%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20formEnabled%20%3D%20%24wrapper.data%28%27address-autocomplete%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28formEnabled%20%3D%3D%3D%20%27false%27%20%7C%7C%20formEnabled%20%3D%3D%3D%20%270%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%20%2F%2F%20Explicitly%20disabled%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21self.globalEnabled%20%26%26%20formEnabled%20%21%3D%3D%20%27true%27%20%26%26%20formEnabled%20%21%3D%3D%20%271%27%20%26%26%20formEnabled%20%21%3D%3D%20true%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%20%2F%2F%20Not%20enabled%20globally%20and%20not%20enabled%20for%20this%20form%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.initForm%28%24wrapper%2C%20formSlug%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Initialize%20single-line%20autocomplete%20for%20a%20specific%20form%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Runs%20on%20every%20page%20change%20to%20catch%20address%20fields%20on%20later%20pages%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20initForm%3A%20function%28%24wrapper%2C%20formSlug%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20self%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24form%20%3D%20%24wrapper.find%28%27form%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21%24form.length%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20formId%20%3D%20%24form.attr%28%27id%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21formId%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20numericFormId%20%3D%20formId.replace%28%27gform_%27%2C%20%27%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Find%20ALL%20address%20containers%20in%20the%20form%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24allAddressContainers%20%3D%20%24form.find%28%27.ginput_container_address%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Total%20address%20containers%20in%20form%3A%27%2C%20%24allAddressContainers.length%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Filter%20to%20only%20visible%20ones%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24addressFields%20%3D%20%24allAddressContainers.filter%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24this%20%3D%20%24%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Check%20if%20the%20field%20itself%20or%20its%20parent%20gfield%20is%20visible%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24gfield%20%3D%20%24this.closest%28%27.gfield%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20isVisible%20%3D%20%24gfield.is%28%27%3Avisible%27%29%20%26%26%20%24gfield.css%28%27visibility%27%29%20%21%3D%3D%20%27hidden%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Address%20field%20visible%3F%27%2C%20isVisible%2C%20%24gfield.attr%28%27id%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20isVisible%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29.closest%28%27.gfield%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Visible%20address%20fields%3A%27%2C%20%24addressFields.length%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21%24addressFields.length%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%20%2F%2F%20No%20visible%20address%20fields%20on%20current%20page%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24addressFields.each%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24field%20%3D%20%24%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20fieldId%20%3D%20self.getFieldId%28%24field%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20fieldKey%20%3D%20formId%20%2B%20%27_%27%20%2B%20fieldId%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Processing%20field%27%2C%20fieldId%2C%20%27key%3A%27%2C%20fieldKey%2C%20%27already%20enhanced%3F%27%2C%20%21%21self.enhancedFields%5BfieldKey%5D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Skip%20if%20already%20enhanced%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28self.enhancedFields%5BfieldKey%5D%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Enhancing%20address%20field%27%2C%20fieldId%2C%20%27on%20form%27%2C%20formSlug%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.enhanceAddressField%28%24field%2C%20numericFormId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.enhancedFields%5BfieldKey%5D%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Enhance%20an%20address%20field%20with%20single-line%20autocomplete%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20enhanceAddressField%3A%20function%28%24addressField%2C%20formId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20self%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Get%20the%20field%20ID%20from%20the%20address%20field%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20addressFieldId%20%3D%20this.getFieldId%28%24addressField%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21addressFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Could%20not%20determine%20address%20field%20ID%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Check%20if%20we%20already%20enhanced%20this%20field%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24addressField.data%28%27gpaa-enhanced%27%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24addressField.data%28%27gpaa-enhanced%27%2C%20true%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Get%20the%20label%20%28without%20the%20required%20indicator%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24originalLabel%20%3D%20%24addressField.find%28%27.gfield_label%27%29.first%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24requiredSpan%20%3D%20%24originalLabel.children%28%27.gfield_required%27%29.first%28%29.clone%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20labelText%20%3D%20%24originalLabel.clone%28%29.find%28%27.gfield_required%27%29.remove%28%29.end%28%29.text%28%29.trim%28%29%20%7C%7C%20%27Address%27%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Check%20if%20field%20is%20required%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20isRequired%20%3D%20%24addressField.hasClass%28%27gfield_contains_required%27%29%20%7C%7C%20%24requiredSpan.length%20%3E%200%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Create%20the%20single-line%20input%20container%20-%20match%20GF%27s%20class%20structure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20inputId%20%3D%20%27vt_gpaa_input_%27%20%2B%20formId%20%2B%20%27_%27%20%2B%20addressFieldId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20wrapperClasses%20%3D%20%27gfield%20gfield--type-text%20vt-gpaa-single-line-field%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28isRequired%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wrapperClasses%20%2B%3D%20%27%20gfield_contains_required%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24inputWrapper%20%3D%20%24%28%27%3Cdiv%20class%3D%22%27%20%2B%20wrapperClasses%20%2B%20%27%22%20data-gpaa-for%3D%22%27%20%2B%20addressFieldId%20%2B%20%27%22%3E%3C%2Fdiv%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24inputContainer%20%3D%20%24%28%27%3Cdiv%20class%3D%22ginput_container%20ginput_container_text%22%3E%3C%2Fdiv%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24input%20%3D%20%24%28%27%3Cinput%20type%3D%22text%22%20id%3D%22%27%20%2B%20inputId%20%2B%20%27%22%20class%3D%22large%22%20placeholder%3D%22Start%20typing%20your%20address...%22%20autocomplete%3D%22off%22%3E%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28isRequired%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24input.attr%28%27aria-required%27%2C%20%27true%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Build%20label%20with%20proper%20required%20indicator%20structure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24newLabel%20%3D%20%24%28%27%3Clabel%20class%3D%22gfield_label%20gform-field-label%22%20for%3D%22%27%20%2B%20inputId%20%2B%20%27%22%3E%3C%2Flabel%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24newLabel.text%28labelText%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28isRequired%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24requiredSpan.length%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Use%20the%20original%20required%20span%20structure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24newLabel.append%28%24requiredSpan%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Create%20the%20required%20span%20structure%20matching%20GF%27s%20format%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24newLabel.append%28%27%3Cspan%20class%3D%22gfield_required%22%3E%3Cspan%20class%3D%22gfield_required%20gfield_required_text%22%3E%28Required%29%3C%2Fspan%3E%3C%2Fspan%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24inputContainer.append%28%24input%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24inputWrapper.append%28%24newLabel%29.append%28%24inputContainer%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Insert%20before%20the%20address%20field%20and%20hide%20the%20address%20field%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24addressField.before%28%24inputWrapper%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24addressField.addClass%28%27vt-gpaa-hidden-address%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Created%20single-line%20input%20for%20address%20field%27%2C%20addressFieldId%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Set%20up%20Google%20Places%20autocomplete%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.initAutocomplete%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Set%20up%20blur%20validation%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24input.on%28%27blur%27%2C%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20filledValue%20%3D%20%24%28this%29.data%28%27gpaa-selected-address%27%29%20%7C%7C%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28filledValue%20%26%26%20%24%28this%29.val%28%29%20%21%3D%3D%20filledValue%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.val%28filledValue%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Initialize%20Google%20Places%20Autocomplete%20on%20the%20input%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20initAutocomplete%3A%20function%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20self%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Wait%20for%20Google%20Maps%20to%20be%20loaded%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28typeof%20google%20%3D%3D%3D%20%27undefined%27%20%7C%7C%20typeof%20google.maps%20%3D%3D%3D%20%27undefined%27%20%7C%7C%20typeof%20google.maps.places%20%3D%3D%3D%20%27undefined%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Google%20Maps%20not%20loaded%20yet%2C%20waiting...%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.initAutocomplete%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20500%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Check%20if%20GPAA%20is%20available%20and%20use%20its%20autocomplete%2C%20otherwise%20set%20up%20our%20own%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28typeof%20GPAAInputs%20%21%3D%3D%20%27undefined%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20GPAA%20is%20loaded%20-%20hook%20into%20it%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.hookIntoGPAA%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Set%20up%20our%20own%20autocomplete%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.setupOwnAutocomplete%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Hook%20into%20existing%20GPAA%20if%20available%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20hookIntoGPAA%3A%20function%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20self%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Use%20gform%20filter%20to%20override%20the%20autocomplete%20input%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28typeof%20gform%20%21%3D%3D%20%27undefined%27%20%26%26%20typeof%20gform.addFilter%20%3D%3D%3D%20%27function%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20filterName%20%3D%20%27gpaa_init_args_%27%20%2B%20formId%20%2B%20%27_%27%20%2B%20addressFieldId%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gform.addFilter%28filterName%2C%20function%28args%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20args.inputSelectors%20%3D%20args.inputSelectors%20%7C%7C%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20args.inputSelectors.autocomplete%20%3D%20%27%23%27%20%2B%20%24input.attr%28%27id%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Hooked%20into%20GPAA%20for%20field%27%2C%20addressFieldId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20args%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Also%20capture%20the%20selected%20value%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gform.addFilter%28%27gpaa_values%27%2C%20function%28values%2C%20place%2C%20gpaa%2C%20eventFormId%2C%20eventFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28formId%20%3D%3D%20eventFormId%20%26%26%20addressFieldId%20%3D%3D%20eventFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20fullAddress%20%3D%20place.formatted_address%20%7C%7C%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24input.data%28%27gpaa-selected-address%27%2C%20fullAddress%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Address%20selected%3A%27%2C%20fullAddress%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20values%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Set%20up%20our%20own%20autocomplete%20if%20GPAA%20is%20not%20available%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20setupOwnAutocomplete%3A%20function%28%24input%2C%20%24addressField%2C%20formId%2C%20addressFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20self%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20input%20%3D%20%24input%5B0%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20autocomplete%20%3D%20new%20google.maps.places.Autocomplete%28input%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20types%3A%20%5B%27address%27%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20componentRestrictions%3A%20%7B%20country%3A%20%27us%27%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20autocomplete.addListener%28%27place_changed%27%2C%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20place%20%3D%20autocomplete.getPlace%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21place.geometry%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Place%20selected%3A%27%2C%20place.formatted_address%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24input.data%28%27gpaa-selected-address%27%2C%20place.formatted_address%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Fill%20in%20the%20hidden%20address%20field%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.fillAddressField%28%24addressField%2C%20place%2C%20formId%2C%20addressFieldId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Own%20autocomplete%20initialized%20for%20field%27%2C%20addressFieldId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.error%28%27%5BVT%20GPAA%5D%20Error%20initializing%20autocomplete%3A%27%2C%20e%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2A%2A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%20Fill%20the%20hidden%20address%20field%20with%20place%20data%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20%20%20%20%20fillAddressField%3A%20function%28%24addressField%2C%20place%2C%20formId%2C%20addressFieldId%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20components%20%3D%20%7B%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Parse%20address%20components%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28place.address_components%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20place.address_components.forEach%28function%28component%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20types%20%3D%20component.types%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28types.includes%28%27street_number%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20components.street_number%20%3D%20component.long_name%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28types.includes%28%27route%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20components.route%20%3D%20component.long_name%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28types.includes%28%27locality%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20components.city%20%3D%20component.long_name%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28types.includes%28%27administrative_area_level_1%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20components.state_short%20%3D%20component.short_name%3B%20%2F%2F%20e.g.%2C%20%22CA%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20components.state_long%20%3D%20component.long_name%3B%20%20%20%2F%2F%20e.g.%2C%20%22California%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28types.includes%28%27postal_code%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20components.zip%20%3D%20component.long_name%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27%5BVT%20GPAA%5D%20Address%20components%3A%27%2C%20components%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Build%20street%20address%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20street%20%3D%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28components.street_number%29%20street%20%2B%3D%20components.street_number%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28components.route%29%20street%20%2B%3D%20%28street%20%3F%20%27%20%27%20%3A%20%27%27%29%20%2B%20components.route%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Fill%20in%20the%20fields%20using%20multiple%20selector%20strategies%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20prefix%20%3D%20%27input_%27%20%2B%20formId%20%2B%20%27_%27%20%2B%20addressFieldId%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Street%20%28input%20.1%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24street%20%3D%20%24addressField.find%28%27%5Bid%24%3D%22%27%20%2B%20addressFieldId%20%2B%20%27_1%22%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24street.val%28street%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20City%20%28input%20.3%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24city%20%3D%20%24addressField.find%28%27%5Bid%24%3D%22%27%20%2B%20addressFieldId%20%2B%20%27_3%22%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24city.val%28components.city%20%7C%7C%20%27%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20State%20%28select%20or%20input%20.4%29%20-%20handle%20both%20dropdown%20and%20text%20input%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24state%20%3D%20%24addressField.find%28%27%5Bid%24%3D%22%27%20%2B%20addressFieldId%20%2B%20%27_4%22%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24state.is%28%27select%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20It%27s%20a%20dropdown%20-%20find%20the%20matching%20option%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Priority%3A%20match%20full%20state%20name%20first%2C%20then%20abbreviation%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20stateLong%20%3D%20%28components.state_long%20%7C%7C%20%27%27%29.trim%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20stateShort%20%3D%20%28components.state_short%20%7C%7C%20%27%27%29.trim%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20%24option%20%3D%20null%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20First%20try%3A%20exact%20match%20on%20full%20state%20name%20%28text%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28stateLong%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24option%20%3D%20%24state.find%28%27option%27%29.filter%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%24%28this%29.text%28%29.trim%28%29.toUpperCase%28%29%20%3D%3D%3D%20stateLong.toUpperCase%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Second%20try%3A%20exact%20match%20on%20abbreviation%20%28value%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%28%21%24option%20%7C%7C%20%21%24option.length%29%20%26%26%20stateShort%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24option%20%3D%20%24state.find%28%27option%27%29.filter%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%24%28this%29.val%28%29.toUpperCase%28%29%20%3D%3D%3D%20stateShort.toUpperCase%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%
