diff --git a/site/public/order/fcc-carrier-registration/index.html b/site/public/order/fcc-carrier-registration/index.html index 67fad25..2a0fc7f 100644 --- a/site/public/order/fcc-carrier-registration/index.html +++ b/site/public/order/fcc-carrier-registration/index.html @@ -87,9 +87,22 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px

What type of service will you offer?

Select all that apply.

+ - - + + + +
@@ -327,7 +340,8 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px // ── Wizard state ── var wizard = { - serviceTypes: [], voiceDelivery: '', infraNeeds: [], + serviceTypes: [], voiceMode: 'retail', broadbandMode: 'retail', + voiceDelivery: '', infraNeeds: [], broadbandType: '', operatingStates: '', // Derived needsRmd: false, needsCpni: false, needsCalea: false, needsBdc: false, @@ -356,11 +370,22 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px document.querySelectorAll('[data-svc]').forEach(function(cb) { cb.addEventListener('change', function() { wizard.serviceTypes = Array.from(document.querySelectorAll('[data-svc]:checked')).map(function(c) { return c.dataset.svc; }); - document.getElementById('q2').classList.toggle('hidden', wizard.serviceTypes.indexOf('voice') < 0); - document.getElementById('q4').classList.toggle('hidden', wizard.serviceTypes.indexOf('broadband') < 0); - document.getElementById('q5').classList.remove('hidden'); + var hasVoice = wizard.serviceTypes.indexOf('voice') >= 0; + var hasBroadband = wizard.serviceTypes.indexOf('broadband') >= 0; + document.getElementById('q1-voice-mode').classList.toggle('hidden', !hasVoice); + document.getElementById('q1-broadband-mode').classList.toggle('hidden', !hasBroadband); + document.getElementById('q2').classList.toggle('hidden', !hasVoice); + document.getElementById('q4').classList.toggle('hidden', !hasBroadband); + if (hasVoice || hasBroadband) document.getElementById('q5').classList.remove('hidden'); }); }); + // Voice/broadband mode radios + document.querySelectorAll('input[name=voice_mode]').forEach(function(r) { + r.addEventListener('change', function() { wizard.voiceMode = this.value; }); + }); + document.querySelectorAll('input[name=broadband_mode]').forEach(function(r) { + r.addEventListener('change', function() { wizard.broadbandMode = this.value; }); + }); // ── Q2: Voice delivery ── document.querySelectorAll('[data-voice]').forEach(function(btn) { @@ -408,12 +433,15 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px var hasVoice = wizard.serviceTypes.indexOf('voice') >= 0; var hasBroadband = wizard.serviceTypes.indexOf('broadband') >= 0; - var isWholesale = wizard.serviceTypes.indexOf('wholesale') >= 0; + var bbRetail = hasBroadband && (wizard.broadbandMode === 'retail' || wizard.broadbandMode === 'both'); + // Voice carriers always need RMD + CPNI regardless of retail/wholesale wizard.needsRmd = hasVoice; wizard.needsCpni = hasVoice; + // CALEA: all voice carriers + facilities-based broadband wizard.needsCalea = hasVoice || (hasBroadband && wizard.broadbandType === 'facilities'); - wizard.needsBdc = hasBroadband && !isWholesale; + // BDC only for broadband with retail end users (not wholesale-only broadband) + wizard.needsBdc = bbRetail; wizard.needsOcn = wizard.infraNeeds.indexOf('lcr') >= 0 || wizard.infraNeeds.indexOf('own_dids') >= 0 || wizard.infraNeeds.indexOf('interconnect') >= 0 || wizard.infraNeeds.indexOf('stir_sign') >= 0; wizard.needsStirShaken = wizard.infraNeeds.indexOf('stir_sign') >= 0 || wizard.needsOcn; @@ -675,6 +703,8 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px address_zip: wizard.addrZip, service_wizard: { service_types: wizard.serviceTypes, + voice_mode: wizard.voiceMode, + broadband_mode: wizard.broadbandMode, voice_delivery: wizard.voiceDelivery, infra_needs: wizard.infraNeeds, broadband_type: wizard.broadbandType,