The site header / Services mega-dropdown was duplicated across two render systems (Astro pages via Base.astro->nav.html, and ~80 pre-rendered static public/**/index.html pages each embedding their own copy). They had drifted into 5 different variants (missing 'New Carrier Setup', misplaced Healthcare column, NEW vs FREE badges, em-dash encoding differences), so dev.performancewest.net, the order pages, and the rest of the site disagreed. - Make site/src/partials/nav.html the single source of truth (adopts the most complete variant). - Add scripts/sync_nav.py to rewrite every static page's <nav> block from nav.html (idempotent; --check guards against drift in CI/deploy). - Run the sync automatically in deploy.sh and scripts/deploy-dev.sh. - Deprecate scripts/inject_healthcare_nav.py (now delegates to sync_nav.py). - Neutralize the broken no-op SiteNav.astro component. All 80 headers + the Astro-built order pages now render the identical dropdown.
229 lines
26 KiB
HTML
229 lines
26 KiB
HTML
<!DOCTYPE html><html lang="en"><head>
|
|
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="Check if your LLC or corporation is in good standing. Instantly see annual report status, years behind, and cost to reinstate.">
|
|
<link rel="canonical" href="https://performancewest.net/tools/corporation-check/">
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:title" content="Corporation Status Check — Free Good Standing Lookup | Performance West">
|
|
<meta property="og:description" content="Check if your LLC or corporation is in good standing. See annual report status and cost to reinstate.">
|
|
<script>
|
|
window.__PW_API = (function() {
|
|
var h = window.location.hostname;
|
|
if (h === "localhost" || h === "127.0.0.1") return "http://" + h + ":3001";
|
|
if (h === "dev.performancewest.net") return "https://api.dev.performancewest.net";
|
|
return "https://api.performancewest.net";
|
|
})();
|
|
</script>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<title>Corporation Status Check — Free Good Standing Lookup | Performance West</title>
|
|
<script defer src="https://analytics.performancewest.net/script.js" data-website-id="55250014-ee15-44ac-a1f6-81dabad3fe0f"></script>
|
|
<link rel="stylesheet" href="/_astro/about.DhmoKVOS.css">
|
|
</head>
|
|
<body class="min-h-screen flex flex-col bg-gray-50">
|
|
<!-- Navigation --> <nav class="border-b border-gray-200 bg-white sticky top-0 z-50"> <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="flex justify-between h-24 items-center"> <a href="/" class="flex items-center"> <img src="/images/logo.png" alt="Performance West" class="h-20 w-auto" width="83" height="70"> </a> <div class="hidden md:flex items-center gap-8"> <!-- Services dropdown --> <div class="relative" id="services-dropdown"> <button type="button" class="text-sm text-gray-600 hover:text-gray-900 inline-flex items-center gap-1" id="services-btn"> Services <svg class="w-3.5 h-3.5 transition-transform" id="services-chevron" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg> </button> <div id="services-menu" class="absolute left-1/2 -translate-x-1/2 top-full mt-2 rounded-xl border border-gray-200 bg-white shadow-xl hidden z-50" style="width: 720px;"> <div class="grid grid-cols-3 gap-0 p-4"> <!-- Column 1 --> <div class="pr-4 border-r border-gray-100"> <p class="text-[11px] font-semibold uppercase tracking-wider text-blue-500 mb-2">Telecom</p> <a href="/services/telecom/fcc-499a" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">FCC 499A Filing</a> <a href="/services/telecom/stir-shaken" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">STIR/SHAKEN</a> <a href="/services/telecom/ipes-isp" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">FCC Carrier / ISP Registration</a> <a href="/services/telecom/database-management" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Telecom Databases</a> <a href="/services/telecom/state-puc" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">State PUC/PSC Filings</a> <a href="/services/telecom/canada-crtc" class="block py-1.5 text-sm font-medium text-blue-600 hover:text-blue-800">Canada CRTC Package <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-red-500 text-white ml-1 animate-pulse">HOT</span></a> <a href="/tools/fcc-compliance-check" class="block py-1.5 text-sm font-medium text-green-600 hover:text-green-800">FCC Compliance Check <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-green-500 text-white ml-1">FREE</span></a> <p class="text-[11px] font-semibold uppercase tracking-wider text-orange-500 mb-2 mt-4">Trucking / DOT</p> <a href="/services/trucking" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">DOT Compliance Services</a> <a href="/order/dot-compliance" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">MCS-150 / BOC-3 / UCR</a> <a href="/order/trucking-new-carrier" class="block py-1.5 text-sm font-medium text-orange-600 hover:text-orange-800">New Carrier Setup</a> <a href="/tools/dot-compliance-check" class="block py-1.5 text-sm font-medium text-orange-600 hover:text-orange-800">DOT Compliance Check <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-orange-500 text-white ml-1">FREE</span></a> </div> <!-- Column 2 --> <div class="px-4 border-r border-gray-100"> <p class="text-[11px] font-semibold uppercase tracking-wider text-purple-500 mb-2">Data Privacy</p> <a href="/services/privacy/ccpa-audit" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">CCPA/CPRA Audit</a> <a href="/services/privacy/privacy-policy" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Privacy Policy Review</a> <a href="/services/privacy/data-mapping" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Data Mapping</a> <a href="/services/privacy/breach-response" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Breach Response Plan</a> <p class="text-[11px] font-semibold uppercase tracking-wider text-green-500 mb-2 mt-4">TCPA</p> <a href="/services/tcpa/consent-audit" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Consent Audit</a> <a href="/services/tcpa/dnc-compliance" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">DNC Compliance</a> <a href="/services/tcpa/campaign-review" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Campaign Review</a> </div> <!-- Column 3 --> <div class="pl-4"> <p class="text-[11px] font-semibold uppercase tracking-wider text-slate-500 mb-2">Corporate</p> <a href="/services/corporate/formation" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Business Formation</a> <a href="/services/corporate/state-registration" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">State Registration</a> <a href="/services/corporate/annual-reports" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Annual Reports</a> <a href="/services/corporate/registered-agent" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Registered Agent</a> <p class="text-[11px] font-semibold uppercase tracking-wider text-teal-500 mb-2 mt-4">Healthcare</p> <a href="/services/healthcare/npi-revalidation" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Medicare Revalidation</a> <a href="/services/healthcare/medicare-enrollment" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">Medicare Enrollment (PECOS)</a> <a href="/services/healthcare" class="block py-1.5 text-sm text-gray-700 hover:text-pw-700">NPI / NPPES Services</a> <a href="/tools/npi-compliance-check" class="block py-1.5 text-sm font-medium text-teal-600 hover:text-teal-800">NPI Compliance Check <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-teal-500 text-white ml-1">FREE</span></a> <a href="/order/formation" class="mt-3 block py-2 px-3 text-sm font-medium text-white bg-pw-700 hover:bg-pw-800 rounded-lg text-center transition-colors">Form a Business</a> </div> </div> </div> </div> <a href="/services" class="text-sm text-gray-600 hover:text-gray-900">All Services</a> <a href="/pricing" class="text-sm text-gray-600 hover:text-gray-900">Pricing</a> <a href="/tools/contractor-quiz" class="text-sm text-gray-600 hover:text-gray-900">Free Tools</a> <a href="/contact" class="text-sm text-gray-600 hover:text-gray-900">Contact</a> <a href="/order/formation" class="ml-2 px-4 py-2 text-sm font-medium text-white bg-pw-700 hover:bg-pw-800 rounded-lg transition-colors">Form a Business</a> <!-- Account button - links to ERPNext portal --> <a href="https://portal.performancewest.net" id="nav-login-btn" class="ml-1 flex items-center gap-1.5 px-3 py-2 text-sm font-medium text-gray-600 hover:text-pw-700 hover:bg-pw-50 rounded-lg transition-colors border border-gray-200 hover:border-pw-300"> <svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"></path></svg> Client Portal </a> <!-- Account button - logged in (hidden until session confirmed) --> <div id="nav-account-btn" class="hidden relative ml-1" id="nav-account-dropdown-root"> <button type="button" id="nav-account-trigger" class="flex items-center gap-2 px-3 py-2 text-sm font-medium text-pw-700 hover:bg-pw-50 rounded-lg transition-colors border border-pw-200"> <div class="w-6 h-6 rounded-full bg-pw-600 flex items-center justify-center shrink-0"> <svg class="w-3.5 h-3.5 text-white" fill="currentColor" viewBox="0 0 24 24"><path d="M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z"></path></svg> </div> <span id="nav-greeting" class="max-w-[120px] truncate">My Account</span> <svg class="w-3.5 h-3.5 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg> </button> <!-- Dropdown --> <div id="nav-account-menu" class="absolute right-0 top-full mt-1 w-48 bg-white rounded-xl border border-gray-200 shadow-lg hidden z-50 py-1"> <div class="px-4 py-2 border-b border-gray-100"> <p class="text-xs text-gray-500">Signed in as</p> <p id="nav-account-email" class="text-xs font-medium text-gray-800 truncate"></p> </div> <button type="button" id="nav-logout-btn" class="w-full text-left px-4 py-2 text-sm text-gray-700 hover:bg-gray-50 transition-colors"> Sign out </button> </div> </div> </div> <!-- Mobile menu button --> <button type="button" class="md:hidden text-gray-600 hover:text-gray-900" id="mobile-menu-btn"> <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path></svg> </button> </div> </div> <!-- Mobile menu --> <div id="mobile-menu" class="md:hidden hidden border-t border-gray-200 bg-white"> <div class="px-4 py-3 space-y-1"> <p class="text-xs font-semibold text-blue-500 uppercase tracking-wider px-2 pt-1">Telecom</p> <a href="/services/telecom/fcc-499a" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">FCC 499A Filing</a> <a href="/services/telecom/stir-shaken" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">STIR/SHAKEN</a> <a href="/services/telecom/ipes-isp" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">FCC Carrier / ISP Registration</a> <a href="/services/telecom/database-management" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Telecom Databases</a> <a href="/services/telecom/state-puc" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">State PUC/PSC</a> <a href="/services/telecom/canada-crtc" class="block px-2 py-2 text-sm font-medium text-blue-600 hover:bg-blue-50 rounded">Canada CRTC Package <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-red-500 text-white ml-1 animate-pulse">HOT</span></a> <p class="text-xs font-semibold text-orange-500 uppercase tracking-wider px-2 pt-3">Trucking / DOT</p> <a href="/services/trucking" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">DOT Compliance Services</a> <a href="/order/dot-compliance" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">MCS-150 / BOC-3 / UCR</a> <a href="/order/trucking-new-carrier" class="block px-2 py-2 text-sm font-medium text-orange-600 hover:bg-orange-50 rounded">New Carrier Setup</a> <a href="/tools/dot-compliance-check" class="block px-2 py-2 text-sm font-medium text-orange-600 hover:bg-orange-50 rounded">DOT Compliance Check <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-orange-500 text-white ml-1">FREE</span></a> <p class="text-xs font-semibold text-purple-500 uppercase tracking-wider px-2 pt-3">Data Privacy</p> <a href="/services/privacy/ccpa-audit" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">CCPA/CPRA Audit</a> <a href="/services/privacy/privacy-policy" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Privacy Policy Review</a> <a href="/services/privacy/data-mapping" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Data Mapping</a> <a href="/services/privacy/breach-response" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Breach Response Plan</a> <p class="text-xs font-semibold text-green-500 uppercase tracking-wider px-2 pt-3">TCPA</p> <a href="/services/tcpa/consent-audit" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Consent Audit</a> <a href="/services/tcpa/dnc-compliance" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">DNC Compliance</a> <a href="/services/tcpa/campaign-review" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Campaign Review</a> <p class="text-xs font-semibold text-teal-500 uppercase tracking-wider px-2 pt-3">Healthcare</p> <a href="/services/healthcare/npi-revalidation" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Medicare Revalidation</a> <a href="/services/healthcare/medicare-enrollment" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Medicare Enrollment (PECOS)</a> <a href="/services/healthcare" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">NPI / NPPES Services</a> <a href="/tools/npi-compliance-check" class="block px-2 py-2 text-sm font-medium text-teal-600 hover:bg-teal-50 rounded">NPI Compliance Check <span class="inline-flex items-center px-1.5 py-0.5 rounded-full text-[9px] font-bold bg-teal-500 text-white ml-1">FREE</span></a> <p class="text-xs font-semibold text-slate-500 uppercase tracking-wider px-2 pt-3">Corporate</p> <a href="/services/corporate/formation" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Business Formation</a> <a href="/services/corporate/state-registration" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">State Registration</a> <a href="/services/corporate/annual-reports" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Annual Reports</a> <a href="/services/corporate/registered-agent" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Registered Agent</a> <div class="border-t border-gray-100 my-2"></div> <a href="/services" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">All Services</a> <a href="/pricing" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Pricing</a> <a href="/tools/contractor-quiz" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Free Tools</a> <a href="/contact" class="block px-2 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded">Contact</a> <a href="/order/formation" class="block mx-2 mt-2 px-4 py-2.5 text-sm font-medium text-white bg-pw-700 hover:bg-pw-800 rounded-lg text-center transition-colors">Form a Business</a> </div> </div> </nav>
|
|
|
|
<main class="flex-1">
|
|
<section class="py-12">
|
|
<div class="max-w-2xl mx-auto px-4">
|
|
<nav class="text-sm text-gray-500 mb-6">
|
|
<a href="/" class="hover:text-gray-700">Home</a> /
|
|
<a href="/tools" class="hover:text-gray-700">Free Tools</a> /
|
|
<span class="text-gray-900">Corporation Status Check</span>
|
|
</nav>
|
|
|
|
<h1 class="text-3xl font-bold text-gray-900 mb-3">Corporation Status Check</h1>
|
|
<p class="text-lg text-gray-600 mb-8">Check if your LLC or corporation is in good standing with the Secretary of State. See if annual reports are overdue and what it costs to fix.</p>
|
|
|
|
<!-- Search form -->
|
|
<div class="bg-white border border-gray-200 rounded-xl p-6 shadow-sm mb-8">
|
|
<div class="grid grid-cols-3 gap-4 mb-4" style="grid-template-columns: 1fr auto auto">
|
|
<div>
|
|
<label class="block text-sm font-semibold text-gray-900 mb-2">Entity Name</label>
|
|
<input type="text" id="corp-name" placeholder="e.g. Acme Holdings LLC" class="w-full border border-gray-300 rounded-lg px-4 py-2.5 text-sm text-gray-900 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-pw-500">
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-semibold text-gray-900 mb-2">State</label>
|
|
<select id="corp-state" class="border border-gray-300 rounded-lg px-3 py-2.5 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-pw-500 bg-white">
|
|
<option value="">Select...</option>
|
|
</select>
|
|
</div>
|
|
<div class="flex items-end">
|
|
<button type="button" id="btn-check" class="px-5 py-2.5 bg-pw-600 text-white font-semibold rounded-lg hover:bg-pw-700 transition-colors whitespace-nowrap text-sm">Check Status</button>
|
|
</div>
|
|
</div>
|
|
<p class="text-xs text-gray-500">We search public Secretary of State records. Results depend on data availability for your state.</p>
|
|
</div>
|
|
|
|
<!-- Loading -->
|
|
<div id="loading" class="hidden text-center py-8">
|
|
<div class="inline-flex items-center gap-3 text-gray-600">
|
|
<svg class="animate-spin h-5 w-5" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" fill="none"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>
|
|
Searching state records...
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Results -->
|
|
<div id="results" class="hidden space-y-4">
|
|
<div id="result-card"></div>
|
|
</div>
|
|
|
|
<!-- Not found -->
|
|
<div id="not-found" class="hidden bg-amber-50 border border-amber-200 rounded-xl p-6">
|
|
<h3 class="text-lg font-bold text-amber-900 mb-2">Entity Not Found</h3>
|
|
<p class="text-sm text-amber-800" id="not-found-msg"></p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<footer class="border-t border-gray-200 bg-gray-50 mt-auto py-8">
|
|
<div class="max-w-4xl mx-auto px-4 text-center text-xs text-gray-400">
|
|
<img src="/images/logo.png" alt="Performance West" class="h-10 mx-auto mb-3">
|
|
<p>Performance West Inc. · 525 Randall Ave Ste 100-1195, Cheyenne, WY 82001 · <a href="https://performancewest.net" class="text-gray-500">performancewest.net</a> · (888) 411-0383</p>
|
|
<p class="mt-2">Performance West is a regulatory compliance consulting firm, not a law firm. This does not constitute legal advice.</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script>
|
|
(function() {
|
|
var API = window.__PW_API;
|
|
var nameInput = document.getElementById("corp-name");
|
|
var stateSelect = document.getElementById("corp-state");
|
|
var btn = document.getElementById("btn-check");
|
|
var loading = document.getElementById("loading");
|
|
var results = document.getElementById("results");
|
|
var notFound = document.getElementById("not-found");
|
|
var resultCard = document.getElementById("result-card");
|
|
|
|
// Populate state dropdown
|
|
var states = [
|
|
"AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN",
|
|
"IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH",
|
|
"NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT",
|
|
"VT","VA","WA","WV","WI","WY"
|
|
];
|
|
var stateNames = {
|
|
AL:"Alabama",AK:"Alaska",AZ:"Arizona",AR:"Arkansas",CA:"California",CO:"Colorado",
|
|
CT:"Connecticut",DE:"Delaware",DC:"District of Columbia",FL:"Florida",GA:"Georgia",
|
|
HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",
|
|
LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",
|
|
MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",
|
|
NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",
|
|
OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",RI:"Rhode Island",SC:"South Carolina",
|
|
SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VA:"Virginia",
|
|
WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming"
|
|
};
|
|
states.forEach(function(s) {
|
|
var opt = document.createElement("option");
|
|
opt.value = s;
|
|
opt.textContent = stateNames[s] + " (" + s + ")";
|
|
stateSelect.appendChild(opt);
|
|
});
|
|
|
|
function usd(cents) { return "$" + (cents / 100).toLocaleString("en-US", {minimumFractionDigits: 0, maximumFractionDigits: 0}); }
|
|
|
|
btn.addEventListener("click", doCheck);
|
|
nameInput.addEventListener("keydown", function(e) { if (e.key === "Enter") doCheck(); });
|
|
|
|
function doCheck() {
|
|
var name = nameInput.value.trim();
|
|
var state = stateSelect.value;
|
|
if (!name || !state) { alert("Please enter an entity name and select a state."); return; }
|
|
|
|
loading.classList.remove("hidden");
|
|
results.classList.add("hidden");
|
|
notFound.classList.add("hidden");
|
|
btn.disabled = true;
|
|
|
|
fetch(API + "/api/v1/corp/status?name=" + encodeURIComponent(name) + "&state=" + state)
|
|
.then(function(r) { return r.json(); })
|
|
.then(function(data) {
|
|
loading.classList.add("hidden");
|
|
btn.disabled = false;
|
|
|
|
if (!data.found) {
|
|
notFound.classList.remove("hidden");
|
|
document.getElementById("not-found-msg").textContent =
|
|
"We couldn't find \"" + name + "\" in " + (stateNames[state] || state) + " records. " +
|
|
"Try the exact legal name (including LLC, Inc., etc.) or check directly with the Secretary of State.";
|
|
return;
|
|
}
|
|
|
|
results.classList.remove("hidden");
|
|
renderResult(data, state);
|
|
})
|
|
.catch(function(err) {
|
|
loading.classList.add("hidden");
|
|
btn.disabled = false;
|
|
notFound.classList.remove("hidden");
|
|
document.getElementById("not-found-msg").textContent = "Search failed: " + (err.message || "Unknown error");
|
|
});
|
|
}
|
|
|
|
function renderResult(data, state) {
|
|
var status = (data.status || "UNKNOWN").toUpperCase();
|
|
var isGood = status === "ACTIVE";
|
|
var isBad = status === "DELINQUENT" || status === "SUSPENDED" || status === "DISSOLVED" || status === "INACTIVE";
|
|
|
|
var borderColor = isGood ? "border-green-200" : isBad ? "border-red-200" : "border-gray-200";
|
|
var bgColor = isGood ? "bg-green-50" : isBad ? "bg-red-50" : "bg-gray-50";
|
|
var statusColor = isGood ? "text-green-700 bg-green-100" : isBad ? "text-red-700 bg-red-100" : "text-gray-700 bg-gray-100";
|
|
|
|
var html = '<div class="' + bgColor + ' border-2 ' + borderColor + ' rounded-xl p-6">';
|
|
html += '<div class="flex items-start justify-between mb-4">';
|
|
html += '<div>';
|
|
html += '<h2 class="text-lg font-bold text-gray-900">' + (data.entity_name || "Unknown") + '</h2>';
|
|
html += '<p class="text-sm text-gray-500">' + (data.entity_type || "Entity") + ' — ' + (stateNames[state] || state) + '</p>';
|
|
if (data.entity_number) html += '<p class="text-xs text-gray-400 font-mono mt-1">Filing #: ' + data.entity_number + '</p>';
|
|
if (data.formation_date) html += '<p class="text-xs text-gray-400 mt-0.5">Formed: ' + data.formation_date + '</p>';
|
|
html += '</div>';
|
|
html += '<span class="px-3 py-1 rounded-full text-sm font-bold ' + statusColor + '">' + status + '</span>';
|
|
html += '</div>';
|
|
|
|
if (isGood) {
|
|
html += '<p class="text-sm text-green-800">This entity is in good standing. No action required.</p>';
|
|
// RA offer for active entities
|
|
html += '<div class="mt-4 p-4 bg-white border border-green-200 rounded-lg">';
|
|
html += '<p class="text-sm font-semibold text-gray-900 mb-1">Need a registered agent?</p>';
|
|
html += '<p class="text-xs text-gray-600 mb-3">We provide registered agent service in all 50 states at competitive rates.</p>';
|
|
html += '<a href="/order/registered-agent?state=' + state + '" class="inline-block px-4 py-2 bg-pw-700 text-white text-xs font-semibold rounded-lg hover:bg-pw-800">Registered Agent — ' + usd(data.ra_price_cents) + '/yr</a>';
|
|
html += '</div>';
|
|
} else if (isBad) {
|
|
html += '<div class="space-y-3">';
|
|
if (data.years_behind > 0) {
|
|
html += '<p class="text-sm text-red-800 font-medium">You are ' + data.years_behind + ' year' + (data.years_behind > 1 ? 's' : '') + ' behind on annual reports.</p>';
|
|
}
|
|
if (status === "DISSOLVED") {
|
|
html += '<p class="text-sm text-red-800">This entity has been administratively dissolved. Reinstatement is required to restore good standing.</p>';
|
|
} else {
|
|
html += '<p class="text-sm text-red-800">File your overdue annual report(s) to return to good standing before the state administratively dissolves your entity.</p>';
|
|
}
|
|
|
|
// Cost breakdown
|
|
html += '<div class="mt-3 p-4 bg-white border border-red-200 rounded-lg">';
|
|
html += '<p class="text-sm font-bold text-gray-900 mb-2">Cost to fix:</p>';
|
|
html += '<table class="w-full text-sm">';
|
|
if (data.years_behind > 0) {
|
|
var perYear = data.cost_per_year_cents;
|
|
html += '<tr><td class="py-1 text-gray-700">Annual report' + (data.years_behind > 1 ? 's (' + data.years_behind + ' years)' : '') + '</td>';
|
|
html += '<td class="py-1 text-right font-medium">' + (data.years_behind > 1 ? data.years_behind + ' × ' + usd(perYear) + ' = ' : '') + usd(data.total_catchup_cents) + '</td></tr>';
|
|
}
|
|
html += '<tr><td class="py-1 text-gray-700">Registered agent (1 year)</td><td class="py-1 text-right font-medium">' + usd(data.ra_price_cents) + '</td></tr>';
|
|
html += '<tr class="border-t border-gray-200"><td class="py-2 font-bold text-gray-900">Total</td><td class="py-2 text-right font-bold text-gray-900">' + usd(data.total_with_ra_cents) + '</td></tr>';
|
|
html += '</table>';
|
|
html += '<a href="/contact?subject=Annual+Report+' + state + '&entity=' + encodeURIComponent(data.entity_name || "") + '" class="mt-3 inline-block w-full text-center px-4 py-2.5 bg-red-600 text-white text-sm font-bold rounded-lg hover:bg-red-700 transition-colors">Get Back in Good Standing →</a>';
|
|
html += '<p class="text-xs text-gray-500 mt-2 text-center">State fees are passthrough at cost. No hidden markup.</p>';
|
|
html += '</div>';
|
|
html += '</div>';
|
|
} else {
|
|
html += '<p class="text-sm text-gray-700">Status: ' + status + '. Contact us if you need help understanding your filing obligations.</p>';
|
|
}
|
|
|
|
html += '</div>';
|
|
resultCard.innerHTML = html;
|
|
}
|
|
})();
|
|
</script>
|
|
<!-- Tawk.to Live Chat --><script>var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();(function(){var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];s1.async=true;s1.src="https://embed.tawk.to/69d5a9ca0d1c3f1c37998081/1jll9ufph";s1.charset="UTF-8";s1.setAttribute("crossorigin","*");s0.parentNode.insertBefore(s1,s0);})();</script>
|
|
</body></html>
|