{"id":2153,"date":"2026-04-21T08:35:16","date_gmt":"2026-04-21T08:35:16","guid":{"rendered":"https:\/\/bbpmfg.com\/?page_id=2153"},"modified":"2026-04-21T08:41:49","modified_gmt":"2026-04-21T08:41:49","slug":"pump-selector","status":"publish","type":"page","link":"https:\/\/bbpmfg.com\/pt\/sand-dredge-pumps\/submersible-dredge-pump\/pump-selector\/","title":{"rendered":"bomba-seletor"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-9fbb205\" data-block-id=\"9fbb205\"><style>.stk-9fbb205 {margin-bottom:1px !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-9fbb205-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-ead74ef\" data-v=\"4\" data-block-id=\"ead74ef\"><style>.stk-ead74ef-container{margin-top:var(--stk--preset--spacing--50, 1.5rem) !important;margin-right:var(--stk--preset--spacing--50, 1.5rem) !important;margin-bottom:var(--stk--preset--spacing--50, 1.5rem) !important;margin-left:var(--stk--preset--spacing--50, 1.5rem) !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-ead74ef-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-ead74ef-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-77cbac4\" data-block-id=\"77cbac4\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-77cbac4-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-26b6a59\" data-v=\"4\" data-block-id=\"26b6a59\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-26b6a59-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-26b6a59-inner-blocks\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Submersible Dredge Pump Selection Tool | BBP<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\nbody {\n  font-family: 'IBM Plex Mono', monospace;\n  background: #0a0e1a;\n  color: #e0e0e0;\n  line-height: 1.6;\n  min-height: 100vh;\n}\n\n.tool-container {\n  max-width: 1120px;\n  margin: 0 auto;\n  padding: 40px 24px;\n}\n\n.tool-header {\n  text-align: center;\n  margin-bottom: 48px;\n}\n\n.tool-header h1 {\n  font-size: 28px;\n  font-weight: 700;\n  color: #F0C018;\n  margin-bottom: 8px;\n  letter-spacing: -0.5px;\n}\n\n.tool-header p {\n  font-size: 14px;\n  color: #8a8fa8;\n  max-width: 600px;\n  margin: 0 auto;\n}\n\n\/* Progress bar *\/\n.progress-bar {\n  display: flex;\n  align-items: center;\n  gap: 0;\n  margin-bottom: 40px;\n  padding: 0 20px;\n}\n\n.progress-step {\n  display: flex;\n  align-items: center;\n  flex: 1;\n}\n\n.progress-step:last-child {\n  flex: 0;\n}\n\n.step-circle {\n  width: 36px;\n  height: 36px;\n  border: 2px solid #2a3050;\n  background: #0a0e1a;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 13px;\n  font-weight: 600;\n  color: #4a5070;\n  flex-shrink: 0;\n  transition: all 0.3s;\n}\n\n.step-circle.active {\n  border-color: #1848C0;\n  background: #1848C0;\n  color: #fff;\n}\n\n.step-circle.done {\n  border-color: #F0C018;\n  background: #F0C018;\n  color: #0a0e1a;\n}\n\n.step-line {\n  flex: 1;\n  height: 2px;\n  background: #2a3050;\n  transition: background 0.3s;\n}\n\n.step-line.done {\n  background: #F0C018;\n}\n\n\/* Wizard panels *\/\n.wizard-panel {\n  display: none;\n  background: #111627;\n  border: 1px solid #1e2540;\n  padding: 40px;\n  margin-bottom: 24px;\n  animation: fadeIn 0.3s ease;\n}\n\n.wizard-panel.active {\n  display: block;\n}\n\n@keyframes fadeIn {\n  from { opacity: 0; transform: translateY(8px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n.panel-label {\n  font-size: 11px;\n  font-weight: 600;\n  color: #F0C018;\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  margin-bottom: 8px;\n}\n\n.panel-title {\n  font-size: 20px;\n  font-weight: 700;\n  color: #fff;\n  margin-bottom: 24px;\n}\n\n\/* Form elements *\/\n.form-group {\n  margin-bottom: 24px;\n}\n\n.form-group label {\n  display: block;\n  font-size: 12px;\n  font-weight: 600;\n  color: #8a8fa8;\n  margin-bottom: 8px;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n}\n\nselect, input[type=\"number\"] {\n  width: 100%;\n  padding: 14px 16px;\n  background: #0a0e1a;\n  border: 1px solid #2a3050;\n  color: #e0e0e0;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 14px;\n  outline: none;\n  transition: border-color 0.2s;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\nselect {\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8fa8' stroke-width='1.5' fill='none'\/%3E%3C\/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 16px center;\n  padding-right: 40px;\n  cursor: pointer;\n}\n\nselect:focus, input[type=\"number\"]:focus {\n  border-color: #1848C0;\n}\n\n\/* Range slider *\/\n.range-wrapper {\n  position: relative;\n}\n\n.range-display {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-bottom: 12px;\n}\n\n.range-value {\n  font-size: 28px;\n  font-weight: 700;\n  color: #F0C018;\n}\n\n.range-unit {\n  font-size: 14px;\n  color: #8a8fa8;\n}\n\ninput[type=\"range\"] {\n  width: 100%;\n  height: 4px;\n  -webkit-appearance: none;\n  appearance: none;\n  background: #2a3050;\n  outline: none;\n  margin: 12px 0;\n}\n\ninput[type=\"range\"]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  width: 20px;\n  height: 20px;\n  background: #1848C0;\n  border: 2px solid #F0C018;\n  cursor: pointer;\n}\n\ninput[type=\"range\"]::-moz-range-thumb {\n  width: 20px;\n  height: 20px;\n  background: #1848C0;\n  border: 2px solid #F0C018;\n  cursor: pointer;\n}\n\n.range-labels {\n  display: flex;\n  justify-content: space-between;\n  font-size: 11px;\n  color: #4a5070;\n}\n\n\/* Radio buttons *\/\n.radio-group {\n  display: flex;\n  gap: 12px;\n  flex-wrap: wrap;\n}\n\n.radio-option {\n  flex: 1;\n  min-width: 140px;\n}\n\n.radio-option input {\n  display: none;\n}\n\n.radio-option label {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: 16px 20px;\n  background: #0a0e1a;\n  border: 1px solid #2a3050;\n  cursor: pointer;\n  text-transform: none;\n  font-size: 14px;\n  font-weight: 500;\n  color: #8a8fa8;\n  transition: all 0.2s;\n  text-align: center;\n}\n\n.radio-option input:checked + label {\n  border-color: #1848C0;\n  background: rgba(24, 72, 192, 0.15);\n  color: #fff;\n}\n\n.radio-option label:hover {\n  border-color: #1848C0;\n}\n\n\/* Buttons *\/\n.btn-row {\n  display: flex;\n  gap: 12px;\n  margin-top: 32px;\n}\n\n.btn {\n  padding: 14px 32px;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 13px;\n  font-weight: 600;\n  border: none;\n  cursor: pointer;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n  transition: all 0.2s;\n}\n\n.btn-primary {\n  background: #1848C0;\n  color: #fff;\n}\n\n.btn-primary:hover {\n  background: #2058d8;\n}\n\n.btn-secondary {\n  background: transparent;\n  color: #8a8fa8;\n  border: 1px solid #2a3050;\n}\n\n.btn-secondary:hover {\n  border-color: #4a5070;\n  color: #e0e0e0;\n}\n\n.btn-cta {\n  background: #F0C018;\n  color: #0a0e1a;\n  font-size: 14px;\n  padding: 16px 36px;\n  width: 100%;\n  margin-top: 16px;\n}\n\n.btn-cta:hover {\n  background: #ffd040;\n}\n\n.btn:disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n\n\/* Results panel *\/\n.results-panel {\n  display: none;\n  animation: fadeIn 0.4s ease;\n}\n\n.results-panel.active {\n  display: block;\n}\n\n.result-card {\n  background: #111627;\n  border: 1px solid #1e2540;\n  padding: 32px;\n  margin-bottom: 16px;\n}\n\n.result-card.primary {\n  border-color: #1848C0;\n  border-width: 2px;\n}\n\n.match-badge {\n  display: inline-block;\n  padding: 4px 12px;\n  font-size: 11px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n  margin-bottom: 16px;\n}\n\n.match-best {\n  background: #F0C018;\n  color: #0a0e1a;\n}\n\n.match-good {\n  background: rgba(24, 72, 192, 0.3);\n  color: #7ea3f0;\n  border: 1px solid #1848C0;\n}\n\n.match-contact {\n  background: rgba(240, 192, 24, 0.15);\n  color: #F0C018;\n  border: 1px solid rgba(240, 192, 24, 0.3);\n}\n\n.model-name {\n  font-size: 24px;\n  font-weight: 700;\n  color: #fff;\n  margin-bottom: 20px;\n}\n\n.spec-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n  gap: 16px;\n  margin-bottom: 20px;\n}\n\n.spec-item {\n  padding: 16px;\n  background: #0a0e1a;\n  border: 1px solid #1e2540;\n}\n\n.spec-label {\n  font-size: 10px;\n  font-weight: 600;\n  color: #4a5070;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n  margin-bottom: 6px;\n}\n\n.spec-value {\n  font-size: 16px;\n  font-weight: 700;\n  color: #F0C018;\n}\n\n.restart-link {\n  display: inline-block;\n  margin-top: 24px;\n  color: #8a8fa8;\n  font-size: 13px;\n  cursor: pointer;\n  border-bottom: 1px dashed #4a5070;\n}\n\n.restart-link:hover {\n  color: #e0e0e0;\n}\n\n\/* Selection summary in results *\/\n.selection-summary {\n  background: #0a0e1a;\n  border: 1px solid #1e2540;\n  padding: 20px 24px;\n  margin-bottom: 24px;\n  font-size: 12px;\n  color: #8a8fa8;\n}\n\n.selection-summary span {\n  color: #e0e0e0;\n  font-weight: 600;\n}\n\n\/* Responsive *\/\n@media (max-width: 860px) {\n  .tool-container { padding: 24px 16px; }\n  .tool-header h1 { font-size: 22px; }\n  .wizard-panel { padding: 24px; }\n  .radio-group { flex-direction: column; }\n  .radio-option { min-width: 100%; }\n  .btn-row { flex-direction: column; }\n  .btn { width: 100%; text-align: center; }\n  .spec-grid { grid-template-columns: 1fr 1fr; }\n  .range-value { font-size: 22px; }\n  .result-card { padding: 20px; }\n  .progress-bar { padding: 0 8px; }\n  .step-circle { width: 28px; height: 28px; font-size: 11px; }\n}\n<\/style>\n<\/head>\n<body>\n<div class=\"tool-container\">\n  <div class=\"tool-header\">\n    <h1>Submersible Dredge Pump Selection Tool<\/h1>\n    <p>Answer a few questions about your dredging application and we&#8217;ll recommend the right AWN model for your project.<\/p>\n  <\/div>\n\n  <!-- Progress Bar -->\n  <div class=\"progress-bar\" id=\"progressBar\">\n    <div class=\"progress-step\"><div class=\"step-circle active\" data-step=\"1\">1<\/div><div class=\"step-line\"><\/div><\/div>\n    <div class=\"progress-step\"><div class=\"step-circle\" data-step=\"2\">2<\/div><div class=\"step-line\"><\/div><\/div>\n    <div class=\"progress-step\"><div class=\"step-circle\" data-step=\"3\">3<\/div><div class=\"step-line\"><\/div><\/div>\n    <div class=\"progress-step\"><div class=\"step-circle\" data-step=\"4\">4<\/div><div class=\"step-line\"><\/div><\/div>\n    <div class=\"progress-step\"><div class=\"step-circle\" data-step=\"5\">5<\/div><div class=\"step-line\"><\/div><\/div>\n    <div class=\"progress-step\"><div class=\"step-circle\" data-step=\"6\">6<\/div><\/div>\n  <\/div>\n\n  <!-- Step 1: Application Type -->\n  <div class=\"wizard-panel active\" id=\"step1\">\n    <div class=\"panel-label\">Step 1 of 6<\/div>\n    <div class=\"panel-title\">What is your application?<\/div>\n    <div class=\"form-group\">\n      <label>Application Type<\/label>\n      <select id=\"applicationType\">\n        <option value=\"\">&#8212; Select Application &#8212;<\/option>\n        <option value=\"river\">River Sand Mining<\/option>\n        <option value=\"port\">Port Maintenance<\/option>\n        <option value=\"land\">Land Reclamation<\/option>\n        <option value=\"tailings\">Tailings Management<\/option>\n        <option value=\"construction\">Construction Dewatering<\/option>\n        <option value=\"other\">Other<\/option>\n      <\/select>\n    <\/div>\n    <div class=\"btn-row\">\n      <button class=\"btn btn-primary\" onclick=\"nextStep(1)\" id=\"btn1\" disabled>Continue<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Step 2: Flow Rate -->\n  <div class=\"wizard-panel\" id=\"step2\">\n    <div class=\"panel-label\">Step 2 of 6<\/div>\n    <div class=\"panel-title\">Required Flow Rate<\/div>\n    <div class=\"form-group\">\n      <div class=\"range-display\">\n        <div class=\"range-value\" id=\"flowValue\">2000<\/div>\n        <div class=\"range-unit\">m&sup3;\/h<\/div>\n      <\/div>\n      <input type=\"range\" id=\"flowRate\" min=\"400\" max=\"9000\" value=\"2000\" step=\"100\">\n      <div class=\"range-labels\">\n        <span>400 m&sup3;\/h<\/span>\n        <span>9,000 m&sup3;\/h<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"btn-row\">\n      <button class=\"btn btn-secondary\" onclick=\"prevStep(2)\">Back<\/button>\n      <button class=\"btn btn-primary\" onclick=\"nextStep(2)\">Continue<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Step 3: Head\/Lift -->\n  <div class=\"wizard-panel\" id=\"step3\">\n    <div class=\"panel-label\">Step 3 of 6<\/div>\n    <div class=\"panel-title\">Required Head \/ Lift<\/div>\n    <div class=\"form-group\">\n      <div class=\"range-display\">\n        <div class=\"range-value\" id=\"headValue\">40<\/div>\n        <div class=\"range-unit\">meters<\/div>\n      <\/div>\n      <input type=\"range\" id=\"headLift\" min=\"15\" max=\"85\" value=\"40\" step=\"1\">\n      <div class=\"range-labels\">\n        <span>15 m<\/span>\n        <span>85 m<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"btn-row\">\n      <button class=\"btn btn-secondary\" onclick=\"prevStep(3)\">Back<\/button>\n      <button class=\"btn btn-primary\" onclick=\"nextStep(3)\">Continue<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Step 4: Particle Size -->\n  <div class=\"wizard-panel\" id=\"step4\">\n    <div class=\"panel-label\">Step 4 of 6<\/div>\n    <div class=\"panel-title\">Maximum Particle Size<\/div>\n    <div class=\"form-group\">\n      <label>Largest solids you need to pass<\/label>\n      <select id=\"particleSize\">\n        <option value=\"\">&#8212; Select Particle Size &#8212;<\/option>\n        <option value=\"50\">Less than 50 mm<\/option>\n        <option value=\"100\">50 &#8211; 100 mm<\/option>\n        <option value=\"170\">100 &#8211; 170 mm<\/option>\n        <option value=\"241\">170 &#8211; 241 mm<\/option>\n      <\/select>\n    <\/div>\n    <div class=\"btn-row\">\n      <button class=\"btn btn-secondary\" onclick=\"prevStep(4)\">Back<\/button>\n      <button class=\"btn btn-primary\" onclick=\"nextStep(4)\" id=\"btn4\" disabled>Continue<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Step 5: Drive Preference -->\n  <div class=\"wizard-panel\" id=\"step5\">\n    <div class=\"panel-label\">Step 5 of 6<\/div>\n    <div class=\"panel-title\">Drive Preference<\/div>\n    <div class=\"form-group\">\n      <div class=\"radio-group\">\n        <div class=\"radio-option\">\n          <input type=\"radio\" name=\"drive\" id=\"driveHyd\" value=\"hydraulic\">\n          <label for=\"driveHyd\">Hydraulic<\/label>\n        <\/div>\n        <div class=\"radio-option\">\n          <input type=\"radio\" name=\"drive\" id=\"driveElec\" value=\"electric\">\n          <label for=\"driveElec\">Electric<\/label>\n        <\/div>\n        <div class=\"radio-option\">\n          <input type=\"radio\" name=\"drive\" id=\"driveNone\" value=\"none\">\n          <label for=\"driveNone\">No Preference<\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"btn-row\">\n      <button class=\"btn btn-secondary\" onclick=\"prevStep(5)\">Back<\/button>\n      <button class=\"btn btn-primary\" onclick=\"nextStep(5)\" id=\"btn5\" disabled>Continue<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Step 6: Solids Concentration -->\n  <div class=\"wizard-panel\" id=\"step6\">\n    <div class=\"panel-label\">Step 6 of 6<\/div>\n    <div class=\"panel-title\">Solids Concentration<\/div>\n    <div class=\"form-group\">\n      <label>Expected slurry concentration by weight<\/label>\n      <select id=\"solidsConc\">\n        <option value=\"\">&#8212; Select Concentration &#8212;<\/option>\n        <option value=\"15\">Less than 15%<\/option>\n        <option value=\"30\">15% &#8211; 30%<\/option>\n        <option value=\"50\">30% &#8211; 50%<\/option>\n        <option value=\"70\">Greater than 50%<\/option>\n      <\/select>\n    <\/div>\n    <div class=\"btn-row\">\n      <button class=\"btn btn-secondary\" onclick=\"prevStep(6)\">Back<\/button>\n      <button class=\"btn btn-primary\" onclick=\"showResults()\" id=\"btn6\" disabled>Get Recommendation<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Results -->\n  <div class=\"results-panel\" id=\"resultsPanel\">\n    <div class=\"panel-label\">Your Recommendation<\/div>\n    <div class=\"panel-title\" style=\"margin-bottom: 16px;\">Based on Your Application Parameters<\/div>\n\n    <div class=\"selection-summary\" id=\"selectionSummary\"><\/div>\n\n    <div id=\"resultsContainer\"><\/div>\n\n    <div class=\"restart-link\" onclick=\"restart()\">Start Over With Different Parameters<\/div>\n  <\/div>\n<\/div>\n\n<script>\n\/\/ AWN Model Database\nconst models = [\n  {\n    name: '200AWN',\n    flowMin: 400, flowMax: 2000,\n    headMin: 15, headMax: 45,\n    particleMax: 100,\n    power: '55-132 kW',\n    discharge: '200 mm (8\")',\n    drives: ['hydraulic', 'electric'],\n    concMax: 50,\n    apps: ['construction', 'port', 'river']\n  },\n  {\n    name: '300AWN',\n    flowMin: 800, flowMax: 3500,\n    headMin: 20, headMax: 55,\n    particleMax: 140,\n    power: '90-200 kW',\n    discharge: '300 mm (12\")',\n    drives: ['hydraulic', 'electric'],\n    concMax: 50,\n    apps: ['river', 'port', 'land', 'construction']\n  },\n  {\n    name: '450AWN',\n    flowMin: 1500, flowMax: 5500,\n    headMin: 25, headMax: 65,\n    particleMax: 170,\n    power: '160-355 kW',\n    discharge: '450 mm (18\")',\n    drives: ['hydraulic', 'electric'],\n    concMax: 70,\n    apps: ['river', 'land', 'port', 'tailings']\n  },\n  {\n    name: '600AWN',\n    flowMin: 2500, flowMax: 7000,\n    headMin: 30, headMax: 75,\n    particleMax: 210,\n    power: '250-500 kW',\n    discharge: '600 mm (24\")',\n    drives: ['hydraulic', 'electric'],\n    concMax: 70,\n    apps: ['land', 'river', 'tailings', 'port']\n  },\n  {\n    name: '800AWN',\n    flowMin: 4000, flowMax: 9000,\n    headMin: 35, headMax: 85,\n    particleMax: 241,\n    power: '400-800 kW',\n    discharge: '800 mm (32\")',\n    drives: ['hydraulic'],\n    concMax: 70,\n    apps: ['land', 'tailings', 'river']\n  }\n];\n\nconst appLabels = {\n  river: 'River Sand Mining',\n  port: 'Port Maintenance',\n  land: 'Land Reclamation',\n  tailings: 'Tailings Management',\n  construction: 'Construction Dewatering',\n  other: 'Other'\n};\n\nconst particleLabels = {\n  '50': '<50 mm', '100': '50-100 mm', '170': '100-170 mm', '241': '170-241 mm'\n};\n\nconst concLabels = {\n  '15': '<15%', '30': '15-30%', '50': '30-50%', '70': '>50%'\n};\n\nconst driveLabels = {\n  hydraulic: 'Hydraulic', electric: 'Electric', none: 'No Preference'\n};\n\n\/\/ Enable\/disable buttons based on selection\ndocument.getElementById('applicationType').addEventListener('change', function() {\n  document.getElementById('btn1').disabled = !this.value;\n});\n\ndocument.getElementById('flowRate').addEventListener('input', function() {\n  document.getElementById('flowValue').textContent = Number(this.value).toLocaleString();\n});\n\ndocument.getElementById('headLift').addEventListener('input', function() {\n  document.getElementById('headValue').textContent = this.value;\n});\n\ndocument.getElementById('particleSize').addEventListener('change', function() {\n  document.getElementById('btn4').disabled = !this.value;\n});\n\ndocument.querySelectorAll('input[name=\"drive\"]').forEach(function(el) {\n  el.addEventListener('change', function() {\n    document.getElementById('btn5').disabled = false;\n  });\n});\n\ndocument.getElementById('solidsConc').addEventListener('change', function() {\n  document.getElementById('btn6').disabled = !this.value;\n});\n\nfunction nextStep(current) {\n  document.getElementById('step' + current).classList.remove('active');\n  document.getElementById('step' + (current + 1)).classList.add('active');\n  updateProgress(current + 1);\n}\n\nfunction prevStep(current) {\n  document.getElementById('step' + current).classList.remove('active');\n  document.getElementById('step' + (current - 1)).classList.add('active');\n  updateProgress(current - 1);\n}\n\nfunction updateProgress(activeStep) {\n  var circles = document.querySelectorAll('.step-circle');\n  var lines = document.querySelectorAll('.step-line');\n  circles.forEach(function(c, i) {\n    var step = i + 1;\n    c.classList.remove('active', 'done');\n    if (step < activeStep) c.classList.add('done');\n    else if (step === activeStep) c.classList.add('active');\n  });\n  lines.forEach(function(l, i) {\n    l.classList.toggle('done', i < activeStep - 1);\n  });\n}\n\nfunction scoreModel(model, params) {\n  var score = 0;\n  var maxScore = 0;\n\n  \/\/ Flow rate fit (0-30 points)\n  maxScore += 30;\n  if (params.flow >= model.flowMin && params.flow <= model.flowMax) {\n    var mid = (model.flowMin + model.flowMax) \/ 2;\n    var range = (model.flowMax - model.flowMin) \/ 2;\n    var dist = Math.abs(params.flow - mid) \/ range;\n    score += 30 * (1 - dist * 0.3);\n  } else if (params.flow < model.flowMin) {\n    var gap = (model.flowMin - params.flow) \/ model.flowMin;\n    if (gap < 0.3) score += 15 * (1 - gap);\n  } else {\n    var gap = (params.flow - model.flowMax) \/ model.flowMax;\n    if (gap < 0.3) score += 15 * (1 - gap);\n  }\n\n  \/\/ Head fit (0-25 points)\n  maxScore += 25;\n  if (params.head >= model.headMin && params.head <= model.headMax) {\n    score += 25;\n  } else if (params.head < model.headMin) {\n    var gap = (model.headMin - params.head) \/ model.headMin;\n    if (gap < 0.3) score += 12 * (1 - gap);\n  } else {\n    var gap = (params.head - model.headMax) \/ model.headMax;\n    if (gap < 0.2) score += 8 * (1 - gap);\n  }\n\n  \/\/ Particle size (0-20 points)\n  maxScore += 20;\n  if (params.particle <= model.particleMax) {\n    score += 20;\n  } else {\n    var over = (params.particle - model.particleMax) \/ model.particleMax;\n    if (over < 0.2) score += 8;\n  }\n\n  \/\/ Drive preference (0-10 points)\n  maxScore += 10;\n  if (params.drive === 'none') {\n    score += 10;\n  } else if (model.drives.indexOf(params.drive) >= 0) {\n    score += 10;\n  }\n\n  \/\/ Solids concentration (0-10 points)\n  maxScore += 10;\n  if (params.conc <= model.concMax) {\n    score += 10;\n  }\n\n  \/\/ Application fit (0-5 bonus)\n  if (params.app !== 'other' &#038;&#038; model.apps.indexOf(params.app) >= 0) {\n    score += 5;\n    maxScore += 5;\n  } else {\n    maxScore += 5;\n  }\n\n  return { score: score, maxScore: maxScore, pct: (score \/ maxScore) * 100 };\n}\n\nfunction showResults() {\n  var params = {\n    app: document.getElementById('applicationType').value,\n    flow: parseInt(document.getElementById('flowRate').value),\n    head: parseInt(document.getElementById('headLift').value),\n    particle: parseInt(document.getElementById('particleSize').value),\n    drive: document.querySelector('input[name=\"drive\"]:checked').value,\n    conc: parseInt(document.getElementById('solidsConc').value)\n  };\n\n  \/\/ Score all models\n  var scored = models.map(function(m) {\n    var result = scoreModel(m, params);\n    return { model: m, score: result.score, pct: result.pct };\n  });\n\n  scored.sort(function(a, b) { return b.pct - a.pct; });\n\n  \/\/ Filter to show relevant results\n  var results = scored.filter(function(s) { return s.pct > 40; }).slice(0, 3);\n\n  if (results.length === 0) {\n    results = [scored[0]];\n  }\n\n  \/\/ Build summary\n  var summary = document.getElementById('selectionSummary');\n  summary.innerHTML =\n    'Application: <span>' + appLabels[params.app] + '<\/span> | ' +\n    'Flow: <span>' + params.flow.toLocaleString() + ' m&sup3;\/h<\/span> | ' +\n    'Head: <span>' + params.head + ' m<\/span> | ' +\n    'Particle: <span>' + particleLabels[String(params.particle)] + '<\/span> | ' +\n    'Drive: <span>' + driveLabels[params.drive] + '<\/span> | ' +\n    'Solids: <span>' + concLabels[String(params.conc)] + '<\/span>';\n\n  \/\/ Build result cards\n  var container = document.getElementById('resultsContainer');\n  container.innerHTML = '';\n\n  results.forEach(function(r, i) {\n    var matchType, matchClass, matchLabel;\n    if (r.pct >= 80) {\n      matchType = 'primary'; matchClass = 'match-best'; matchLabel = 'Best Match';\n    } else if (r.pct >= 55) {\n      matchType = ''; matchClass = 'match-good'; matchLabel = 'Good Match';\n    } else {\n      matchType = ''; matchClass = 'match-contact'; matchLabel = 'Contact Engineer';\n    }\n\n    var card = document.createElement('div');\n    card.className = 'result-card' + (i === 0 ? ' primary' : '');\n    card.innerHTML =\n      '<div class=\"match-badge ' + matchClass + '\">' + matchLabel + '<\/div>' +\n      '<div class=\"model-name\">BBP ' + r.model.name + ' Submersible Dredge Pump<\/div>' +\n      '<div class=\"spec-grid\">' +\n        '<div class=\"spec-item\"><div class=\"spec-label\">Flow Range<\/div><div class=\"spec-value\">' + r.model.flowMin.toLocaleString() + ' - ' + r.model.flowMax.toLocaleString() + ' m&sup3;\/h<\/div><\/div>' +\n        '<div class=\"spec-item\"><div class=\"spec-label\">Head Range<\/div><div class=\"spec-value\">' + r.model.headMin + ' - ' + r.model.headMax + ' m<\/div><\/div>' +\n        '<div class=\"spec-item\"><div class=\"spec-label\">Power<\/div><div class=\"spec-value\">' + r.model.power + '<\/div><\/div>' +\n        '<div class=\"spec-item\"><div class=\"spec-label\">Discharge<\/div><div class=\"spec-value\">' + r.model.discharge + '<\/div><\/div>' +\n        '<div class=\"spec-item\"><div class=\"spec-label\">Max Particle<\/div><div class=\"spec-value\">' + r.model.particleMax + ' mm<\/div><\/div>' +\n        '<div class=\"spec-item\"><div class=\"spec-label\">Drive Options<\/div><div class=\"spec-value\">' + r.model.drives.map(function(d) { return d.charAt(0).toUpperCase() + d.slice(1); }).join(' \/ ') + '<\/div><\/div>' +\n      '<\/div>' +\n      '<a href=\"#ct-popup-820\" class=\"btn btn-cta\" onclick=\"return false;\">Request a Quote for ' + r.model.name + '<\/a>';\n\n    container.appendChild(card);\n  });\n\n  \/\/ Hide wizard, show results\n  document.getElementById('step6').classList.remove('active');\n  document.getElementById('resultsPanel').classList.add('active');\n\n  \/\/ Update progress to complete\n  document.querySelectorAll('.step-circle').forEach(function(c) { c.classList.remove('active'); c.classList.add('done'); });\n  document.querySelectorAll('.step-line').forEach(function(l) { l.classList.add('done'); });\n}\n\nfunction restart() {\n  document.getElementById('resultsPanel').classList.remove('active');\n  document.getElementById('step1').classList.add('active');\n\n  \/\/ Reset form\n  document.getElementById('applicationType').value = '';\n  document.getElementById('flowRate').value = 2000;\n  document.getElementById('flowValue').textContent = '2,000';\n  document.getElementById('headLift').value = 40;\n  document.getElementById('headValue').textContent = '40';\n  document.getElementById('particleSize').value = '';\n  document.querySelectorAll('input[name=\"drive\"]').forEach(function(el) { el.checked = false; });\n  document.getElementById('solidsConc').value = '';\n\n  \/\/ Reset buttons\n  document.getElementById('btn1').disabled = true;\n  document.getElementById('btn4').disabled = true;\n  document.getElementById('btn5').disabled = true;\n  document.getElementById('btn6').disabled = true;\n\n  \/\/ Reset progress\n  updateProgress(1);\n}\n\n\/\/ CTA click handler\ndocument.addEventListener('click', function(e) {\n  if (e.target.classList.contains('btn-cta')) {\n    var popup = document.getElementById('ct-popup-820');\n    if (popup) popup.click();\n    \/\/ If embedded in a page with Starter Templates popup, trigger it\n    if (window.parent && window.parent.document) {\n      try {\n        var parentPopup = window.parent.document.getElementById('ct-popup-820');\n        if (parentPopup) parentPopup.click();\n      } catch(err) {}\n    }\n  }\n});\n<\/script>\n<\/body>\n<\/html>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Submersible Dredge Pump Selection Tool | BBP Submersible Dredge Pump Selection Tool Answer a few questions about your dredging application and we&#8217;ll recommend the right AWN model for your project. 1 2 3 4 5 6 Step 1 of 6 What is your application? Application Type &#8212; Select Application &#8212;River Sand MiningPort MaintenanceLand ReclamationTailings ManagementConstruction [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":1948,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2153","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages\/2153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/comments?post=2153"}],"version-history":[{"count":0,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages\/2153\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages\/1948"}],"wp:attachment":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/media?parent=2153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}