`).join('');
loading.classList.remove('visible');
document.getElementById('results').classList.add('visible');
document.getElementById('results').scrollIntoView({ behavior: 'smooth', block: 'start' });
}, 1500);
}
function submitLead() {
const name = document.getElementById('leadName').value.trim();
const email = document.getElementById('leadEmail').value.trim();
const zip = document.getElementById('zipInput').value.trim();
if (!name || !email) {
alert('Please enter your name and email to receive your report.');
return;
}
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
alert('Please enter a valid email address.');
return;
}
document.getElementById('leadSuccess').style.display = 'block';
document.getElementById('leadSuccess').scrollIntoView({ behavior: 'smooth' });
const scoreEl = document.getElementById('scoreValue');
const hailEl = document.getElementById('hailEvents');
const windEl = document.getElementById('windEvents');
const declEl = document.getElementById('stormDecl');
const riskEl = document.getElementById('riskLevel');
const score = scoreEl ? scoreEl.textContent : '--';
const hail = hailEl ? hailEl.textContent : '--';
const wind = windEl ? windEl.textContent : '--';
const decl = declEl ? declEl.textContent : '--';
const risk = riskEl ? riskEl.textContent : '--';
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
const orange = [255, 102, 0];
const dark = [30, 30, 30];
const gray = [100, 100, 100];
doc.setFillColor(...orange);
doc.rect(0, 0, 210, 35, 'F');
doc.setTextColor(255, 255, 255);
doc.setFontSize(22);
doc.setFont('helvetica', 'bold');
doc.text('PROOF CONSTRUCTION', 20, 18);
doc.setFontSize(12);
doc.setFont('helvetica', 'normal');
doc.text('Storm Risk Analysis Report', 20, 27);
doc.text(new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }), 160, 27);
let y = 48;
doc.setTextColor(...dark);
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.text('PROPERTY RISK PROFILE', 20, y);
y += 8;
doc.setDrawColor(...orange);
doc.setLineWidth(0.5);
doc.line(20, y, 190, y);
y += 10;
doc.setFontSize(10);
doc.setFont('helvetica', 'normal');
doc.setTextColor(...gray);
doc.text('Zip Code:', 20, y);
doc.setTextColor(...dark);
doc.setFont('helvetica', 'bold');
doc.text(zip, 50, y);
doc.setFont('helvetica', 'normal');
y += 7;
doc.setTextColor(...gray);
doc.text('Risk Score:', 20, y);
doc.setTextColor(255, 102, 0);
doc.setFont('helvetica', 'bold');
doc.setFontSize(14);
doc.text(score + ' / 100', 50, y);
doc.setFontSize(10);
doc.setFont('helvetica', 'normal');
y += 7;
doc.setTextColor(...gray);
doc.text('Risk Level:', 20, y);
doc.setTextColor(255, 102, 0);
doc.setFont('helvetica', 'bold');
doc.text(risk, 50, y);
doc.setFont('helvetica', 'normal');
y += 10;
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.setTextColor(...dark);
doc.text('5-YEAR STORM HISTORY', 20, y);
y += 8;
doc.setDrawColor(...orange);
doc.line(20, y, 190, y);
y += 10;
doc.setFontSize(10);
const history = [
['Hail Events (5yr):', hail + ' recorded incidents'],
['Severe Wind Events (5yr):', wind + ' incidents'],
['Federal Storm Declarations:', decl + ' declarations']
];
history.forEach(([label, val]) => {
doc.setTextColor(...gray);
doc.text(label, 20, y);
doc.setTextColor(...dark);
doc.setFont('helvetica', 'bold');
doc.text(val, 80, y);
doc.setFont('helvetica', 'normal');
y += 7;
});
y += 10;
doc.setFontSize(14);
doc.setFont('helvetica', 'bold');
doc.setTextColor(...dark);
doc.text('RECOMMENDED ACTIONS', 20, y);
y += 8;
doc.setDrawColor(...orange);
doc.line(20, y, 190, y);
y += 10;
doc.setFontSize(9);
doc.setFont('helvetica', 'normal');
const recs = [
'Schedule a professional roof inspection before storm season',
'Consider Class 4 impact-resistant shingles for better hail protection',
'Review your insurance policy to confirm storm damage coverage',
'Document your current roof condition with photos for insurance purposes',
'Keep emergency contact info for 24/7 storm response ready'
];
recs.forEach(rec => {
doc.setTextColor(255, 102, 0);
doc.text('•', 20, y);
doc.setTextColor(...dark);
doc.text(rec, 27, y);
y += 6;
});
y += 10;
doc.setFillColor(250, 250, 250);
doc.rect(20, y, 170, 20, 'F');
doc.setDrawColor(200, 200, 200);
doc.setLineWidth(0.3);
doc.rect(20, y, 170, 20, 'S');
y += 8;
doc.setFontSize(10);
doc.setFont('helvetica', 'bold');
doc.setTextColor(...orange);
doc.text('Need a professional assessment? Call (918) 734-4444', 105, y, { align: 'center' });
y += 5;
doc.setFontSize(8);
doc.setFont('helvetica', 'normal');
doc.setTextColor(...gray);
doc.text('Oklahoma CIB License #80004070 | proofok.com', 105, y, { align: 'center' });
y += 12;
doc.setFontSize(7);
doc.setTextColor(150, 150, 150);
doc.text('DISCLAIMER: This report is based on NOAA historical weather data and should be used for informational purposes only. Individual property risk may vary. Contact Proof Construction for a precise assessment.', 20, y);
doc.save('Storm-Risk-Report-' + zip + '.pdf');
}
// Allow Enter key to trigger analysis
document.getElementById('zipInput').addEventListener('keypress', function(e) {
if (e.key === 'Enter') analyzeRisk();
});
// Responsive nav
if (window.innerWidth <= 992) {
document.querySelector('.desktop-only').forEach = function() {};
}