Deprecated: Merkulove\Readabler\Unity\MobileDetect::__construct(): Implicitly marking parameter $headers as nullable is deprecated, the explicit nullable type must be used instead in /home/vwarranty/public_html/wp-content/plugins/readabler/src/Merkulove/Unity/MobileDetect.php on line 710

Deprecated: Merkulove\Readabler\Unity\MobileDetect::__construct(): Implicitly marking parameter $userAgent as nullable is deprecated, the explicit nullable type must be used instead in /home/vwarranty/public_html/wp-content/plugins/readabler/src/Merkulove/Unity/MobileDetect.php on line 710
Why Warranty Companies Require Vehicle Tear-Downs

Why Warranty Companies Ask for Tear-Downs

When your car breaks down, and you try to use your warranty, the company might ask you to pay for something called a teardown. This can feel unfair, especially when you already bought the warranty to avoid surprise costs. You’re not alone in wondering why this happens and what you can do about it.

Understanding Tear-Downs in Car Warranties

What Is a Tear-Down?

A teardown is when a mechanic takes apart a section of your car to see what’s really wrong inside. Think of it like opening a box to check what’s broken inside, instead of just looking at the outside. The mechanic might need to remove engine parts, take off covers, or open up the transmission to find the exact problem.

For example, if your engine is making strange noises, the outside might look fine. But the real problem could be hiding inside. Maybe a seal broke, or a part wore out. The mechanic won’t know for sure until they open things up and look inside. That’s the teardown.

The process usually involves removing bolts, taking off covers, draining fluids, and carefully opening the area where the problem seems to be. Once the mechanic sees inside, they can tell exactly what broke and why it broke. After the teardown, they write a report about what they found. This report helps the warranty company decide if they’ll pay for the fix or not.

Why This Matters to Car Owners

Here’s where things get tricky for you. Tear-downs cost money. Someone has to pay the mechanic for the time it takes to take things apart and put them back together. Sometimes this can cost $400, $500, or even more, depending on how complicated the job is.

If the warranty company finds out the problem is covered under your service contract, they usually pay for the teardown. But if they decide the problem isn’t covered, you might have to pay for both the teardown and the actual repair. This puts you in a tough spot. You need the teardown to prove what’s wrong, but if the answer isn’t what the warranty company wants to hear, you’re stuck with the bill.

I’ve seen people get surprised by this. They think their warranty covers everything, so they agree to the teardown. Then they find out the company won’t pay because of some exclusion in the fine print. Now they owe money they didn’t plan to spend. It’s one of the most frustrating parts of dealing with extended warranties.

The Real Reasons Behind Tear-Down Requests

Inspecting for Covered vs. Non-Covered Damage

Warranty companies ask for tear-downs mainly to figure out if the damage is something they have to pay for. Your warranty has a list of things it covers and a longer list of things it doesn’t cover. The company needs to know which list your problem falls under.

Let’s say your engine stopped working. From the outside, it just looks broken. But once the mechanic does a tear-down, they might find that a hose cracked and all the coolant leaked out. If hoses aren’t covered in your contract, the warranty company will say no to your claim. They’ll point to the exclusions section and say the damage happened because of a non-covered part.

Or maybe the teardown shows you didn’t change your oil often enough, and that caused the engine to overheat. Most service contracts don’t cover damage from poor maintenance. The company will deny your claim and say it’s your fault for not taking care of the car. According to the California Department of Insurance, many claims get denied because the breakdown happened due to wear and tear or lack of proper upkeep.

The warranty company isn’t necessarily trying to cheat you. They’re protecting themselves from paying for things that aren’t in the contract. But from your side, it can feel like they’re looking for any excuse to say no. The tear-down is their way of finding that excuse.

Finding the Root Cause of Failures

Sometimes a part breaks, but the real question is why it broke. Did it break because it was badly made? Or did something else cause it to break? The warranty company needs to know the root cause.

For example, your transmission might be covered. But if the teardown shows the transmission broke because you were towing too much weight without a proper tow package, that’s different. The transmission failure happened because of how you used the car, not because the transmission was bad. The company will deny the claim based on an exclusion for towing excessive weight.

Or let’s say your engine has a problem. The teardown might show that one covered part broke, but it broke because a non-covered part failed first. If a seal (which isn’t covered) leaked and caused the engine to overheat, the company might refuse to pay for the engine damage. They’ll say the seal caused the problem, and seals aren’t in your contract.

This is where things get really complicated. The teardown might show multiple problems all connected to each other. The warranty company will look at the chain of events and try to find the one thing that’s not covered. If they can connect your engine problem back to that one excluded part or excluded cause, they’ll deny your claim.

I remember talking to someone whose car had engine trouble. The teardown showed a part failed, but it happened after the car overheated. The warranty didn’t cover overheating damage, so the company said no. The car owner felt tricked because the part itself was listed as covered in the warranty booklet. But the way it broke put it outside the coverage.

Is It Legal for Warranty Companies to Ask You to Pay?

What the Law Says About Tear-Down Fees

This is one of the biggest questions car owners have. Can the warranty company really make you pay for the teardown? The answer isn’t simple, and it depends on where you live and what your contract says.

According to consumer protection attorney Robert F. Salvin, a service contract is basically a form of insurance. With insurance, you usually just need to show you have a covered claim. Once you do that, the burden shifts to the insurance company to prove any exclusions apply. In other words, you shouldn’t have to pay extra money to help them find reasons to deny you.

If you already have a diagnosis from a mechanic that shows a covered breakdown, some legal experts say you’ve done your part. The warranty company should pay for any additional inspection they want. Making you pay for the teardown puts an unfair burden on you, especially if you can’t afford it.

However, many warranty contracts include language that says you must allow inspections and tear-downs. Some contracts even say you might have to pay for the teardown if the problem ends up being excluded from coverage. The contract language gives the company legal protection.

The Federal Trade Commission warns consumers to read their warranty documents carefully. Look for sections about how claims are handled and who pays for diagnostic work. If the contract says you’ll pay for tear-downs when the problem isn’t covered, that’s probably legal, even if it feels wrong.

Your Rights as a Consumer

Even though the contract might say you have to pay, you still have rights. You can push back. You can question the denial. You can ask for help.

First, you have the right to understand why your claim was denied. The warranty company must explain which exclusions they’re using and why those exclusions apply to your situation. They can’t just say no without giving you a reason. Ask them to point to the exact language in the contract. Ask for their evidence that the exclusion applies.

You also have the right to appeal. If you disagree with the denial, you can write to the company and explain why you think they’re wrong. Include any evidence you have, like maintenance records or letters from your mechanic. Many service contracts have a backup insurance company that guarantees the warranty. If the main company denies your claim, you can appeal to the backup insurer.

If you’re in California, the California Department of Insurance can help. They regulate warranty companies and will investigate complaints. Other states have similar agencies. You can file a complaint and ask them to look into whether the company is treating you fairly. Sometimes, just knowing a state agency is watching makes companies more willing to work with you.

You might also have the right to take the company to court. If the claim is $10,000 or less, you can file in small claims court without needing a lawyer. If it’s more than that, you might want to talk to a consumer protection attorney.

The important thing is not to give up just because they said no. Many people accept the first denial and pay out of pocket. But if you question the decision and stand up for yourself, you might get a different answer.


How Tear-Downs Work in the Claims Process

 

How Tear-Downs Work in the Claims Process

Getting Approval Before Repairs

Most warranties require you to call them before you start any repairs. This is called getting pre-approval. If you don’t call first and just go ahead with the fix, they might refuse to pay anything at all. This rule is in almost every extended warranty contract.

When you call, they’ll ask questions about what’s wrong with your car. They might ask you to take it to a specific repair shop or dealer that they work with. Or they might send their own inspector to look at your car. This is all part of the claims process.

If they think a teardown is needed, they’ll tell you. Sometimes they’ll arrange for their mechanic to do it. Other times, they’ll ask you to approve the teardown at your current shop. Either way, they want to control the process so they can make sure the teardown is done right and the results are accurate.

You might feel pressure to agree quickly. The shop might tell you they need to start work. Your car might break down somewhere. You might need it for work. But before you say yes to a teardown, make sure you understand who pays if the problem isn’t covered.

Ask the warranty company directly: “If the tear-down shows this problem isn’t covered, who pays for the tear-down?” Get their answer in writing if you can, or at least write down the name of the person you talked to and the date and time. This can help you later if there’s a dispute.

What Happens During the Inspection

Once the teardown starts, the mechanic will carefully take apart the problem area. They’ll look for signs of what went wrong. They’re looking for clues like burnt parts, broken pieces, leaks, or wear and tear.

The mechanic will take pictures and notes. They’ll measure things. They’ll check for proper fluid levels and look at the condition of different parts. All of this information goes into a report.

The report is what the warranty company uses to make its decision. If the report shows a covered part broke for a covered reason, you should get a claim authorization number. This number is the company’s promise to pay. Make sure you write it down along with what repairs they approved.

If the report shows something excluded, the company will call and tell you they’re denying the claim. They’ll explain what the mechanic found and why it’s not covered. This is your chance to ask questions and push back if something doesn’t seem right.

Sometimes the mechanic at the shop disagrees with the warranty company’s inspector. Your mechanic might say the problem is definitely covered, while the company’s inspector says it’s not. When this happens, you’re caught in the middle. You might need to get your mechanic to call the warranty company and explain their side. Or you might need to get a second opinion from another shop.

The whole process can take days or even weeks. While this is happening, your car is sitting in the shop. You might be paying for a rental car or relying on rides from friends. It’s stressful and expensive even before you know if the warranty will pay.

Common Problems Car Owners Face

When Companies Deny Claims After Tear-Downs

One of the worst feelings is paying for a teardown, waiting for the results, and then hearing the warranty company say no. It happens more often than it should.

The company might say the problem was caused by negligence or abuse. They might say you drove with a dashboard warning light on, which is called continued operations. Most warranties won’t pay if you kept driving after the car warned you to stop. Even if you didn’t know what the light meant, they’ll still use this as a reason to deny your claim.

They might say the problem is pre-existing, meaning it started before you bought the warranty. Proving this is hard for them, but they’ll try. They’ll look at when the warranty started and when the problem showed up. If there’s any chance the problem existed before the contract began, they’ll deny the claim.

Or they might point to something in the exclusions section that seems to apply. Maybe the problem involves a seal or gasket, and those aren’t covered. Maybe it involves overheating, and overheating damage is excluded. Maybe you don’t have perfect maintenance records, and they’ll say you didn’t maintain the car properly.

When this happens, you’re stuck. You already paid for the teardown. Now you have to pay for the repair too. And you still have the warranty, but you’re starting to wonder if it’s worth anything.

I’ve talked to people who felt like the company was just looking for excuses. The teardown report showed a covered part failed, but the company found one small thing in the report to use as a reason to say no. It feels like the game is rigged against you.

The Cost Burden on Vehicle Owners

Let’s talk about money. Tear-downs are expensive. Depending on the car and the problem, you might pay anywhere from $200 to $1,000 or more just to have the mechanic take things apart and look inside.

If the warranty pays, you’re fine. But if they don’t, that money comes out of your pocket. And that’s just the teardown. The actual repair might cost hundreds or thousands more.

Many people don’t have that kind of money saved up. They bought the warranty specifically to avoid surprise car expenses. Now they’re facing the exact situation they tried to prevent. It’s stressful and can cause real financial problems.

Some people can’t afford the teardown at all. The shop wants money upfront before they’ll do the work. The warranty company won’t commit to paying until after the teardown is done. You’re stuck in the middle with no good options.

This is especially hard for people with older, high-mileage cars. They know the car might need expensive repairs, so they bought a warranty for protection. But older cars are more likely to have problems that the warranty won’t cover. Wear and tear is more common. Parts that weren’t coveredarender the warranty start to fail. The whole reason you need the warranty is the same reason the company is more likely to deny your claims.

What to Do If You’re Asked to Pay for a Tear-Down

Steps to Protect Your Rights

If a warranty company asks you to pay for a teardown, don’t panic. Take a breath and think through your options. You have more power than you might realize.

First, read your contract again. Look for the section about claims and inspections. What does it actually say about tear-downs and who pays? Sometimes what the company tells you on the phone isn’t exactly what the contract says. Know what you agreed to.

Second, ask the company questions. Be polite but firm. Ask why they need a teardown. Ask what they’re looking for. Ask what happens if the problem turns out to be covered versus not covered. Ask who pays in each scenario. Write down their answers.

Third, get your own mechanic’s opinion. If you haven’t already, have a trusted mechanic look at the car and give you a diagnosis. A good mechanic can often tell what’s wrong without a full teardown. If your mechanic says the problem is definitely covered under your warranty, ask them to put that in writing. This gives you evidence to use if the company denies your claim.

Fourth, document everything. Keep copies of all paperwork. Save emails. Write down the names of everyone you talk to at the warranty company. Note the dates and times of phone calls. If they promise something, ask them to send it in writing. All of this documentation can help if you need to appeal or file a complaint later.

Fifth, consider paying for the teardown if you think you have a strong case and can afford it. Sometimes you have to invest money to get money. If you’re confident the problem is covered and you have good maintenance records, paying for the teardown might be worth it. Just make sure you understand the risks first.

Getting Help from Consumer Protection Agencies

You don’t have to fight alone. Several agencies exist to help consumers with warranty problems.

Start with your state insurance department. In California, it’s the California Department of Insurance. Other states have similar agencies. They regulate warranty companies and investigate complaints. You can file a complaint online or by phone. The agency will contact the company and ask for its side of the story. Sometimes this pressure is enough to make the company reconsider.

The Federal Trade Commission also handles complaints about unfair business practices. They won’t solve your individual problem, but they track complaints and can take action against companies that break the rules. Filing a complaint helps them see patterns and protect other consumers.

Your state attorney general’s office might help, too. Many attorney general offices have consumer protection divisions. They can investigate companies that operate illegally or use deceptive practices.

If your car is being repaired at a shop and you’re having problems with the quality of work, contact your state’s Bureau of Automotive Repair or equivalent agency. They license and regulate repair shops. They can investigate if a shop is doing poor work or charging unfair prices.

Don’t forget about legal help. Consumer protection lawyers often offer free consultations. They can tell you if the company is violating the law and if you have a case worth pursuing. Some lawyers work on contingency, meaning they only get paid if you win. This makes legal help more accessible, even if you don’t have money for upfront legal fees.

How to Avoid Tear-Down Issues

How to Avoid Tear-Down Issues

Keep Your Maintenance Records

The single best thing you can do to protect yourself is keep good maintenance records. This sounds simple, but most people don’t do it. Then, when the warranty company asks for proof, they have nothing to show.

Save every receipt from every oil change, tire rotation, belt replacement, and inspection. Keep them in a folder in your ca,r or take pictures and store them on your phone. If you do your own maintenance, keep receipts for the parts you bought and write down the date and mileage when you did the work.

Many warranty denials happen because the company claims you didn’t maintain the car properly. If you can show them a stack of receipts proving regular maintenance, it’s much harder for them to use that excuse. According to the Federal Trade Commission, maintenance records are one of the most important things you can have when filing a warranty claim.

Follow the maintenance schedule in your owner’s manual. Don’t skip oil changes or other important services. If the manual says change the oil every 5,000 miles, do it. If it says replace a certain part at 60,000 miles, do it. Keeping up with maintenance not only helps your car run better, but it also protects your warranty coverage.

Also, never ignore warning lights on your dashboard. If a light comes on, stop driving and get it checked. Driving with certain warning lights on can cause serious damage, and warranties almost never cover that. They call it continued operations, and it’s one of the most common exclusions.

Choose the Right Warranty Coverage

Not all warranties are created equal. Some offer much better coverage than others. When you’re buying a warranty, take time to compare options.

Look for what’s called exclusionary coverage. This type of warranty covers everything except what’s specifically listed in the exclusions section. It’s the opposite of a warranty that only covers certain listed parts. Exclusionary coverage is broader and gives you more protection.

Pay attention to what’s excluded. Does the warranty exclude wear and tear? Many do, and that’s a problem because a lot of repairs are needed due to parts wearing out over time. Try to find a warranty that doesn’t exclude wear and tear, especially if you’re buying coverage for a used car with high mileage.

Check if the warranty covers seals and gaskets. These small parts often cause big problems when they fail. Some warranties exclude them, which can lead to denied claims when a seal breaks and causes other damage.

Look at who the obligor is. That’s the company responsible for paying your claims. Is it a stable, licensed company? Is there a backup insurance company guaranteeing the warranty? In California, most legitimate warranties must have a backup insurer. If there’s no backup insurer listed, be very careful. You might be dealing with an unlicensed company.

Read reviews of the warranty company before you buy. Look for complaints about denied claims and teardown fees. See how the company treats customers. A cheap warranty from a company that denies most claims is no bargain.

And never, ever buy a warranty from someone who cold-calls you or sends unsolicited mail. These are almost always scams. Only buy warranties from licensed dealers or directly from legitimate insurance companies.

Conclusion

Warranty companies ask for tear-downs because they need to know exactly what broke and why before they’ll agree to pay for repairs. The teatheyhelps them decide if the problem is covered under your contract or falls under one of the many exclusions. While this makes sense from their point of view, it can put a real financial burden on you, especially if the company ends up denying your claim and you’re stuck paying for both the tear-down and the repair.

The legality of teardown pay for teardowns is complicated and depends on your contract language and state laws. But even if it’s legal, you have rights. You can question denials, appeal decisions, and get help from consumer protection agencies. The key is staying informed, keeping good maintenance records, and not being afraid to push back when something doesn’t seem right.

Before you ever need to use your warranty, take time to understand what it really covers. Read the fine print. Keep up with your car’s maintenance. And if you do face a tear-down request, know that you have optioteardownn’t have to accept the first answer you get.

FAQs

Can a warranty company legally make me pay for an engine tear-down?

It depends on what your service contract says and where you live. Many contracts include language that says you might have to pay for the tear-down if the problem turns out not to beteardown However, some consumer protection attorneys argue this isn’t fair, especially if you already have a diagnosis showing a covered breakdown. The Federal Trade Commission recommends reading your contract carefully to understand who pays for diagnostic work. If you’re unsure, contact your state insurance department or a consumer protection lawyer for advice about your specific situation.

What should I do if my claim gets denied after a tear-down?

Don’t give up right away. First, ask the warranty company to explain exactly why they denied your claim and which exclusions they’re using. Get this information in writing if possible. Then talk to your mechanic to see if they agree with the denial. If your mechanic disagrees, ask them to explain why in writing and send that to the warranty company as part of an appeal. You can also contact the backup insurance company listed on your warranty and ask them to review the decision. If that doesn’t work, file a complaint with your state insurance department or consider talking to a consumer protection attorney.

How much does a teardown usually cost?

The cost varies widely depending on what needs to be taken apart and how much labor is involved. Simple tear-downs might cost $200 to $400, but more complicated ones involving engine or transmission disassembly can run $500 to $1,000 or more. The cost depends on your type of vehicle, what’s broken, and how hard it is to access the problem area. Before agreeing to a tear-down, ask the repair shop for an estimateteardownit will cost. This helps you make an informed decision about whether to proceed, especially if there’s a chance you’ll have to pay for it yourself.

Will keeping maintenance records help avoid tear-down problems?

Yes, absolutely. Good maintenance records are one of your best defenses against denied claims. Warranty companies often deny claims by saying the problem was caused by poor maintenance or negligence. If you can show receipts for regular oil changes, tire rotations, and other required sservices it’s much harder for them to use services. According to the California Department of Insurance, many denied claims could have been approved if the car owner had kept proper maintenance documentation. Keep all receipts in a safe place and follow your owner’s manual recommendations.

What’s the difference between a tear-down and a regular inspection?

A regular inspection involves looking at your car without taking anything apart. The mechanic checks visible parts, runs diagnostic tests, and looks for obvious problems. A tear-down goes much deeper. It involves ateardownisassembling parts of your car. It’s wrong inside. Think of it like the difference between looking at a closed box versus opening the box to see what’s inside. Regular inspections are cheaper and less invasive, but sometimes the only way to know what’s really broken is to do a tear-down. Warranty companies usually requteardowndowns for expensive repairs where they need to verify the exact cause of the breakdown before approving the claim.

 

We Are Your Warranty Advocates.

Latests Posts

WE DON’T JUST WORK ON CARS, WE FIX THEM!

Auto Repair & Tire Service in Huntsville, AL

At Brian’s Tire & Service we work hard to earn your trust and loyalty. We know how important it is to find a Huntsville car service you can rely on, so your satisfaction is our top priority each and every day.

WE DON’T JUST WORK ON CARS,
WE FIX THEM!

Your Full-Service Automotive Repair Shop

At Brian’s Tire & Service we work hard to earn your trust and loyalty. We know how important it is to find a Huntsville car service you can rely on, so your satisfaction is our top priority each and every day.

Our Automotive Services

Get trusted auto repair and maintenance for your vehicle in Huntsville, AL. From routine care to complex repairs, our team is here to keep your vehicle safe and reliable.

Advanced Diagnostics 1

Advanced Diagnostics

Professional vehicle diagnostics to identify warning lights, performance issues and hard-to-find problems before they become costly repairs.

Maintenance & Repair

Auto Maintenance Services

Comprehensive routine maintenance and repair programs designed to keep your vehicle reliable, safe, efficient, and ready for the road every day.

Suspension Steering maintenance and repair

Suspension & Steering

Keep your vehicle safe and comfortable with professional suspension and steering care for a smoother, safer, and more controlled ride overall.

Engine Maintenance & Repair

Engine Diagnostics & Repair

Identify engine problems early and get reliable repairs to keep your vehicle running smoothly, safely, efficiently, and confidently on the road.

Complete Tire Services

Complete Tire Services

Keep your vehicle safe and road-ready with dependable tire services for improved traction, handling, performance, and long-lasting road safety.

See All Services

From engine repair to tire services, view our complete list of automotive services.

Our Commitment

A Better Automotive Service Experience

At Brian’s Tire & Service, we believe great automotive care goes beyond fixing vehicles, it’s about treating every customer with honesty, respect, and transparency throughout the entire process.

Our team takes the time to explain what your vehicle needs and why, so you can make informed decisions with confidence. No surprises, no pressure, just straightforward service from people who genuinely care.

 

A Better Automotive Service

Comprehensive Tire Services We Offer:

Brian’s Tire & Service is your neighborhood hub for all tire-related needs. Our range of services includes but is not limited to:
Routine Tire Maintenance at Brians Tire and Service

Routine Tire Maintenance

Regular maintenance is key to extending the life of your tires. Our expert team performs thorough inspections and tire rotations every 5,000 miles to promote even wear across all four tires, saving you money and enhancing fuel efficiency.

Prompt Tire Repairs at Brians Tire and Service

Prompt Tire Repairs

Encountered a flat tire or a slow leak? Bring your vehicle to us. With meticulous attention to detail, we’ll uncover the cause of the issue and carry out the necessary repairs, getting you back on the road swiftly and safely.

Precise Wheel Balancing at Brians Tire and Service

Precise Wheel Balancing

Over time, wheel imbalances can lead to unpleasant vibrations, especially at higher speeds. Utilizing state-of-the-art computerized wheel balancing equipment, we rectify these imbalances, ensuring a smooth and comfortable drive.

Rectangle 56 1

Tire Sales and Installation

When it's time for a new set of tires, our vast selection caters to every preference, whether you seek high-performance or budget-friendly options. Our professionals will guide you in choosing the perfect tires and ensure they are installed correctly.

ABOUT US

Brian's Tire & Service in Huntsville

For years Brian’s Tire & Service has been there for the people of Huntsville. We love what we do, and that basic fact fuels our business. We are dedicated to our customers, and that’s why they stick with us—the best auto repair Huntsville has to offer.

Our family of technicians and service staff see their work here as more than a job. It’s their vocation and livelihood. Each member of our team is invested in your satisfaction.

Brian’s Tire & Service was founded on the basic idea that everyone deserves respect. It is our mission to treat each person that comes through our door with dignity and sensitivity. We believe this attention to detail has paid off by providing us with our loyal, friendly family of customers. That’s what makes Brian’s Tire & Service the best car service in Huntsville!

Are you ready to experience the best Huntsville car service available? Please give us a call or book an appointment:

Group 174

Brian Lombardino
Owner

Contact Information

Customer satisfaction is our number one priority. We want to hear from you if you have questions or comments, we’d love to hear from you.

Our Client Reviews

{ "@context": "https://schema.org", "@type": "LocalBusiness", "name": "Brian's Tire & Service", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": 605, "bestRating": "5", "worstRating": "1" }, "address": "1024 Putman Dr NW, Huntsville, AL 35816" }

Brian's Buddy Membership

**12 month minimum required per member**

Only $299.95 annually

We offer up to 12 months interest free financing for qualified customers

Wheel

Affiliates & Certification

Car Quest
Technet
OReilly v2
AC Delco red and blue
Be Car Care Aware2
ASA
ASE Certified Logo
BBB
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/brians-warranty-child/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
(function() { // Global page view and session tracking for UAEL Modal Popup feature try { // Session tracking: increment if this is a new session // Check if any popup on this page uses current page tracking var hasCurrentPageTracking = false; var currentPagePopups = []; // Check all modal popups on this page for current page tracking if (typeof jQuery !== 'undefined') { jQuery('.uael-modal-parent-wrapper').each(function() { var scope = jQuery(this).data('page-views-scope'); var enabled = jQuery(this).data('page-views-enabled'); var popupId = jQuery(this).attr('id').replace('-overlay', ''); if (enabled === 'yes' && scope === 'current') { hasCurrentPageTracking = true; currentPagePopups.push(popupId); } }); } // Global tracking: ALWAYS increment if ANY popup on the site uses global tracking // Current page tracking: increment per-page counters if (hasCurrentPageTracking && currentPagePopups.length > 0) { var currentUrl = window.location.href; var urlKey = 'uael_page_views_' + btoa(currentUrl).replace(/[^a-zA-Z0-9]/g, '').substring(0, 50); var currentPageViews = parseInt(localStorage.getItem(urlKey) || '0'); currentPageViews++; localStorage.setItem(urlKey, currentPageViews.toString()); // Store URL mapping for each popup for (var i = 0; i < currentPagePopups.length; i++) { var popupUrlKey = 'uael_popup_' + currentPagePopups[i] + '_url_key'; localStorage.setItem(popupUrlKey, urlKey); } } } catch (e) { // Silently fail if localStorage is not available } })();
( () => { const lazyloadRunObserver = () => { const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { entries.forEach( ( entry ) => { if ( entry.isIntersecting ) { let lazyloadBackground = entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( 'e-lazyloaded' ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: '200px 0px 200px 0px' } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events = [ 'DOMContentLoaded', 'elementor/lazyload/observe', ]; events.forEach( ( event ) => { document.addEventListener( event, lazyloadRunObserver ); } ); } )(); jQuery.uiBackCompat = true; //# sourceURL=jquery-ui-core-js-before var uael_particles_script = {"uael_particles_url":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/min-js/uael-particles.min.js","particles_url":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/lib/particles/particles.min.js","snowflakes_image":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/snowflake.svg","gift":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/gift.png","tree":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/tree.png","skull":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/skull.png","ghost":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/ghost.png","moon":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/moon.png","bat":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/bat.png","pumpkin":"https://brianstireandservice.com/wp-content/plugins/ultimate-elementor/assets/img/pumpkin.png"}; //# sourceURL=elementor-frontend-js-extra var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"4.3.6","is_static":false,"experimentalFeatures":{"additional_custom_breakpoints":true,"container":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"nested-elements":true,"import-export-customization":true,"e_pro_atomic_form":true,"mega-menu":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/brianstireandservice.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/brianstireandservice.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/brianstireandservice.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"cce75da8da","atomicFormsSendForm":"d3ea069d70"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","hello_header_logo_type":"logo","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":24,"title":"Auto%20Repair%20%26%20Tires%20In%20Huntsville%2C%20AL%20%7C%20Brian%27s%20Tire%20%26%20Auto","excerpt":"","featuredImage":"https:\/\/brianstireandservice.com\/wp-content\/uploads\/2023\/11\/brians-Tire-Service-Home-1024x536.jpg"}}; //# sourceURL=elementor-frontend-js-before window.scope_array = []; window.backend = 0; jQuery.cachedScript = function( url, options ) { // Allow user to set any option except for dataType, cache, and url. options = jQuery.extend( options || {}, { dataType: "script", cache: true, url: url }); // Return the jqXHR object so we can chain callbacks. return jQuery.ajax( options ); }; jQuery( window ).on( "elementor/frontend/init", function() { elementorFrontend.hooks.addAction( "frontend/element_ready/global", function( $scope, $ ){ if ( "undefined" == typeof $scope ) { return; } if ( $scope.hasClass( "uael-particle-yes" ) ) { window.scope_array.push( $scope ); $scope.find(".uael-particle-wrapper").addClass("js-is-enabled"); }else{ return; } if(elementorFrontend.isEditMode() && $scope.find(".uael-particle-wrapper").hasClass("js-is-enabled") && window.backend == 0 ){ var uael_url = uael_particles_script.uael_particles_url; jQuery.cachedScript( uael_url ); window.backend = 1; }else if(elementorFrontend.isEditMode()){ var uael_url = uael_particles_script.uael_particles_url; jQuery.cachedScript( uael_url ).done(function(){ var flag = true; }); } }); }); // Added both `document` and `window` event listeners to address issues where some users faced problems with the `document` event not triggering as expected. // Define cachedScript globally to avoid redefining it. jQuery.cachedScript = function(url, options) { options = jQuery.extend(options || {}, { dataType: "script", cache: true, url: url }); return jQuery.ajax(options); // Return the jqXHR object so we can chain callbacks }; let uael_particle_loaded = false; //flag to prevent multiple script loads. jQuery( document ).on( "ready elementor/popup/show", () => { loadParticleScript(); }); jQuery( window ).one( "elementor/frontend/init", () => { if (!uael_particle_loaded) { loadParticleScript(); } }); function loadParticleScript(){ // Use jQuery to check for the presence of the element if (jQuery(".uael-particle-yes").length < 1) { return; } uael_particle_loaded = true; var uael_url = uael_particles_script.uael_particles_url; // Call the cachedScript function jQuery.cachedScript(uael_url); } //# sourceURL=elementor-frontend-js-after var mdpReadablerOptions = {"ajaxurl":"https://brianstireandservice.com/wp-admin/admin-ajax.php","nonce":"cebc04f094","pluginURL":"https://brianstireandservice.com/wp-content/plugins/readabler/","postID":"24","postType":"page","translation":{"voiceGuide":"","voiceRecognitionStart":"Say a command...","voiceRecognitionEnd":"Voice recognition has stopped","voiceRecognitionWait":"Wait...","voiceRecognitionLegend":"Voice recognition","voiceRecognitionCommands":"Voice commands","voiceRecognitionHistory":"History","voiceRecognitionClose":"Close and stop voice navigation","voiceRecognitionErrorNoVoice":"Voice recognition has stopped, no voice detected. Click the button to restart recognition.","voiceRecognitionErrorNoNetwork":"Network error. Check is you online and try again.","voiceRecognitionErrorNoMic":"No microphone. Check is your microphone connected and try again.","voiceRecognitionErrorNoPermission":"Permission denied. Check is your microphone connected and try again.","voiceRecognitionErrorNotAllowed":"Microphone access denied. Check is your microphone connected and try again.","voiceRecognitionErrorUnknown":"Voice recognition error. Try again.","voiceRecognitionNumbers":["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty","twenty one","twenty two","twenty three","twenty four","twenty five","twenty six","twenty seven","twenty eight","twenty nine","thirty","thirty one","thirty two","thirty three","thirty four","thirty five","thirty six","thirty seven","thirty eight","thirty nine","forty","forty one","forty two","forty three","forty four","forty five","forty six","forty seven","forty eight","forty nine","fifty","fifty one","fifty two","fifty three","fifty four","fifty five","fifty six","fifty seven","fifty eight","fifty nine","sixty","sixty one","sixty two","sixty three","sixty four","sixty five","sixty six","sixty seven","sixty eight","sixty nine","seventy","seventy one","seventy two","seventy three","seventy four","seventy five","seventy six","seventy seven","seventy eight","seventy nine","eighty","eighty one","eighty two","eighty three","eighty four","eighty five","eighty six","eighty seven","eighty eight","eighty nine","ninety","ninety one","ninety two","ninety three","ninety four","ninety five","ninety six","ninety seven","ninety eight","ninety nine","one hundred","one hundred one","one hundred two","one hundred three","one hundred four","one hundred five","one hundred six","one hundred seven","one hundred eight","one hundred nine","one hundred ten","one hundred eleven","one hundred twelve","one hundred thirteen","one hundred fourteen","one hundred fifteen","one hundred sixteen","one hundred seventeen","one hundred eighteen","one hundred nineteen","one hundred twenty","one hundred twenty one","one hundred twenty two","one hundred twenty three","one hundred twenty four","one hundred twenty five","one hundred twenty six","one hundred twenty seven","one hundred twenty eight","one hundred twenty nine","one hundred thirty","one hundred thirty one","one hundred thirty two","one hundred thirty three","one hundred thirty four","one hundred thirty five","one hundred thirty six","one hundred thirty seven","one hundred thirty eight","one hundred thirty nine","one hundred forty","one hundred forty one","one hundred forty two","one hundred forty three","one hundred forty four","one hundred forty five","one hundred forty six","one hundred forty seven","one hundred forty eight","one hundred forty nine","one hundred fifty","one hundred fifty one","one hundred fifty two","one hundred fifty three","one hundred fifty four","one hundred fifty five","one hundred fifty six","one hundred fifty seven","one hundred fifty eight","one hundred fifty nine","one hundred sixty","one hundred sixty one","one hundred sixty two","one hundred sixty three","one hundred sixty four","one hundred sixty five","one hundred sixty six","one hundred sixty seven","one hundred sixty eight","one hundred sixty nine","one hundred seventy","one hundred seventy one","one hundred seventy two","one hundred seventy three","one hundred seventy four","one hundred seventy five","one hundred seventy six","one hundred seventy seven","one hundred seventy eight","one hundred seventy nine","one hundred eighty","one hundred eighty one","one hundred eighty two","one hundred eighty three","one hundred eighty four","one hundred eighty five","one hundred eighty six","one hundred eighty seven","one hundred eighty eight","one hundred eighty nine","one hundred ninety","one hundred ninety one","one hundred ninety two","one hundred ninety three","one hundred ninety four","one hundred ninety five","one hundred ninety six","one hundred ninety seven","one hundred ninety eight","one hundred ninety nine","two hundred"]},"popupPosition":"center","popupOverlay":"","buttons":{"resetButton":true,"hideButton":true},"headers":{"accessibilityProfiles":true,"onlineDictionary":true,"readableExperience":true,"visuallyPleasing":true,"visualAssistance":true,"easyOrientation":true},"onlineDictionary":"1","language":"auto","profileEpilepsy":"1","profileVisuallyImpaired":"1","profileCognitiveDisability":"1","profileAdhdFriendly":"","profileBlindUsers":"1","contentScaling":"1","readableFont":"1","dyslexiaFont":"1","highlightTitles":"1","highlightLinks":"1","textMagnifier":"1","fontSizing":"1","lineHeight":"1","letterSpacing":"1","alignCenter":"1","alignLeft":"1","alignRight":"1","darkContrast":"1","lightContrast":"1","monochrome":"1","highSaturation":"1","highContrast":"1","lowSaturation":"1","textColors":"1","titleColors":"1","backgroundColors":"1","muteSounds":"1","hideImages":"1","hideEmoji":"1","virtualKeyboard":"1","readingGuide":"1","cognitiveReading":"1","cognitiveReadingFocus":"","cognitiveReadingFixation":"normal","usefulLinks":"1","stopAnimations":"1","readingMask":"1","highlightHover":"1","highlightFocus":"1","bigBlackCursor":"1","bigWhiteCursor":"1","textToSpeech":"","voiceNavigation":{"help":["help","help_me","show_commands"],"hide_help":["hide_help","hide_commands","hide_commands_list"],"scroll_down":["scroll_down","down","page_down"],"scroll_up":["scroll_up","up","page_up"],"go_to_top":["go_to_top","top","page_top"],"go_to_bottom":["go_to_bottom","bottom","page_bottom"],"tab":["tab","next","next_tab"],"tab_back":["tab_back","previous","previous_tab"],"show_numbers":["show_numbers","display_numbers","enable_numbers"],"number":["click","press","open"],"hide_numbers":["hide_numbers","disable_numbers","remove_numbers"],"clear_input":["clear_input","clear","remove"],"enter":["enter","submit","ok"],"reload":["reload","refresh","update"],"stop":["stop","cancel","stop_listening"],"exit":["exit","quit","close"]},"keyboardNavigation":"1","startConfig":"","startContentScaling":"0","startFontSizing":"0","startLineHeight":"0","startLetterSpacing":"0","ignoreSavedConfig":"off","showOpenButton":"1","buttonPosition":"right-center","buttonCaption":"","buttonIcon":"_readabler/readabler.svg","buttonIconPosition":"before","buttonSize":"24","buttonMargin":"10","buttonPadding":"20","buttonBorderRadius":"50","buttonColor":"rgba(255, 255, 255, 1)","buttonColorHover":"rgba(33, 111, 243, 1)","buttonBgcolor":"rgba(33, 111, 243, 1)","buttonBgcolorHover":"rgba(255, 255, 255, 1)","buttonEntranceTimeout":"0","buttonEntranceAnimation":"fade","buttonHoverAnimation":"none","buttonShowAfterScrolling":{"desktop":"0","mobile":"0"},"popupOverlayColor":"rgba(2, 83, 238, 1)","popupBackgroundColor":"rgba(255, 255, 255, 1)","popupKeyColor":"rgba(33, 111, 243, 1)","popupBorderRadius":"20","popupAnimation":"fade","popupScroll":"","closeAnywhere":"","popupDraggable":"1","highlightP":"","readAlt":"","hotKeyOpenInterface":"Alt+9","saveConfig":"on","analytics":"off","analyticsSendInterval":"2","analyticsGDPR":"off","statementType":"inline","LEARN_MORE_IN_WIKIPEDIA":"Learn more in Wikipedia","DEFAULT":"Default","HOME":"Home","HIDE_ACCESSIBILITY_INTERFACE":"If you choose to hide the accessibility interface, you won't be able to see it anymore, unless you clear clear cookies for this site. Are you sure that you wish to hide the interface?","readingMaskHeight":"100","virtualKeyboardLayout":["english"],"virtualKeyboardLayouts":{"en":"{\"default\":[\"` 1 2 3 4 5 6 7 8 9 0 - = {bksp}\",\"{tab} q w e r t y u i o p [ ] \\\\\",\"{lock} a s d f g h j k l ; ' {enter}\",\"{shift} z x c v b n m , . \\/ {shift}\",\".com @ {space}\"],\"shift\":[\"~ ! @ # $ % ^ & * ( ) _ + {bksp}\",\"{tab} Q W E R T Y U I O P { } |\",\"{lock} A S D F G H J K L : \\\" {enter}\",\"{shift} Z X C V B N M \u003C \u003E ? {shift}\",\".com @ {space}\"],\"lang\":{\"en\":\"English\"}}"},"hotKeyMenu":"","hotKeyHeadings":"","hotKeyForms":"","hotKeyButtons":"","hotKeyGraphics":"","highlightFocusColor":"#639af9","voiceNavigationAliases":{"help":"Help","help_me":"Help me","show_commands":"Show commands","what_can_i_say":"What can I say","what_can_i_do":"What can I do","what_can_you_do":"What can you do","available_commands":"Available commands","commands_list":"Commands list","hide_help":"Hide help","hide_commands":"Hide commands","hide_commands_list":"Hide commands list","hide_available_commands":"Hide available commands","collapse_commands":"Collapse commands","scroll_down":"Scroll down","down":"Down","page_down":"Page Down","go_down":"Go down","scroll_up":"Scroll up","up":"Up","page_up":"Page Up","go_up":"Go up","go_to_top":"Go to top","top":"Top","page_top":"Page Top","go_to_start":"Go to start","scroll_to_top":"Scroll to top","go_to_bottom":"Go to bottom","bottom":"Bottom","page_bottom":"Page Bottom","go_to_end":"Go to end","scroll_to_bottom":"Scroll to bottom","tab":"Tab","next":"Next","next_tab":"Next Tab","go_to_next":"Go to next","go_to_next_tab":"Go to next tab","tab_back":"Tab back","previous":"Previous","previous_tab":"Previous Tab","go_to_previous":"Go to previous","go_to_previous_tab":"Go to previous tab","show_numbers":"Show numbers","display_numbers":"Display numbers","enable_numbers":"Enable numbers","navigation_numbers":"Navigation numbers","mark_links":"Mark links","number_links":"Number links","click":"Click","press":"Press","open":"Open","go_to":"Go to","go":"Go","select":"Select","hide_numbers":"Hide numbers","disable_numbers":"Disable numbers","remove_numbers":"Remove numbers","hide_mark_links":"Mark links","hide_number_links":"Number links","clear_input":"Clear input","clear":"Clear","remove":"Remove","delete":"Delete","clear_text":"Clear text","clear_search":"Clear search","enter":"Enter","submit":"Submit","ok":"Ok","confirm":"Confirm","accept":"Accept","return":"Return","yes":"Yes","reload":"Reload","refresh":"Refresh","update":"Update","refresh_page":"Refresh page","reload_page":"Reload page","reload_website":"Reload website","refresh_website":"Refresh website","stop":"Stop","cancel":"Cancel","stop_listening":"Stop listening","cancel_listening":"Cancel listening","stop_recording":"Stop recording","stop_voice_navigation":"Stop voice navigation","abort":"Abort","exit":"Exit","quit":"Quit","close":"Close","close_window":"Close window","close_navigation":"Close navigation","close_panel":"Close panel","number":"Number ... "},"voiceNavigationDescription":{"help":"Display a list of available voice commands","hide_help":"Hide a list of available voice commands","scroll_down":"Scroll page down 200 px","scroll_up":"Scroll page down 200 px","go_to_top":"Scroll page to top","go_to_bottom":"Scroll page to bottom","tab":"Move to next interactive element","tab_back":"Move to previous interactive element","show_numbers":"Show numbers for interactive elements","number":"Click on element number...","hide_numbers":"Hide numbers for interactive elements","clear_input":"Clear selected text field","enter":"Click on the selected element","reload":"Reload page","stop":"Stop speech recognition","exit":"Disable voice navigation mode"},"voiceNavigationRerun":"off","scrollDownValue":"200","scrollUpValue":"-200","scrollLeftValue":"-200","scrollRightValue":"200","voiceNavigationVoiceGraph":"on","voiceNavigationInterimResults":"on","voiceNavigationFeedback":"on","voiceNavigationFeedbackOk":["OK","Yes","Done"],"voiceNavigationFeedbackStart":["Start listening","Begin listening","Listening"],"voiceNavigationFeedbackEnd":["End listening","Stop listening","Finish listening"]}; //# sourceURL=mdp-readabler-js-extra For full functionality of this site it is necessary to enable JavaScript. window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.contentEvents = {"postID":24,"isReadableSinglePost":false,"hasVimeoEmbed":false,"wordCount":0,"estimatedReadTimeSeconds":0,"isLastPageOfMultiPagePost":false,"readTimeThresholdPercent":85,"minimumReadTimeSeconds":5}; //# sourceURL=googlesitekit-events-provider-content-events-js-before window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['81955390'] = {"default_language":"en","languages":["en","es"],"url_structure":"none","native_language_names":1,"detect_browser_language":1,"flag_style":"2d","wrapper_selector":"#gt-wrapper-81955390","alt_flags":{"en":"usa"},"float_switcher_open_direction":"top","switcher_horizontal_position":"left","switcher_vertical_position":"bottom","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"}; //# sourceURL=gt_widget_script_81955390-js-before wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/brianstireandservice.com\/wp-admin\/admin-ajax.php","nonce":"ef95be8132","urls":{"assets":"https:\/\/brianstireandservice.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/brianstireandservice.com\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/brianstireandservice.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; //# sourceURL=elementor-pro-frontend-js-before {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://brianstireandservice.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.4"}} /*! This file is auto-generated */ var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf(){i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); //# sourceURL=https://brianstireandservice.com/wp-includes/js/wp-emoji-loader.min.js /** * Leadflow Collector — client-side tracking engine. * * Auto-detects every on the page. No manual configuration of * individual forms is required. * * For each form it: * 1. Starts a timer on the first field interaction. * 2. On submit, compiles a JSON payload covering the four pillars: * - usage_data (page url, title, referrer, viewport) * - behavior_metrics (seconds spent filling the form) * - lead_payload (form id/class + every field name -> value) * - lead_email (best-guess email, promoted to top level) * 3. Sends the payload via fetch() WITHOUT blocking or preventing the * native submit — the host site's form behaves exactly as before. * * https://inceptial.team/SEO-Dashboard/wp-json/hub-leads/v1/capture, 5U50fReBFK3oJEP1pCgWeODjtthGfeALafZYt3V2, https://brianstireandservice.com/wp-admin/admin-ajax.php, and a623cc6a42 are replaced * server-side (PHP) before this file is ever printed to the page. */ ( function () { 'use strict'; var HUB_ENDPOINT = 'https://inceptial.team/SEO-Dashboard/wp-json/hub-leads/v1/capture'; var HUB_API_KEY = '5U50fReBFK3oJEP1pCgWeODjtthGfeALafZYt3V2'; var HUB_LOG_URL = 'https://brianstireandservice.com/wp-admin/admin-ajax.php'; var HUB_LOG_NONCE = 'a623cc6a42'; // URL of the Collector's store-sync-key REST endpoint. Empty string once // the sync_key has been persisted server-side (PHP outputs '' at that point). var HUB_STORE_SYNC_KEY_URL = ''; // Click Trackers — phone/email/location/anything else defined on the // Collector's settings page. Substituted server-side as a raw JSON // array literal (valid JSON is valid JS), NOT a quoted string — a // tracker label containing an apostrophe (e.g. "Book It's Time") // would otherwise break out of a quoted string. See attachClickTrackers(). var CLICK_TRACKERS = [{"id":"call","label":"Call","href_prefixes":["tel:"],"href_contains":[],"keywords":["call 256-704-8473"],"selector":"","text_pattern":"phone"},{"id":"email-click","label":"Email Click","href_prefixes":["mailto:"],"href_contains":[],"keywords":["info@brians.tires"],"selector":"","text_pattern":"email"},{"id":"location-click","label":"Location Click","href_prefixes":[],"href_contains":[],"keywords":["1024 putman dr nw","huntsville","al 35816","united states"],"selector":"","text_pattern":""},{"id":"book-an-appointment","label":"book an appointment","href_prefixes":[],"href_contains":[],"keywords":["book an appointment"],"selector":"","text_pattern":""},{"id":"call-2","label":"Call","href_prefixes":["tel:"],"href_contains":[],"keywords":["call: 256-704-8473"],"selector":"","text_pattern":"phone"}]; if ( ! Array.isArray( CLICK_TRACKERS ) ) { CLICK_TRACKERS = []; } // Page Trackers — fire a page_view event when the current URL matches // one of the configured tracked pages. Substituted server-side as a // raw JSON array literal. var PAGE_TRACKERS = [{"id":"car-engine","label":"car engine","page_url":"https:\/\/brianstireandservice.com\/auto-engine-repair\/","match_type":"contains","href_prefixes":[],"href_contains":[],"keywords":["learn more"],"selector":"","text_pattern":""}]; if ( ! Array.isArray( PAGE_TRACKERS ) ) { PAGE_TRACKERS = []; } // Belt-and-suspenders: the PHP injector already guards this, but never // run a half-configured tracker. if ( ! HUB_ENDPOINT || ! HUB_API_KEY ) { return; } /** * Cookie-based visitor ID — persists across sessions so returning * visitors can be identified even after closing and reopening the browser. * A new random ID is assigned on first visit (or after cookie clearance). * Expires after 2 years. Never contains personal data — just a random hex string. */ function getVisitorId() { var COOKIE_NAME = 'hub_vid'; var COOKIE_DAYS = 730; // 2 years // Try to read existing cookie. var existing = ''; var cookies = document.cookie ? document.cookie.split( ';' ) : []; for ( var i = 0; i < cookies.length; i++ ) { var parts = cookies[ i ].trim().split( '=' ); if ( parts[ 0 ] === COOKIE_NAME ) { existing = decodeURIComponent( parts[ 1 ] || '' ); break; } } if ( existing ) { return existing; } // Generate a new random ID: 16 hex chars. var id = ''; var chars = '0123456789abcdef'; for ( var j = 0; j < 16; j++ ) { id += chars[ Math.floor( Math.random() * 16 ) ]; } // Persist in cookie. var expires = new Date(); expires.setTime( expires.getTime() + COOKIE_DAYS * 24 * 60 * 60 * 1000 ); document.cookie = COOKIE_NAME + '=' + encodeURIComponent( id ) + '; expires=' + expires.toUTCString() + '; path=/' + '; SameSite=Lax'; return id; } // Resolve visitor ID once at page load and reuse across all payloads. var HUB_VISITOR_ID = getVisitorId(); /** * Lightweight User-Agent parse — device type, OS, browser. Good enough * for lead-gen reporting; not meant to rival a full UA-parsing library. * Order matters (e.g. iPad must be checked before "Mac" substring * traps, Edge before Chrome, etc.). */ function getDeviceInfo() { var ua = navigator.userAgent || ''; var deviceType = 'Desktop'; if ( /iPad/i.test( ua ) || ( /Macintosh/i.test( ua ) && 'ontouchend' in document ) ) { deviceType = 'Tablet'; } else if ( /Android/i.test( ua ) && ! /Mobile/i.test( ua ) ) { deviceType = 'Tablet'; } else if ( /Mobi|iPhone|Android/i.test( ua ) ) { deviceType = 'Mobile'; } var os = 'Unknown'; if ( /iPhone|iPad|iPod/i.test( ua ) ) { os = 'iOS'; } else if ( /Android/i.test( ua ) ) { os = 'Android'; } else if ( /Windows/i.test( ua ) ) { os = 'Windows'; } else if ( /Macintosh|Mac OS X/i.test( ua ) ) { os = 'macOS'; } else if ( /CrOS/i.test( ua ) ) { os = 'ChromeOS'; } else if ( /Linux/i.test( ua ) ) { os = 'Linux'; } var browser = 'Unknown'; if ( /Edg\// .test( ua ) ) { browser = 'Edge'; } else if ( /OPR\/|Opera/.test( ua ) ) { browser = 'Opera'; } else if ( /Firefox\//.test( ua ) ) { browser = 'Firefox'; } else if ( /CriOS\//.test( ua ) ) { browser = 'Chrome'; } else if ( /Chrome\//.test( ua ) && ! /Chromium\//.test( ua ) ) { browser = 'Chrome'; } else if ( /Safari\//.test( ua ) && /Version\//.test( ua ) ) { browser = 'Safari'; } return { type: deviceType, os: os, browser: browser, user_agent: ua.slice( 0, 300 ) }; } // Shared de-dupe registry between the native-submit-event path and the // network-level path (see patchFetch/patchXhr below), so a builder // that fires BOTH signals for the same real submission — e.g. no // CAPTCHA involved, so the native submit event works AND we also see // the underlying AJAX call — doesn't create two leads for one // submission. Keyed by form_type rather than a specific form // instance/id, since the network path only knows the builder, not // which exact on the page fired it. var recentlySent = {}; var DEDUPE_WINDOW_MS = 4000; function shouldSendForKey( key ) { var now = Date.now(); var last = recentlySent[ key ] || 0; if ( now - last < DEDUPE_WINDOW_MS ) { return false; } recentlySent[ key ] = now; return true; } /** * Fire-and-forget report to this site's OWN Activity Log (not the Hub). * Records metadata only — never field values or the email itself — so * the person managing this client site can see, locally, whether * submissions are making it out. Failures here are swallowed; a logging * hiccup must never affect the real lead delivery above. */ function logEvent( fields ) { if ( ! HUB_LOG_URL || ! HUB_LOG_NONCE ) { return; } try { var params = new URLSearchParams(); params.set( 'action', 'hub_collector_log_event' ); params.set( 'nonce', HUB_LOG_NONCE ); Object.keys( fields ).forEach( function ( key ) { var value = fields[ key ]; params.set( key, null === value || undefined === value ? '' : String( value ) ); } ); fetch( HUB_LOG_URL, { method: 'POST', keepalive: true, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: params.toString() } ).catch( function () {} ); } catch ( e ) { // no-op } } // Per-form interaction state (when the visitor first touched a field). var formState = new WeakMap(); /** * Form-builder signature registry — Layer 1 of the detection system. * Every signature below was verified against each plugin's actual * rendered markup (official docs / source / GitHub), not guessed. * Checked top-to-bottom, first match wins. Unmatched forms fall through * to 'other' — they're still tracked normally, just unlabeled. * * Each `test` receives the element itself. `form.closest()` also * checks the form itself, so signatures work whether the matching class * lives on the tag or on a wrapping container around it. */ var FORM_BUILDER_SIGNATURES = [ { key: 'contact_form_7', test: function ( form ) { return form.classList.contains( 'wpcf7-form' ); } }, { key: 'wpforms', test: function ( form ) { return form.classList.contains( 'wpforms-form' ) || /^wpforms-form-/.test( form.id || '' ); } }, { key: 'gravity_forms', test: function ( form ) { return /^gform_\d+$/.test( form.id || '' ) || !! form.closest( '.gform_wrapper' ); } }, { key: 'ninja_forms', test: function ( form ) { return form.classList.contains( 'nf-form-layout' ) || !! form.closest( '.nf-form-cont' ); } }, { key: 'formidable', test: function ( form ) { return form.classList.contains( 'frm-show-form' ) || !! form.closest( '.frm_forms' ); } }, { key: 'fluent_forms', test: function ( form ) { return form.classList.contains( 'frm-fluent-form' ); } }, { key: 'elementor', // Elementor Pro submits via AJAX — the network watcher (fetch/XHR // patch) already captures the real submission. Skipping the DOM // submit event here prevents a duplicate lead. networkOnly: true, test: function ( form ) { return form.classList.contains( 'elementor-form' ); } }, { key: 'forminator', test: function ( form ) { return form.classList.contains( 'forminator-custom-form' ) || /^forminator-module-/.test( form.id || '' ); } }, { key: 'caldera_forms', test: function ( form ) { return form.classList.contains( 'caldera-forms-form' ) || /^caldera_forms_form/.test( form.id || '' ); } }, { key: 'divi', test: function ( form ) { return form.classList.contains( 'et_pb_contact_form' ); } }, { key: 'woocommerce_checkout', test: function ( form ) { return form.classList.contains( 'woocommerce-checkout' ); } }, { key: 'jetpack', test: function ( form ) { return !! form.closest( '.contact-form-container' ) || !! form.closest( '.wp-block-jetpack-contact-form' ); } }, { key: 'hubspot', test: function ( form ) { return form.classList.contains( 'hs-form' ); } }, { key: 'mailchimp', test: function ( form ) { return 'mc-embedded-subscribe-form' === form.id; } } ]; /** * Returns a signature key ('wpforms', 'elementor', etc.) or 'other' if * nothing matched. A single broken test must never crash detection for * the rest of the registry or for the form's own submission. */ function detectFormBuilder( form ) { for ( var i = 0; i < FORM_BUILDER_SIGNATURES.length; i++ ) { try { if ( FORM_BUILDER_SIGNATURES[ i ].test( form ) ) { return FORM_BUILDER_SIGNATURES[ i ].key; } } catch ( e ) { // Skip this signature, keep checking the rest. } } return 'other'; } /** * Returns true for builders that submit via AJAX and are already captured * by the network watcher. The DOM submit listener skips these to prevent * sending a duplicate lead. */ function isNetworkOnlyBuilder( form ) { for ( var i = 0; i < FORM_BUILDER_SIGNATURES.length; i++ ) { try { if ( FORM_BUILDER_SIGNATURES[ i ].networkOnly && FORM_BUILDER_SIGNATURES[ i ].test( form ) ) { return true; } } catch ( e ) {} } return false; } /** * Forms that are never leads: WordPress's own login form, the default * comment form, and search forms. Excluded by default so they never * pollute lead data — these never get a listener attached at all. */ function isExcludedForm( form ) { if ( 'loginform' === form.id || 'commentform' === form.id ) { return true; } if ( 'search' === ( form.getAttribute( 'role' ) || '' ).toLowerCase() ) { return true; } if ( form.classList.contains( 'search-form' ) ) { return true; } return false; } function cssEscape( value ) { if ( window.CSS && typeof window.CSS.escape === 'function' ) { return window.CSS.escape( value ); } return String( value ).replace( /([^\w-])/g, '\\$1' ); } /** * Best-effort human-readable label for a field: