diff --git a/site/public/order/fcc-carrier-registration/index.html b/site/public/order/fcc-carrier-registration/index.html
index 0902d01..f090a02 100644
--- a/site/public/order/fcc-carrier-registration/index.html
+++ b/site/public/order/fcc-carrier-registration/index.html
@@ -146,13 +146,10 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px
Based on your answers, here's what you need. You can add or remove services.
-
@@ -428,37 +425,41 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px
// ── Build registration checklist (Step 2) ──
function buildChecklist() {
var base = document.getElementById('base-services');
- var derived = document.getElementById('wizard-services');
var addons = document.getElementById('addon-services');
- base.innerHTML = ''; derived.innerHTML = ''; addons.innerHTML = '';
+ base.innerHTML = ''; addons.innerHTML = '';
- function svcRow(name, desc, included, price, key, parent) {
- var row = document.createElement('label');
- row.className = 'svc-row';
- var checked = included ? 'checked' : '';
- var priceText = price ? '$' + (price / 100).toLocaleString() : 'Included';
- row.innerHTML = '
' +
+ function baseSvc(name, desc, relevant) {
+ var row = document.createElement('div');
+ row.className = 'svc-row' + (relevant ? '' : ' disabled');
+ row.innerHTML = '
\u2713 ' +
'
' + name + ' ' +
- (price ? '
+' + priceText + '' : '
' + priceText + '');
- row.querySelector('input').addEventListener('change', updatePrice);
- parent.appendChild(row);
+ '
' + (relevant ? 'Included' : 'Included (not needed for your service type)') + '';
+ base.appendChild(row);
}
- // Base (always included)
- svcRow('CORES / FRN Registration', 'FCC Registration Number', true, 0, 'cores', base);
- svcRow('Form 499 Initial Registration', 'USAC enrollment', true, 0, 'form499', base);
- svcRow('D.C. Registered Agent (Annual)', 'FCC process-of-service', true, 0, 'dc_agent', base);
+ function addonRow(name, price, key, preChecked) {
+ var row = document.createElement('label');
+ row.className = 'svc-row';
+ row.innerHTML = '
' +
+ '
' + name + ' ' +
+ '
+$' + (price / 100).toLocaleString() + '';
+ row.querySelector('input').addEventListener('change', updatePrice);
+ addons.appendChild(row);
+ }
- // Wizard-determined
- if (wizard.needsRmd) svcRow('RMD Registration', 'Robocall Mitigation Database', true, 0, 'rmd', derived);
- if (wizard.needsCpni) svcRow('CPNI Certification', 'Customer data protection', true, 0, 'cpni', derived);
- if (wizard.needsCalea) svcRow('CALEA SSI Plan', 'Lawful intercept compliance', true, 0, 'calea', derived);
- if (wizard.needsBdc) svcRow('BDC Filing', 'Broadband Data Collection', true, 0, 'bdc', derived);
+ // All included in base $1,299
+ baseSvc('CORES / FRN Registration', 'FCC Registration Number', true);
+ baseSvc('Form 499 Initial Registration', 'USAC Universal Service Fund enrollment', true);
+ baseSvc('D.C. Registered Agent (Annual)', 'FCC process-of-service address', true);
+ baseSvc('RMD Registration', 'Robocall Mitigation Database', wizard.needsRmd);
+ baseSvc('CPNI Annual Certification', 'Customer data protection compliance', wizard.needsCpni);
+ baseSvc('CALEA SSI Plan', 'Lawful intercept compliance plan', wizard.needsCalea);
+ baseSvc('BDC Filing', 'Broadband Data Collection', wizard.needsBdc);
- // Add-ons
- svcRow('STIR/SHAKEN Implementation', 'Call authentication certificate', wizard.needsStirShaken, 49900, 'stir_shaken', addons);
- svcRow('NECA OCN Registration', 'Operating Company Number + sponsoring CLEC', wizard.needsOcn, 265000, 'ocn', addons);
- svcRow('State PUC Registration (per state)', 'State utility commission filing', false, 39900, 'state_puc', addons);
+ // Add-ons (extra cost)
+ addonRow('STIR/SHAKEN Implementation', 49900, 'stir_shaken', wizard.needsStirShaken);
+ addonRow('NECA OCN Registration', 265000, 'ocn', wizard.needsOcn);
+ addonRow('State PUC Registration (per state)', 39900, 'state_puc', false);
updatePrice();
}
@@ -601,13 +602,15 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px
var html = '
';
html += '| Item | Price |
';
+ var included = ['CORES/FRN', 'Form 499 Initial', 'D.C. Registered Agent'];
+ if (wizard.needsRmd) included.push('RMD');
+ if (wizard.needsCpni) included.push('CPNI');
+ if (wizard.needsCalea) included.push('CALEA');
+ if (wizard.needsBdc) included.push('BDC');
+
var items = [
- { name: 'Base Registration (CORES/FRN + Form 499 + DC Agent)', price: wizard.baseFee },
+ { name: 'FCC Carrier Registration Package (' + included.join(', ') + ')', price: wizard.baseFee },
];
- if (services.indexOf('rmd') >= 0) items.push({ name: 'RMD Registration', price: 0 });
- if (services.indexOf('cpni') >= 0) items.push({ name: 'CPNI Certification', price: 0 });
- if (services.indexOf('calea') >= 0) items.push({ name: 'CALEA SSI Plan', price: 0 });
- if (services.indexOf('bdc') >= 0) items.push({ name: 'BDC Filing', price: 0 });
if (services.indexOf('stir_shaken') >= 0) items.push({ name: 'STIR/SHAKEN Implementation', price: 49900 });
if (services.indexOf('ocn') >= 0) items.push({ name: 'NECA OCN Registration', price: 265000 });
if (services.indexOf('state_puc') >= 0) items.push({ name: 'State PUC Registration', price: 39900 });