{"id":803632,"date":"2025-11-25T16:23:59","date_gmt":"2025-11-25T16:23:59","guid":{"rendered":"https:\/\/jjportable.com\/?page_id=803632"},"modified":"2026-01-05T23:13:36","modified_gmt":"2026-01-05T23:13:36","slug":"calculator","status":"publish","type":"page","link":"https:\/\/jjportable.com\/calculator\/","title":{"rendered":"Calculator"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;72px|||||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]<!-- FULL-WIDTH RESPONSIVE J&J EVENT + CONSTRUCTION CALCULATOR --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  .jj-wrapper {<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    max-width: 1200px;<!-- [et_pb_line_break_holder] -->    margin: auto;<!-- [et_pb_line_break_holder] -->    padding: 20px;<!-- [et_pb_line_break_holder] -->    box-sizing: border-box;<!-- [et_pb_line_break_holder] -->    font-family: Arial, sans-serif;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-card {<!-- [et_pb_line_break_holder] -->    background: #ffffff;<!-- [et_pb_line_break_holder] -->    border: 1px solid #d8d8d8;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    padding: 25px;<!-- [et_pb_line_break_holder] -->    margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->    box-shadow: 0 4px 10px rgba(0,0,0,0.05);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-header {<!-- [et_pb_line_break_holder] -->    font-size: 26px;<!-- [et_pb_line_break_holder] -->    font-weight: bold;<!-- [et_pb_line_break_holder] -->    color: #002f87;<!-- [et_pb_line_break_holder] -->    margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-label {<!-- [et_pb_line_break_holder] -->    font-weight: bold;<!-- [et_pb_line_break_holder] -->    margin-bottom: 6px;<!-- [et_pb_line_break_holder] -->    display: block;<!-- [et_pb_line_break_holder] -->    color: #333;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-input,<!-- [et_pb_line_break_holder] -->  .jj-select {<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    padding: 12px;<!-- [et_pb_line_break_holder] -->    border: 1px solid #cccccc;<!-- [et_pb_line_break_holder] -->    border-radius: 8px;<!-- [et_pb_line_break_holder] -->    font-size: 16px;<!-- [et_pb_line_break_holder] -->    margin-bottom: 15px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-checkbox {<!-- [et_pb_line_break_holder] -->    margin-right: 8px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-button {<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    padding: 14px;<!-- [et_pb_line_break_holder] -->    background: #002f87;<!-- [et_pb_line_break_holder] -->    color: #fff;<!-- [et_pb_line_break_holder] -->    border: none;<!-- [et_pb_line_break_holder] -->    border-radius: 8px;<!-- [et_pb_line_break_holder] -->    font-size: 18px;<!-- [et_pb_line_break_holder] -->    font-weight: bold;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-result {<!-- [et_pb_line_break_holder] -->    padding: 20px;<!-- [et_pb_line_break_holder] -->    background: #f7f7f7;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->    border: 1px solid #ddd;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .jj-result p {<!-- [et_pb_line_break_holder] -->    font-size: 18px;<!-- [et_pb_line_break_holder] -->    margin: 8px 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->    .jj-row { flex-direction: column; }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"jj-wrapper\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"jj-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"jj-header\">Portable Restroom Calculator<\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <label class=\"jj-label\">Select Mode:<\/label><!-- [et_pb_line_break_holder] -->    <select id=\"modeSelect\" class=\"jj-select\"><!-- [et_pb_line_break_holder] --><option value=\"event\">Event<\/option><!-- [et_pb_line_break_holder] --><option value=\"construction\">Construction<\/option><!-- [et_pb_line_break_holder] -->    <\/select><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"eventFields\"><!-- [et_pb_line_break_holder] -->      <label class=\"jj-label\">Crowd Size<\/label><!-- [et_pb_line_break_holder] -->      <input id=\"crowd\" type=\"number\" class=\"jj-input\" placeholder=\"500 - 100,000\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <label class=\"jj-label\">Event Duration (Hours)<\/label><!-- [et_pb_line_break_holder] -->      <input id=\"hours\" type=\"number\" min=\"1\" max=\"10\" class=\"jj-input\" placeholder=\"1 - 10\"><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"constructionFields\" style=\"display:none;\"><!-- [et_pb_line_break_holder] -->      <label class=\"jj-label\">Number of Workers<\/label><!-- [et_pb_line_break_holder] -->      <input id=\"workers\" type=\"number\" class=\"jj-input\" placeholder=\"e.g. 35\"><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <label><input id=\"heat\" type=\"checkbox\" class=\"jj-checkbox\"> Hot Weather (80+\u00b0F)<\/label><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->    <label><input id=\"alcohol\" type=\"checkbox\" class=\"jj-checkbox\"> Alcohol Served<\/label><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->    <label><input id=\"women\" type=\"checkbox\" class=\"jj-checkbox\"> Majority Women<\/label><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <button class=\"jj-button\" onclick=\"calculateJJ()\">Calculate Requirements<\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"jj-result\" class=\"jj-result\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->const eventExtended = {<!-- [et_pb_line_break_holder] -->  500:[2,4,4,5,6,7,9,9,10,12],<!-- [et_pb_line_break_holder] -->  1000:[4,6,8,8,9,9,11,12,13,13],<!-- [et_pb_line_break_holder] -->  2000:[5,6,9,12,14,16,18,20,23,25],<!-- [et_pb_line_break_holder] -->  3000:[6,9,12,16,20,24,26,30,34,38],<!-- [et_pb_line_break_holder] -->  4000:[8,13,16,22,25,30,35,40,45,50],<!-- [et_pb_line_break_holder] -->  5000:[12,15,20,25,31,38,44,50,56,63],<!-- [et_pb_line_break_holder] -->  10000:[15,25,38,50,63,75,88,100,113,125],<!-- [et_pb_line_break_holder] -->  15000:[20,38,56,75,94,113,131,150,169,188],<!-- [et_pb_line_break_holder] -->  20000:[25,50,75,100,125,150,175,200,225,250],<!-- [et_pb_line_break_holder] -->  25000:[38,69,99,130,160,191,221,252,282,313],<!-- [et_pb_line_break_holder] -->  30000:[46,82,119,156,192,229,266,302,339,376],<!-- [et_pb_line_break_holder] -->  35000:[53,96,139,181,224,267,310,352,395,438],<!-- [et_pb_line_break_holder] -->  40000:[61,109,158,207,256,305,354,403,452,501],<!-- [et_pb_line_break_holder] -->  45000:[68,123,178,233,288,343,398,453,508,563],<!-- [et_pb_line_break_holder] -->  50000:[76,137,198,259,320,381,442,503,564,626],<!-- [et_pb_line_break_holder] -->  55000:[83,150,217,285,352,419,486,554,621,688],<!-- [et_pb_line_break_holder] -->  60000:[91,164,237,311,384,457,531,604,677,751],<!-- [et_pb_line_break_holder] -->  65000:[98,177,257,336,416,495,575,654,734,813],<!-- [et_pb_line_break_holder] -->  70000:[106,191,277,362,448,533,619,704,790,876],<!-- [et_pb_line_break_holder] -->  75000:[113,205,296,388,480,571,663,755,846,938],<!-- [et_pb_line_break_holder] -->  80000:[121,218,316,414,512,609,707,805,903,1001],<!-- [et_pb_line_break_holder] -->  85000:[128,232,336,440,544,647,751,855,959,1063],<!-- [et_pb_line_break_holder] -->  90000:[136,246,356,466,576,686,796,906,1016,1126],<!-- [et_pb_line_break_holder] -->  95000:[143,259,375,491,607,724,840,956,1072,1188],<!-- [et_pb_line_break_holder] -->  100000:[151,273,395,517,639,762,884,1006,1128,1251]<!-- [et_pb_line_break_holder] -->};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function nearest(size){<!-- [et_pb_line_break_holder] -->  const keys = Object.keys(eventExtended).map(Number);<!-- [et_pb_line_break_holder] -->  for(let k of keys){<!-- [et_pb_line_break_holder] -->    if(size <= k) return k;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  return 100000;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.getElementById(\"modeSelect\").addEventListener(\"change\", function(){<!-- [et_pb_line_break_holder] -->  const m = this.value;<!-- [et_pb_line_break_holder] -->  document.getElementById(\"eventFields\").style.display = (m===\"event\") ? \"block\" : \"none\";<!-- [et_pb_line_break_holder] -->  document.getElementById(\"constructionFields\").style.display = (m===\"construction\") ? \"block\" : \"none\";<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function sinks(toilets){<!-- [et_pb_line_break_holder] -->  if(toilets <= 10) return 1;<!-- [et_pb_line_break_holder] -->  if(toilets <= 20) return 2;<!-- [et_pb_line_break_holder] -->  if(toilets <= 30) return 3;<!-- [et_pb_line_break_holder] -->  if(toilets <= 40) return 4;<!-- [et_pb_line_break_holder] -->  return 4 + Math.ceil((toilets - 40)\/10);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function calculateJJ(){<!-- [et_pb_line_break_holder] -->  const mode = document.getElementById(\"modeSelect\").value;<!-- [et_pb_line_break_holder] -->  const heat = document.getElementById(\"heat\").checked;<!-- [et_pb_line_break_holder] -->  const alcohol = document.getElementById(\"alcohol\").checked;<!-- [et_pb_line_break_holder] -->  const women = document.getElementById(\"women\").checked;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let toilets = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if(mode === \"event\"){<!-- [et_pb_line_break_holder] -->    const crowd = Number(document.getElementById(\"crowd\").value);<!-- [et_pb_line_break_holder] -->    const hours = Number(document.getElementById(\"hours\").value);<!-- [et_pb_line_break_holder] -->    if(!crowd || !hours){ alert(\"Enter crowd size and hours.\"); return; }<!-- [et_pb_line_break_holder] -->    const cat = nearest(crowd);<!-- [et_pb_line_break_holder] -->    toilets = eventExtended[cat][hours-1];<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if(mode === \"construction\"){<!-- [et_pb_line_break_holder] -->    const workers = Number(document.getElementById(\"workers\").value);<!-- [et_pb_line_break_holder] -->    if(!workers){ alert(\"Enter number of workers.\"); return; }<!-- [et_pb_line_break_holder] -->    toilets = Math.ceil(workers \/ 7);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let factors = 0;<!-- [et_pb_line_break_holder] -->  if(heat) factors++;<!-- [et_pb_line_break_holder] -->  if(alcohol) factors++;<!-- [et_pb_line_break_holder] -->  if(factors === 1) toilets = Math.ceil(toilets * 1.20);<!-- [et_pb_line_break_holder] -->  if(factors === 2) toilets = Math.ceil(toilets * 1.30);<!-- [et_pb_line_break_holder] -->  if(women) toilets = Math.ceil(toilets * 1.20);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const handicap = Math.max(1, Math.ceil(toilets * 0.20));<!-- [et_pb_line_break_holder] -->  const standard = toilets - handicap;<!-- [et_pb_line_break_holder] -->  const sink = sinks(toilets);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const r = document.getElementById(\"jj-result\");<!-- [et_pb_line_break_holder] -->  r.style.display = \"block\";<!-- [et_pb_line_break_holder] -->  r.innerHTML = `<!-- [et_pb_line_break_holder] -->    <pee><strong>Total Toilets:<\/strong> ${toilets}<\/pee><!-- [et_pb_line_break_holder] -->    <pee><strong>Standard Toilets:<\/strong> ${standard}<\/pee><!-- [et_pb_line_break_holder] -->    <pee><strong>Handicap Toilets:<\/strong> ${handicap}<\/pee><!-- [et_pb_line_break_holder] -->    <pee><strong>Sinks Needed:<\/strong> ${sink}<\/pee><!-- [et_pb_line_break_holder] -->  `;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_code][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><strong data-start=\"170\" data-end=\"185\">Disclaimer:<\/strong><span> The information provided by J&amp;J is for general informational purposes only. J&amp;J assumes no responsibility for any direct or indirect losses arising from reliance on this information.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Disclaimer: The information provided by J&amp;J is for general informational purposes only. J&amp;J assumes no responsibility for any direct or indirect losses arising from reliance on this information.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-803632","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/pages\/803632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/comments?post=803632"}],"version-history":[{"count":0,"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/pages\/803632\/revisions"}],"wp:attachment":[{"href":"https:\/\/jjportable.com\/wp-json\/wp\/v2\/media?parent=803632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}