{"id":16258435,"date":"2025-04-24T05:03:09","date_gmt":"2025-04-24T09:03:09","guid":{"rendered":"https:\/\/moovair.com\/?page_id=16258435"},"modified":"2026-02-25T11:34:16","modified_gmt":"2026-02-25T16:34:16","slug":"meridian-heat-pump","status":"publish","type":"page","link":"https:\/\/moovair.com\/en-ca\/meridian-heat-pump\/","title":{"rendered":"Meridian Heat Pump (Advanced)"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;d50c1bc5-13b0-4764-b297-558025908a7b&#8221; background_image=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/Moovair-Meridian-Desktop-Banner-1.png&#8221; background_position=&#8221;top_center&#8221; min_height=&#8221;545px&#8221; hover_enabled=&#8221;0&#8243; background_last_edited=&#8221;on|tablet&#8221; background_image_tablet=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/Moovair-Meridian-Desktop-Banner-1.png&#8221; background_image_phone=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/Moovair-Meridian-Mobile-Banner-1.png&#8221; background_position_tablet=&#8221;center_right&#8221; background_position_phone=&#8221;center&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_row column_structure=&#8221;3_5,2_5&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;rgba(41,48,60,0.85)&#8221; max_width=&#8221;1360px&#8221; custom_margin_tablet=&#8221;0px||||false|false&#8221; custom_margin_phone=&#8221;40px||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;20px||20px|5px|false|false&#8221; custom_css_main_element=&#8221;display: flex;||justify-content: center;||align-items: center;||&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;display: block;&#8221; custom_css_main_element_tablet=&#8221;display: flex;||justify-content: center;||align-items: center;||&#8221;][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; header_font=&#8221;Cera Pro Black|900||on|||||&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;70px&#8221; header_2_font=&#8221;|700||on|||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_font_size=&#8221;42px&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;28px&#8221; header_3_line_height=&#8221;1.1em&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_padding=&#8221;|||25px|false|false&#8221; custom_padding_tablet=&#8221;0px|25px|||false|false&#8221; custom_padding_phone=&#8221;|15px||15px|false|false&#8221; custom_padding_last_edited=&#8221;on|phone&#8221; animation_style=&#8221;fade&#8221; header_font_size_tablet=&#8221;48px&#8221; header_font_size_phone=&#8221;28px&#8221; header_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_phone=&#8221;24px&#8221; header_3_font_size_tablet=&#8221;24px&#8221; header_3_font_size_phone=&#8221;20px&#8221; header_3_font_size_last_edited=&#8221;on|desktop&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<p><!--<\/p>\n\n\n\n\n<h1 style=\"font-family: Cera Pro Black;\">Meridian <span style=\"font-family: Cera Pro;\">(Advanced)<\/span><\/h1>\n\n\n\n\n<h2>The perfect balance of comfort &amp; value<\/h2>\n\n\n\n\n<h3>Up to 27.4 SEER2 | 9.8 HSPF2 Region 5 | Heating to -30\u00b0C<\/h3>\n\n\n\n\n<p>--><br \/><span style=\"font-family: 'Cera Pro Black', Helvetica, Arial, Lucida, sans-serif; font-weight: 900; text-transform: uppercase; line-height: 1; font-size: 3rem; color: #ffffff !important;\">Meridian <span style=\"font-family: Cera Pro;\">(Advanced)<\/span> <\/span><\/p>\n<p style=\"padding-bottom: 20px; line-height: 1; font-family: 'Cera Pro', Helvetica, Arial, Lucida, sans-serif; font-weight: bold; text-transform: uppercase; font-size: 2rem; color: #ffffff !important;\">The perfect balance of comfort &amp; value<\/p>\n<p style=\"font-size: 1.2rem; color: #ffffff !important; line-height: 1.1em;\">Up to 27.4 SEER2 | 9.8 HSPF2 Region 5 | Heating to -30\u00b0C<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/Moovair_Meridian_Unit.png&#8221; alt=&#8221;Moovair &#8211; Meridian Heat Pump&#8221; title_text=&#8221;Moovair_Meridian_Unit&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; width=&#8221;500px&#8221; max_width=&#8221;100%&#8221; max_width_tablet=&#8221;50%&#8221; max_width_phone=&#8221;50%&#8221; max_width_last_edited=&#8221;on|desktop&#8221; module_alignment=&#8221;center&#8221; custom_padding=&#8221;|10px|||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;cbebb943-82e8-4ec0-947d-cf77e34c50de&#8221; custom_margin=&#8221;0px|0px|0px|0px|false|false&#8221; custom_padding=&#8221;10px|0px|10px|0px|false|false&#8221; background_last_edited=&#8221;on|desktop&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; header_font=&#8221;||||on|||#e35425|&#8221; header_font_size=&#8221;44px&#8221; header_2_font=&#8221;|700||||||#e35425|solid&#8221; header_font_size_tablet=&#8221;28px&#8221; header_font_size_phone=&#8221;30px&#8221; header_font_size_last_edited=&#8221;on|desktop&#8221; global_colors_info=&#8221;%91%93&#8243;]<!-- \n\n<h2 style=\"text-transform: uppercase; display: inline-block; border-bottom: 4px solid #e35425; padding-bottom: 4px;\">The perfect balance of power and efficiency for stable heating in extreme cold.<\/h2>\n\n --><\/p>\n<h1 style=\"text-decoration:none; text-transform: uppercase; display: inline-block; padding-bottom: 4px;\">Year-Round, Powerful Performance\u2014Created by MERIDIAN<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<style class=\"wpcode-css-snippet\">:not(:defined)>* {\r\n    display: none;\r\n}\r\n\r\n.test-div {\r\n  width: 80%;\r\n  height: 80%;\r\n}\r\n\r\n\r\n\/* Responsive model-viewer *\/\r\nmodel-viewer {\r\n    width: 100%;\r\n    max-width: 640px;\r\n    height: auto;\r\n    aspect-ratio: 4 \/ 3; \/* Keeps proper proportions on all screens *\/\r\n    margin: 0 auto;\r\n    border-radius: 10px;\r\n    background-color: #fff;\r\n    box-sizing: border-box;\r\n    position: relative;\r\n}\r\n\r\n\/* Tablet *\/\r\n@media (min-width: 768px) and (max-width: 1024px) {\r\n    model-viewer {\r\n        width: 90%;\r\n        max-width: 720px;\r\n        aspect-ratio: 4 \/ 3;\r\n    }\r\n}\r\n\r\n\/* Desktop *\/\r\n@media (min-width: 1025px) {\r\n    model-viewer {\r\n        width: 680px;\r\n        height: 540px; \/* Desktop fixed size *\/\r\n        aspect-ratio: unset;\r\n    }\r\n}\r\n\r\n#ar-button {\r\n    background-image: url(https:\/\/cdn2.moovair.com\/ar\/_assets\/ic_view_in_ar_new_googblue_48dp.png);\r\n    background-repeat: no-repeat;\r\n    background-size: 20px 20px;\r\n    background-position: 12px 50%;\r\n    background-color: #fff;\r\n    position: absolute;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    white-space: nowrap;\r\n    bottom: 20px;\r\n    padding: 0px 16px 0px 40px;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif;\r\n    font-size: 14px;\r\n    font-weight: 500;\r\n    color: #4285f4;\r\n    height: 36px;\r\n    line-height: 36px;\r\n    border-radius: 18px;\r\n    border: 1px solid #DADCE0;\r\n}\r\n\r\n#ar-button:active {\r\n    background-color: #E8EAED;\r\n}\r\n\r\n#ar-button:focus {\r\n    outline: none;\r\n}\r\n\r\n#ar-button:focus-visible {\r\n    outline: 1px solid #4285f4;\r\n}\r\n\r\n#logo-overlay {\r\n    position: absolute;\r\n    \/* KEY CHANGE: Reduced bottom padding from 20px to 10px *\/\r\n    bottom: -42px;\r\n    right: 10px;\r\n    width: 80px;\r\n    height: 80px;\r\n    object-fit: contain;\r\n    border-radius: 8px;\r\n    pointer-events: none;\r\n}\r\n\r\n.sel {\r\n  margin-top: -15px;\r\n  margin-left: 30px;\r\n  float: left;\r\n  width: 30vw;\r\n  \/* position: absolute; *\/\r\n  \/* display: inline-block; *\/\r\n  \/* left: 175px; *\/\r\n  \/* font-family: Arial, Helvetica, sans-serif; *\/\r\n  \/* background-color: rgb(147, 200, 147); *\/\r\n}\r\n\r\n.label {    \/* capacity *\/\r\n  \/* background-color: red; *\/\r\n  \/* display: inline-block; *\/\r\n  \/* height: 20px; *\/\r\n  \/* width: 78px; *\/\r\n  \/* width: 50vw; *\/\r\n  width: 100%;\r\n  text-align: left;\r\n  vertical-align: middle;\r\n  margin-bottom: 8px;\r\n  font-size: 1.8vh;\r\n  float: left;\r\n  clear: both;\r\n  \/* height: 50%; *\/\r\n\r\n  }\r\n\r\n.dropdown {\r\n  float: left;\r\n  background-color: white;\r\n  clear: both;\r\n  height: 2.5vh;\r\n  \/* width: 50vw; *\/\r\n  \/* width: 100%; *\/\r\n  \/* font-size: 1rem; *\/\r\n  font-size: 1.6vh;\r\n}\r\n\r\n.dropdown option {\r\n   \/* font-size: 1rem; *\/\r\n   font-size: 11pt;\r\n   \/* font-size: 1.6vh; *\/\r\n}\r\n\r\n.btns {\r\n  \/* position: relative; *\/\r\n  position: absolute;\r\n  \/* width: 90%; *\/\r\n  \/* width: 100px; *\/\r\n  \/* height: 50px; *\/\r\n  height: 5vh;\r\n  width: 100vw;\r\n  bottom: 0;\r\n  margin-bottom: 0;\r\n  \/* background-color: rgb(115, 0, 255); *\/\r\n  overflow: visible;\r\n margin-bottom:30px;\r\n}\r\n\r\n\/* measure button *\/\r\n.b1, .b2, .b3 {   \r\n  \/* position: absolute; *\/\r\n  \/* display: inline-block; *\/\r\n  \/* left: 110px; *\/\r\n  margin-left: 30px;\r\n  float: left;\r\n  white-space: nowrap;\r\n  height: 100%;\r\n}\r\n\r\n  .dot {\r\n    display: none;\r\n  }\r\n  \r\n  .glass {\r\n    background: rgba(255, 255, 255, 0.37);\r\n    backdrop-filter: blur(8px) contrast(0.89) saturate(1.27);\r\n    -webkit-backdrop-filter: blur(8px) contrast(0.89) saturate(1.27);\r\n    border: 1px solid rgba(255, 255, 255, 0.4);\r\n    padding: 0.5rem;\r\n    border-radius: 0.5rem;\r\n  }\r\n  \r\n  .dim {\r\n    border-radius: 4px;\r\n    border: none;\r\n    box-sizing: border-box;\r\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);\r\n    color: rgba(0, 0, 0, 0.8);\r\n    display: block;\r\n    font-family: Futura, Helvetica Neue, sans-serif;\r\n    \/* font-size: 1em; *\/\r\n    font-size: 1.6vh;\r\n    font-weight: 700;\r\n    max-width: 128px;\r\n    overflow-wrap: break-word;\r\n    padding: 8px;\r\n    position: absolute;\r\n    width: max-content;\r\n    height: max-content;\r\n    transform: translate3d(-50%, -50%, 0);\r\n    pointer-events: none;\r\n    --min-hotspot-opacity: 0;\r\n  }\r\n  \r\n  \/* @media only screen and (max-width: 800px) {\r\n    .dim {\r\n      font-size: 3vw;\r\n    }\r\n  } *\/\r\n  \r\n  .dimensionLineContainer {\r\n    pointer-events: none;\r\n    display: block;\r\n  }\r\n  \r\n  .dimensionLine {\r\n    stroke: #16a5e6;\r\n    stroke-width: 2;\r\n    stroke-dasharray: 2;\r\n  }\r\n  \r\n  .hide {\r\n    display: none;\r\n  }\r\n\r\n  :not(:defined)>* {\r\n    display: none;\r\n  }\r\n  \r\n  #ar-button {\r\n    background-image: url(https:\/\/cdn2.moovair.com\/ar\/_assets\/ic_view_in_ar_new_googblue_48dp.png);\r\n    background-repeat: no-repeat;\r\n    background-size: 20px 20px;\r\n    background-position: 12px 50%;\r\n    background-color: #fff;\r\n    position: absolute;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    white-space: nowrap;\r\n    bottom: 132px;\r\n    padding: 0px 16px 0px 40px;\r\n    font-family: Roboto Regular, Helvetica Neue, sans-serif;\r\n    font-size: 14px;\r\n    color:#4285f4;\r\n    height: 36px;\r\n    line-height: 36px;\r\n    border-radius: 18px;\r\n    border: 1px solid #DADCE0;\r\n  }\r\n\r\n  #ar-button:active {\r\n    background-color: #E8EAED;\r\n  }\r\n\r\n  #ar-button:focus {\r\n    outline: none;\r\n  }\r\n\r\n  #ar-button:focus-visible {\r\n    outline: 1px solid #4285f4;\r\n  }\r\n\r\n  @keyframes circle {\r\n    from { transform: translateX(-50%) rotate(0deg) translateX(50px) rotate(0deg); }\r\n    to   { transform: translateX(-50%) rotate(360deg) translateX(50px) rotate(-360deg); }\r\n  }\r\n\r\n  @keyframes elongate {\r\n    from { transform: translateX(100px); }\r\n    to   { transform: translateX(-100px); }\r\n  }\r\n\r\n  model-viewer > #ar-prompt {\r\n    position: absolute;\r\n    left: 50%;\r\n    bottom: 175px;\r\n    animation: elongate 2s infinite ease-in-out alternate;\r\n    display: none;\r\n  }\r\n\r\n  model-viewer[ar-status=\"session-started\"] > #ar-prompt {\r\n    display: block;\r\n  }\r\n\r\n  model-viewer > #ar-prompt > img {\r\n    animation: circle 4s linear infinite;\r\n  }\r\n\r\n  model-viewer > #ar-failure {\r\n    position: absolute;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    bottom: 175px;\r\n    display: none;\r\n  }\r\n\r\n  model-viewer[ar-tracking=\"not-tracking\"] > #ar-failure {\r\n    display: block;\r\n  }<\/style>[\/et_pb_code][et_pb_code _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!--<link rel=\"stylesheet\" href=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/moovair.css\"> --><!-- [et_pb_line_break_holder] --><!--<script type=\"module\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/moovair.js\"><\/script> --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->let base_URL = \"https:\/\/cdn2.moovair.com\/ar\/ar\/\";<!-- [et_pb_line_break_holder] --> \/\/ let base_URL = \"ar\/ar\/\";   \/\/ for local tests<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let type_model = \"outdoor\";<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  let use_two_outdoor_buttons = false;   \/\/ example: Myriad<!-- [et_pb_line_break_holder] -->  \/\/ let use_two_indoor_buttons = false;   \/\/ example: Mix moov <!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let capacities = [];<!-- [et_pb_line_break_holder] -->  let widths = [];<!-- [et_pb_line_break_holder] -->  let deeps = [];<!-- [et_pb_line_break_holder] -->  let heights = [];<!-- [et_pb_line_break_holder] -->  let offsets = [];<!-- [et_pb_line_break_holder] -->  let explodes = [];<!-- [et_pb_line_break_holder] -->  let enable_b = [];<!-- [et_pb_line_break_holder] -->  let glbs = [];<!-- [et_pb_line_break_holder] -->  let usdz = [];<!-- [et_pb_line_break_holder] -->  let consolle = [];<!-- [et_pb_line_break_holder] -->  let cassette = [];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ TO DISABLE A DROPBOX ELEMENT ONLY SET NAME EMPTY<!-- [et_pb_line_break_holder] -->  \/\/ SET ADITIONAL ANIM TO TRUE WHEN IN A DOUBLE FAN MODEL ONLY A FAN ROTATE<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ OUTDOORS 1<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR A<!-- [et_pb_line_break_holder] -->  let outdoor_a = \"meridian_x3\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_a] = \"9k\/12K BTU\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_a] = base_URL + outdoor_a + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_a] = base_URL + outdoor_a + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_a ] = \"31.7 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_a] = \"13in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_a] = \"21.8 in\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_a] = 0.5;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_a] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_a] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_a] = false;<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR B<!-- [et_pb_line_break_holder] -->  let outdoor_b = \"meridian_x4\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_b] = \"15k\/18K\/24k BTU\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_b] = base_URL + outdoor_b + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_b] = base_URL + outdoor_b + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_b ] = \"35 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_b] = \"13.5 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_b] = \"26.5 in\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_b] = 1.0;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_b] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_b] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_b] = false;<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR C<!-- [et_pb_line_break_holder] -->  let outdoor_c = \"meridian_d\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_c] = \"33K BTU\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_c] = base_URL + outdoor_c + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_c] = base_URL + outdoor_c + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_c ] = \"37.2 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_c] = \"16.1 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_c] = \"31.9 in\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_c] = 1.0;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_c] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_c] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_c] = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR D<!-- [et_pb_line_break_holder] -->  let outdoor_d = \"\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_d] = \"\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_d] = base_URL + outdoor_d + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_d] = base_URL + outdoor_d + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_d ] = \"\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_d] = \"\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_d] = \"\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_d] = 0.2;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_d] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_d] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_d] = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ -----------------------------------------------------------<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ OUTDOORS 2  \/\/ only Myriad<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR 2 A<!-- [et_pb_line_break_holder] -->  let outdoor_2_a = \"\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_2_a] = \"\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_2_a] = base_URL + outdoor_2_a + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_2_a] = base_URL + outdoor_2_a + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_2_a ] = \"35.04 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_2_a] = \"13.46 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_2_a] = \"12.5 in\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_2_a] = 0.5;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_2_a] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_2_a] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_2_a] = false;<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR 2 B<!-- [et_pb_line_break_holder] -->  let outdoor_2_b = \"\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_2_b] = \"\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_2_b] = base_URL + outdoor_2_b + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_2_b] = base_URL + outdoor_2_b + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_2_b ] = \"035.04 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_2_b] = \"013.46 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_2_b] = \"012.5 in\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_2_b] = 1.0;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_2_b] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_2_b] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_2_b] = false;<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR 2 C<!-- [et_pb_line_break_holder] -->  let outdoor_2_c = \"\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_2_c] = \"\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_2_c] = base_URL + outdoor_2_c + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_2_c] = base_URL + outdoor_2_c + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_2_c ] = \"40 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_2_c] = \"40 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_2_c] = \"40 in\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_2_c] = 1.0;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_2_c] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_2_c] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_2_c] = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ OUTDOOR 2 D<!-- [et_pb_line_break_holder] -->  let outdoor_2_d = \"\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_2_d] = \"\";<!-- [et_pb_line_break_holder] -->  glbs[outdoor_2_d] = base_URL + outdoor_2_d + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[outdoor_2_d] = base_URL + outdoor_2_d + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[outdoor_2_d ] = \"\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_2_d] = \"\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_2_d] = \"\";<!-- [et_pb_line_break_holder] -->  offsets[outdoor_2_d] = 0.2;<!-- [et_pb_line_break_holder] -->  explodes[outdoor_2_d] = false;<!-- [et_pb_line_break_holder] -->  cassette[outdoor_2_d] = false;<!-- [et_pb_line_break_holder] -->  consolle[outdoor_2_d] = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ -----------------------------------------------------------<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/\/ INDOOR A<!-- [et_pb_line_break_holder] -->  let indoor_a = \"m-series-wall-mounted-with-sensor\";<!-- [et_pb_line_break_holder] -->  glbs[indoor_a] = base_URL + indoor_a + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[indoor_a] = base_URL + indoor_a + \".usdz\";<!-- [et_pb_line_break_holder] --> \/\/ widths[indoor_a] = \"40 in\";<!-- [et_pb_line_break_holder] -->  \/\/deeps[indoor_a] = \"9.8 in\";<!-- [et_pb_line_break_holder] -->  \/\/heights[indoor_a] = \"12.6 in\";<!-- [et_pb_line_break_holder] --> widths[indoor_a] = \"\";<!-- [et_pb_line_break_holder] -->  deeps[indoor_a] = \"\";<!-- [et_pb_line_break_holder] -->  heights[indoor_a] = \"\";<!-- [et_pb_line_break_holder] -->  offsets[indoor_a]  = 10;<!-- [et_pb_line_break_holder] -->  explodes[indoor_a] = true;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ INDOOR B<!-- [et_pb_line_break_holder] -->  let indoor_b = \"\";<!-- [et_pb_line_break_holder] -->  glbs[indoor_b] = base_URL + indoor_b + \".glb\";<!-- [et_pb_line_break_holder] -->  usdz[indoor_b] = base_URL + indoor_b + \".usdz\";<!-- [et_pb_line_break_holder] -->  widths[indoor_b] = \"40 in\";<!-- [et_pb_line_break_holder] -->  deeps[indoor_b] = \"9.7 in\";<!-- [et_pb_line_break_holder] -->  heights[indoor_b] = \"26.5 in\";<!-- [et_pb_line_break_holder] -->  offsets[indoor_b]  = 10;<!-- [et_pb_line_break_holder] -->  explodes[indoor_b] = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><model-viewer id=\"viewer\" alt=\"Moovair Meridian\" src=\"\" autoplay ar environment-image=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/neutral.hdr\" poster=\"\" shadow-intensity=\"1\" camera-controls touch-action=\"pan-y\" ios-src=\"\" xr-environment><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dot+X-Y+Z\" class=\"dot\" data-position=\"1 -1 1\" data-normal=\"1 0 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dot+X-Y-Z\" class=\"dot\" data-position=\"1 -1 -1\" data-normal=\"1 0 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dot+X+Y-Z\" class=\"dot\" data-position=\"1 1 -1\" data-normal=\"0 1 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dot-X+Y-Z\" class=\"dot\" data-position=\"-1 1 -1\" data-normal=\"0 1 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dot-X-Y-Z\" class=\"dot\" data-position=\"-1 -1 -1\" data-normal=\"-1 0 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dot-X-Y+Z\" class=\"dot\" data-position=\"-1 -1 1\" data-normal=\"-1 0 0\"><\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dim+X-Y\" class=\"dim\" data-position=\"1 -1 0\" data-normal=\"1 0 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dim+X-Z\" class=\"dim\" data-position=\"1 0 -1\" data-normal=\"1 0 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dim+Y-Z\" class=\"dim\" data-position=\"0 -1 -1\" data-normal=\"0 1 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dim-X-Z\" class=\"dim\" data-position=\"-1 0 -1\" data-normal=\"-1 0 0\"><\/button><!-- [et_pb_line_break_holder] -->    <button slot=\"hotspot-dim-X-Y\" class=\"dim\" data-position=\"-1 -1 0\" data-normal=\"-1 0 0\"><\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <svg id=\"dimLines\" width=\"100%\" height=\"100%\" xmlns=\"https:\/\/www.w3.org\/2000\/svg\" class=\"dimensionLineContainer\"><!-- [et_pb_line_break_holder] -->      <line class=\"dimensionLine\"><\/line><!-- [et_pb_line_break_holder] -->      <line class=\"dimensionLine\"><\/line><!-- [et_pb_line_break_holder] -->      <line class=\"dimensionLine\"><\/line><!-- [et_pb_line_break_holder] -->      <line class=\"dimensionLine\"><\/line><!-- [et_pb_line_break_holder] -->      <line class=\"dimensionLine\"><\/line><!-- [et_pb_line_break_holder] -->    <\/svg><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"thebtns\"  class=\"btns\"><!-- [et_pb_line_break_holder] -->      <input id=\"button_outdoor_A\" class=\"b3 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/outdoor.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_myriad\" class=\"b3 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/myriad.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_myriad_plus\" class=\"b3 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/myriad_plus.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_indoor_A\" class=\"b3\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/indoor.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_console\" class=\"b3 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/console.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_cassette\" class=\"b3 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/cassette.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_measure\" class=\"b1\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/measure.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_explode\" class=\"b2 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/explode.png\"\/><!-- [et_pb_line_break_holder] -->      <input id=\"button_implode\" class=\"b2 hide\" type=\"image\" src=\"https:\/\/cdn2.moovair.com\/ar\/_assets\/icons\/implode.png\"\/><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"sel_div\" class=\"sel hide\"><!-- [et_pb_line_break_holder] -->      <label class=\"label\">Capacity<\/label><!-- [et_pb_line_break_holder] -->      <select id=\"capacity_select\" class=\"dropdown\"><\/select><!-- [et_pb_line_break_holder] -->      <select id=\"capacity_select2\" class=\"dropdown hide\"><\/select><!-- [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] -->  <\/model-viewer>[\/et_pb_code][et_pb_code _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<script>let model_name = \"EMPTY\";\r\nlet model_url = \"EMPTY\";\r\nlet model_usdz = \"EMPTY\";\r\nlet model_glb = \"EMPTY\";\r\nlet width = \"-\";\r\nlet deep = \"-\";\r\nlet height = \"-\";\r\nlet offset = 0;\r\nlet enable_explode = false;\r\nlet center;\r\nlet size;\r\nlet offset_x;\r\nlet offset_y;\r\nlet offset_z;\r\nlet x2;\r\nlet y2;\r\nlet z2;\r\nlet actual_model = outdoor_a;\r\nlet value = outdoor_a;\r\n\r\nlet previus_model = actual_model;\r\nconsole.log(\"model glb: \" + glbs[actual_model]);\r\n\r\nlet show_dimensions = false;\r\nlet model_status = \"implode\";\r\n\r\nconst modelViewer = document.getElementById(\"viewer\");\r\ndocument.getElementById(\"viewer\").setAttribute(\"src\", glbs[actual_model]);\r\n\r\nconst sel_div = document.getElementById(\"sel_div\");\r\nconst select = document.getElementById(\"capacity_select\");\r\nconst select2 = document.getElementById(\"capacity_select2\"); \/\/ Myriad\r\nlet select_changes = 0;\r\n\r\n\/\/-----------------------------------------------------------------------------------------------------\r\n\r\nwindow.onload = function () {\r\n  console.log(\"The website is fully loaded!\");\r\n\r\n  const button_explode = document.getElementById(\"button_explode\");\r\n  const button_implode = document.getElementById(\"button_implode\");\r\n\r\n  const button_measure = document.getElementById(\"button_measure\");\r\n\r\n  const button_indoor_A = document.getElementById(\"button_indoor_A\");\r\n  const button_outdoor_A = document.getElementById(\"button_outdoor_A\");\r\n\r\n  const button_myriad = document.getElementById(\"button_myriad\");\r\n  const button_myriad_plus = document.getElementById(\"button_myriad_plus\");\r\n\r\n  const button_console = document.getElementById(\"button_console\");\r\n  const button_cassette = document.getElementById(\"button_cassette\");\r\n\r\n  sel_div.classList.remove(\"hide\");\r\n\r\n  \/\/ Myriad\r\n  if (use_two_outdoor_buttons) {\r\n    button_outdoor_A.classList.add(\"hide\");\r\n    button_indoor_A.classList.add(\"hide\");\r\n    button_myriad_plus.classList.remove(\"hide\");\r\n  } else {\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    \/\/ button_indoor_A.classList.remove(\"hide\");\r\n    \/\/ button_myriad_plus.classList.remove(\"hide\");\r\n  }\r\n\r\n  const dimLines = modelViewer.querySelectorAll(\"line\");\r\n\r\n  const renderSVG = () => {\r\n    drawLine(\r\n      dimLines[0],\r\n      modelViewer.queryHotspot(\"hotspot-dot+X-Y+Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot+X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim+X-Y\")\r\n    );\r\n    drawLine(\r\n      dimLines[1],\r\n      modelViewer.queryHotspot(\"hotspot-dot+X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot+X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim+X-Z\")\r\n    );\r\n\r\n    drawLine(\r\n      dimLines[2],\r\n      modelViewer.queryHotspot(\"hotspot-dot+X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot-X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim+Y-Z\")\r\n    ); \/\/ FIX LINE WIDTH\r\n\r\n    drawLine(\r\n      dimLines[3],\r\n      modelViewer.queryHotspot(\"hotspot-dot-X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot-X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim-X-Z\")\r\n    );\r\n    drawLine(\r\n      dimLines[4],\r\n      modelViewer.queryHotspot(\"hotspot-dot-X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot-X-Y+Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim-X-Y\")\r\n    );\r\n  };\r\n\r\n  modelViewer.addEventListener(\"camera-change\", renderSVG);\r\n\r\n  function set_option(option, dropdown) {\r\n    if (option !== \"\") {\r\n      var opt = document.createElement(\"option\");\r\n      opt.value = option;\r\n      opt.innerHTML = capacities[option];\r\n      dropdown.appendChild(opt);\r\n    }\r\n  }\r\n\r\n  set_option(outdoor_a, select);\r\n  set_option(outdoor_b, select);\r\n  set_option(outdoor_c, select);\r\n  set_option(outdoor_d, select);\r\n\r\n  set_option(outdoor_2_a, select2);\r\n  set_option(outdoor_2_b, select2);\r\n  set_option(outdoor_2_c, select2);\r\n  set_option(outdoor_2_d, select2);\r\n\r\n  \/\/-----------------------------------------------------------------------------------------------\r\n\r\n  function changeSelect() {\r\n    select_changes += 1;\r\n\r\n    value = select.value;\r\n    console.log(\"Change Select: \" + value);\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n    show_dimensions = false;\r\n    setVisibility(show_dimensions);\r\n    width = widths[actual_model];\r\n    deep = deeps[actual_model];\r\n    height = heights[actual_model];\r\n    console.log(\r\n      \"width: \" + width + \" \/ deep: \" + deep + \" \/ height: \" + height\r\n    );\r\n\r\n    model_url = glbs[actual_model];\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  }\r\n\r\n  function changeSelect2() {\r\n    select_changes += 1;\r\n\r\n    value = select2.value;\r\n    console.log(\"Change Select2: \" + value);\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n    show_dimensions = false;\r\n    setVisibility(show_dimensions);\r\n    width = widths[actual_model];\r\n    deep = deeps[actual_model];\r\n    height = heights[actual_model];\r\n    console.log(\r\n      \"width: \" + width + \" \/ deep: \" + deep + \" \/ height: \" + height\r\n    );\r\n\r\n    model_url = glbs[actual_model];\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  }\r\n\r\n  select.addEventListener(\"change\", changeSelect);\r\n  select2.addEventListener(\"change\", changeSelect2);\r\n\r\n  \/\/--------------------------------------------------------------------------------------------------\r\n\/\/ New function to encapsulate dimension calculation\r\n\r\n  \r\n\tmodelViewer.addEventListener(\"load\", () => {\r\n    console.log(\r\n      \"VIEWER LOADED actual_model: \" + actual_model + \" type: \" + type_model\r\n    );\r\n\t\t\/\/ Call the new dimension calculation function\r\n  \r\n\r\n    show_dimensions = false;\r\ncenter = modelViewer.getBoundingBoxCenter();\r\n\t\t\r\n    setVisibility(show_dimensions);\r\n\r\n    model_status = \"implode\";\r\n\r\n    button_outdoor_A.classList.add(\"hide\");\r\n    button_indoor_A.classList.add(\"hide\");\r\n    button_explode.classList.add(\"hide\");\r\n    button_implode.classList.add(\"hide\");\r\n\r\n    \/\/center = modelViewer.getBoundingBoxCenter();\r\n\r\n    model_url = glbs[actual_model];\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n\r\n    if (enable_explode) {\r\n      console.log(\"enable explode\");\r\n      stopx();\r\n      button_explode.classList.remove(\"hide\");\r\n    } else {\r\n      console.log(\"running play\");\r\n      playx();\r\n    }\r\n\r\n    if (type_model == \"outdoor\") {\r\n      console.log(\"TYPE OUT DOOR\");\r\n      button_outdoor_A.classList.add(\"hide\");\r\n      button_indoor_A.classList.add(\"hide\");\r\n      button_cassette.classList.add(\"hide\");\r\n      button_console.classList.add(\"hide\");\r\n\r\n      sel_div.classList.remove(\"hide\");\r\n\r\n      if (consolle[actual_model]) {\r\n        console.log(\"CONSOLE TRUE\");\r\n        button_console.classList.remove(\"hide\");\r\n        sel_div.classList.remove(\"hide\");\r\n      }\r\n      if (cassette[actual_model]) {\r\n        console.log(\"CASSETTE TRUE\");\r\n        button_cassette.classList.remove(\"hide\");\r\n        sel_div.classList.remove(\"hide\");\r\n      }\r\n      if (!cassette[actual_model] && !consolle[actual_model]) {\r\n        console.log(\"NORMAL\");\r\n        button_indoor_A.classList.remove(\"hide\");\r\n      }\r\n    } else {\r\n      button_cassette.classList.add(\"hide\");\r\n      button_console.classList.add(\"hide\");\r\n      button_indoor_A.classList.add(\"hide\");\r\n      button_outdoor_A.classList.remove(\"hide\");\r\n      sel_div.classList.add(\"hide\");\r\n    }\r\n\r\n    \/\/ Myriad\r\n    if (use_two_outdoor_buttons) {\r\n      button_indoor_A.classList.add(\"hide\");\r\n\r\n      \/\/ button_outdoor_A.classList.add(\"hide\");\r\n      \/\/ button_myriad.classList.remove(\"hide\");\r\n      \/\/ button_myriad_plus.classList.remove(\"hide\");\r\n      \/\/ sel_div.classList.remove(\"hide\");\r\n    } else {\r\n    }\r\n\r\n    \/\/ Mix Moov Heat+\r\n    \/\/ if (use_two_indoor_buttons) {\r\n    \/\/   \/\/ button_indoor_A.classList.remove(\"hide\");\r\n    \/\/   \/\/ button_indoor_B.classList.remove(\"hide\");\r\n    \/\/ } else {\r\n    \/\/ }\r\n\r\n    width = widths[actual_model];\r\n    deep = deeps[actual_model];\r\n    height = heights[actual_model];\r\n    offset = offsets[actual_model];\r\n\r\n    size = modelViewer.getDimensions();\r\n    offset_x = (size.x * offset) \/ 100;\r\n    offset_y = (size.y * offset) \/ 100;\r\n    offset_z = (size.z * offset) \/ 100;\r\n    x2 = (size.x + offset_x) \/ 2;\r\n    y2 = (size.y + offset_y) \/ 2;\r\n    z2 = (size.z + offset_z) \/ 2;\r\n  });\r\n  \/\/  END MODEL LO-AD EVENT\r\n\r\n  button_explode.addEventListener(\"click\", explode);\r\n  button_implode.addEventListener(\"click\", implode);\r\n\r\n  const dimElements = [\r\n    ...modelViewer.querySelectorAll(\"button\"),\r\n    modelViewer.querySelector(\"#dimLines\"),\r\n  ];\r\n\r\n  function setVisibility(visible) {\r\n    console.log(\"set-Visibility: \" + visible);\r\n\t\r\n    dimElements.forEach((element) => {\r\n      if (visible) {\r\n       modelViewer.updateHotspot({\r\n        name: \"hotspot-dot+X-Y+Z\",\r\n         position: `${center.x + x2} ${center.y - y2} ${center.z + z2}`,\r\n       });\r\n           \r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim+X-Y\",\r\n          position: `${center.x + x2 * 1} ${center.y - y2 * 1} ${center.z}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim+X-Y\"]'\r\n        ).textContent = deep;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot+X-Y-Z\",\r\n          position: `${center.x + x2} ${center.y - y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim+X-Z\",\r\n          position: `${center.x + x2 * 1} ${center.y} ${center.z - z2 * 1}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim+X-Z\"]'\r\n        ).textContent = height;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot+X+Y-Z\",\r\n          position: `${center.x + x2} ${center.y + y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim+Y-Z\",\r\n          position: `${center.x} ${center.y + y2 * 1} ${center.z - z2 * 1}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim+Y-Z\"]'\r\n        ).textContent = width;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot-X+Y-Z\",\r\n          position: `${center.x - x2} ${center.y + y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim-X-Z\",\r\n          position: `${center.x - x2 * 1} ${center.y} ${center.z - z2 * 1}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim-X-Z\"]'\r\n        ).textContent = height;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot-X-Y-Z\",\r\n          position: `${center.x - x2} ${center.y - y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim-X-Y\",\r\n          position: `${center.x - x2 * 1} ${center.y - y2 * 1} ${center.z}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim-X-Y\"]'\r\n        ).textContent = deep;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot-X-Y+Z\",\r\n          position: `${center.x - x2} ${center.y - y2} ${center.z + z2}`,\r\n        });\r\n\r\n        renderSVG();\r\n\r\n        element.classList.remove(\"hide\");\r\n      } else {\r\n        element.classList.add(\"hide\");\r\n      }\r\n    });\r\n  }\r\n\r\n  button_measure.addEventListener(\"click\", () => {\r\n    console.log(\r\n      \"button measure pressed \/ model_status: \" +\r\n        model_status +\r\n        \" \/ width: \" +\r\n        width +\r\n        \" \/ deep: \" +\r\n        deep +\r\n        \" \/ height: \" +\r\n        height\r\n    );\r\n  \r\n    if (model_status == \"implode\") {\r\n      show_dimensions = !show_dimensions;\r\n      setVisibility(show_dimensions);\r\n    }\r\n\r\n  });\r\n\r\n  button_outdoor_A.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button A pressed\");\r\n    \/\/ button_outdoor_A.classList.add(\"hide\");\r\n    \/\/ button_indoor_A.classList.remove(\"hide\");\r\n    type_model = \"outdoor\";\r\n    actual_model = previus_model;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_indoor_A.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button B pressed\");\r\n    \/\/ button_indoor_A.classList.add(\"hide\");\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    type_model = \"indoor\";\r\n    previus_model = actual_model;\r\n    actual_model = indoor_a;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    console.log(\"model glb: \" + model_glb);\r\n    model_usdz = usdz[actual_model];\r\n    console.log(\"model usdz: \" + model_usdz);\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_cassette.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button cassette pressed\");\r\n    \/\/ button_indoor_A.classList.add(\"hide\");\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    type_model = \"indoor\";\r\n    previus_model = actual_model;\r\n    actual_model = indoor_a;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    console.log(\"model glb: \" + model_glb);\r\n    model_usdz = usdz[actual_model];\r\n    console.log(\"model usdz: \" + model_usdz);\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_console.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button cassette pressed\");\r\n    \/\/ button_indoor_A.classList.add(\"hide\");\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    type_model = \"indoor\";\r\n    previus_model = actual_model;\r\n    actual_model = indoor_b;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    console.log(\"model glb: \" + model_glb);\r\n    model_usdz = usdz[actual_model];\r\n    console.log(\"model usdz: \" + model_usdz);\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_myriad.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button Myriad pressed\");\r\n    type_model = \"outdoor\";\r\n\r\n    button_myriad.classList.add(\"hide\");\r\n    button_myriad_plus.classList.remove(\"hide\");\r\n    select2.classList.add(\"hide\");\r\n    select.classList.remove(\"hide\");\r\n\r\n    \/\/ actual_model = outdoor_a;\r\n    \/\/ actual_model = outdoor_2_a;\r\n    value = select.value;\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_myriad_plus.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button Myriad plus pressed\");\r\n    type_model = \"outdoor\";\r\n\r\n    button_myriad_plus.classList.add(\"hide\");\r\n    button_myriad.classList.remove(\"hide\");\r\n    select.classList.add(\"hide\");\r\n    select2.classList.remove(\"hide\");\r\n\r\n    \/\/ actual_model = outdoor_2_a;\r\n    value = select2.value;\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  async function playx() {\r\n    console.log(\"play animation\");\r\n    modelViewer.timeScale = 1;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.pause();\r\n    modelViewer.play({ repetitions: 9999 });\r\n    modelViewer.appendAnimation(\"rotate\", {\r\n      weight: parseFloat(100),\r\n      repetitions: 9999,\r\n    });\r\n    modelViewer.appendAnimation(\"rotate2\", {\r\n      weight: parseFloat(100),\r\n      repetitions: 9999,\r\n    });\r\n  }\r\n\r\n  async function stopx() {\r\n    console.log(\"stop animation\");\r\n\tmodelViewer.animationName=\"explode\";\r\n    modelViewer.currentTime = 0;\r\n    modelViewer.timeScale = 0;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.pause();\r\n  }\r\n\r\n  modelViewer.addEventListener(\"ar-model_status\", (event) => {\r\n    setVisibility(\r\n      show_dimensions && event.detail.model_status !== \"session-started\"\r\n    );\r\n  });\r\n\r\n  async function explode() {\r\n    console.log(\"exploding....\");\r\n    model_status = \"exploding\";\r\n    show_dimensions = false;\r\n    setVisibility(show_dimensions);\r\n    modelViewer.animationName = \"explode\";\r\n    modelViewer.timeScale = 1;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.play({\r\n      repetitions: 1,\r\n    });\r\n  }\r\n\r\n  async function implode() {\r\n    console.log(\"imploding....\");\r\n    model_status = \"imploding\";\r\n    modelViewer.animationName = \"implode\";\r\n    modelViewer.timeScale = 1;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.play({\r\n      repetitions: 1,\r\n    });\r\n  }\r\n\r\n  modelViewer.addEventListener(\"finished\", () => {\r\n    console.log(\"animation finished\");\r\n    if (model_status == \"exploding\") {\r\n      model_status = \"explode\";\r\n      console.log(\"Enabling implode button\");\r\n      button_explode.classList.add(\"hide\");\r\n      button_implode.classList.remove(\"hide\");\r\n    }\r\n    if (model_status == \"imploding\") {\r\n      model_status = \"implode\";\r\n      console.log(\"Enabling explode button\");\r\n      button_implode.classList.add(\"hide\");\r\n      button_explode.classList.remove(\"hide\");\r\n    }\r\n  });\r\n\/\/ New function to encapsulate dimension calculation\r\nfunction calculateDimensions() {\r\n    center = modelViewer.getBoundingBoxCenter();\r\n    size = modelViewer.getDimensions();\r\n    offset_x = (size.x * offset) \/ 100;\r\n    offset_y = (size.y * offset) \/ 100;\r\n    offset_z = (size.z * offset) \/ 100;\r\n    x2 = (size.x + offset_x) \/ 2;\r\n    y2 = (size.y + offset_y) \/ 2;\r\n    z2 = (size.z + offset_z) \/ 2;\r\n}\r\n\r\n\r\n  function drawLine(svgLine, dotHotspot1, dotHotspot2, dimensionHotspot) {\r\n    if (dotHotspot1 && dotHotspot2) {\r\n      svgLine.setAttribute(\"x1\", dotHotspot1.canvasPosition.x);\r\n      svgLine.setAttribute(\"y1\", dotHotspot1.canvasPosition.y);\r\n      svgLine.setAttribute(\"x2\", dotHotspot2.canvasPosition.x);\r\n      svgLine.setAttribute(\"y2\", dotHotspot2.canvasPosition.y);\r\n\r\n      if (dimensionHotspot && !dimensionHotspot.facingCamera) {\r\n        svgLine.classList.add(\"hide\");\r\n      } else {\r\n        svgLine.classList.remove(\"hide\");\r\n      }\r\n    }\r\n  }\r\n};<\/script>[\/et_pb_code][et_pb_code _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<script><!-- [et_pb_line_break_holder] -->(function() {<!-- [et_pb_line_break_holder] -->  \/\/ List of model filenames for which the measure button must be hidden<!-- [et_pb_line_break_holder] -->  const HIDE_MEASURE_FOR = [<!-- [et_pb_line_break_holder] -->    'm-series-wall-mounted-with-sensor.glb',<!-- [et_pb_line_break_holder] -->     'm-series-wall-mounted-without-sensor.glb'<!-- [et_pb_line_break_holder] -->    \/\/ 'other-model.glb',<!-- [et_pb_line_break_holder] -->  ];<!-- [et_pb_line_break_holder] -->  function shouldHideForSrc(src) {<!-- [et_pb_line_break_holder] -->    if (!src) return false;<!-- [et_pb_line_break_holder] -->    return HIDE_MEASURE_FOR.some(name => src.indexOf(name) !== -1);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function updateMeasureButton(viewer) {<!-- [et_pb_line_break_holder] -->    const src = viewer.getAttribute('src') || '';<!-- [et_pb_line_break_holder] -->    const hide = shouldHideForSrc(src);<!-- [et_pb_line_break_holder] -->    const measureBtn = viewer.querySelector('#button_measure');<!-- [et_pb_line_break_holder] -->    if (!measureBtn) return;<!-- [et_pb_line_break_holder] -->    measureBtn.classList.toggle('hide', hide);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function setupModelViewer(viewer) {<!-- [et_pb_line_break_holder] -->    \/\/ Run once in case the src is already set<!-- [et_pb_line_break_holder] -->    updateMeasureButton(viewer);<!-- [et_pb_line_break_holder] -->    \/\/ When the model actually loads (or src changes), re-check<!-- [et_pb_line_break_holder] -->    viewer.addEventListener('load', function() {<!-- [et_pb_line_break_holder] -->      updateMeasureButton(viewer);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  document.addEventListener('DOMContentLoaded', function() {<!-- [et_pb_line_break_holder] -->    document.querySelectorAll('model-viewer').forEach(setupModelViewer);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  \/\/ Optional: handle model-viewers added later<!-- [et_pb_line_break_holder] -->  const observer = new MutationObserver(function(mutations) {<!-- [et_pb_line_break_holder] -->    mutations.forEach(function(mutation) {<!-- [et_pb_line_break_holder] -->      mutation.addedNodes.forEach(function(node) {<!-- [et_pb_line_break_holder] -->        if (node.nodeType !== 1) return; \/\/ ELEMENT_NODE<!-- [et_pb_line_break_holder] -->        if (node.matches && node.matches('model-viewer')) {<!-- [et_pb_line_break_holder] -->          setupModelViewer(node);<!-- [et_pb_line_break_holder] -->        } else if (node.querySelectorAll) {<!-- [et_pb_line_break_holder] -->          node.querySelectorAll('model-viewer').forEach(setupModelViewer);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  observer.observe(document.body, { childList: true, subtree: true });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|700|||||||&#8221; text_font_size=&#8221;22px&#8221; header_3_font=&#8221;|700|||||||&#8221; header_3_font_size=&#8221;24px&#8221; header_3_line_height=&#8221;1.3em&#8221; custom_padding=&#8221;25px||||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h3>The Meridian heat pump provides homeowners with the perfect balance of power and efficiency for stable heating in extreme Canadian cold. Highly reliable, it delivers 100% heating capacity at -15\u00b0C and dependable warmth in temperatures as low as -30\u00b0C. The model\u2019s modern redesign takes up less space than previous models without compromising performance.<\/h3>\n<p><a href=\"\/en-ca\/about-heat-pumps\">Learn more about heat pumps<\/a>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3>Smart, Reliable, and Efficient<\/h3>\n<p>The Meridian single-zone system offers the perfect mix of advanced features and affordability, making it ideal for homeowners looking for year-round comfort without compromise.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text content_tablet=&#8221;<\/p>\n<h3>Stay Cozy with Meridian\u2019s Advanced HEAT+ System<\/h3>\n<p><img class=%22heat-logo%22 src=%22https:\/\/moovair.com\/wp-content\/uploads\/HEAT-1.png%22 width=%22200%22 height=%2265%22 alt=%22%22 style=%22float: right;%22 \/><\/p>\n<p style=%22text-align: left;%22>Designed for homeowners seeking reliability and performance, Meridian incorporates HEAT+ technology to provide efficient heating in colder climates. The intelligent Inverter system ensures steady temperatures and reduced energy consumption, offering year-round comfort with smart, user-friendly controls.<\/p>\n<\/p>\n<p>&#8221; content_phone=&#8221;<\/p>\n<h3>Stay Cozy with Meridian\u2019s Advanced HEAT+ System<\/h3>\n<p><img class=%22heat-logo%22 src=%22https:\/\/moovair.com\/wp-content\/uploads\/HEAT-1.png%22 width=%22200%22 height=%2265%22 alt=%22%22 style=%22float: right;%22 \/><\/p>\n<p style=%22text-align: left;%22>Designed for homeowners seeking reliability and performance, Meridian incorporates HEAT+ technology to provide efficient heating in colder climates. The intelligent Inverter system ensures steady temperatures and reduced energy consumption, offering year-round comfort with smart, user-friendly controls.<\/p>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; header_2_font=&#8221;|700|||||||&#8221; header_2_font_size=&#8221;32px&#8221; header_3_font=&#8221;|700|||||||&#8221; header_3_font_size=&#8221;24px&#8221; custom_padding=&#8221;0px||||false|false&#8221; custom_padding_tablet=&#8221;40px||||false|false&#8221; custom_padding_phone=&#8221;40px||||false|false&#8221; custom_padding_last_edited=&#8221;on|desktop&#8221; text_font_size_tablet=&#8221;22px&#8221; text_font_size_phone=&#8221;22px&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h3>Stay Cozy with Meridian\u2019s Advanced HEAT+ System<\/h3>\n<p><img decoding=\"async\" class=\"heat-logo\" src=\"https:\/\/moovair.com\/wp-content\/uploads\/HEAT-1.png\" width=\"200\" height=\"65\" alt=\"heat +\" style=\"float: right;\" \/><\/p>\n<p style=\"text-align: left;\">Designed for homeowners seeking reliability and performance, Meridian incorporates HEAT+ technology to provide efficient heating in colder climates. The intelligent Inverter system ensures steady temperatures and reduced energy consumption, offering year-round comfort with smart, user-friendly controls.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; make_equal=&#8221;on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;display:flex;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; header_3_font=&#8221;|700|||||||&#8221; header_3_font_size=&#8221;24px&#8221; custom_margin=&#8221;auto||auto||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<!-- \n\n<h3>Reliable Comfort Tailored for Canadian Seasons<\/h3>\n\n\nWinter or summer time, the Meridian heat pump is designed to meet your most demanding needs and requirements when it comes to family comfort.\n\nThe Meridian heat pump stands out as a top choice for its exceptional performance in all conditions. Even in extreme cold, it delivers 1<strong>00% HEATING CAPACITY AT -15\u00b0C<\/strong>.\n\nAs a HEAT+ system, it continues to provide reliable warmth even in temperatures as low as -30\u00b0C. --><\/p>\n<h2 style=\"font-size: 1.8em; font-weight: 200; padding-bottom:15px;\">Everything Canadian Homeowners Want in a Refined, Contemporary Design<\/h2>\n<ul style=\"line-height: 1.8;\">\n<li>Superior HEAT+ Technology: Delivers up to 27.4 SEER2 and exceptional heating down to -30\u00b0C. .<\/li>\n<li>Cooling Mode: Like a conventional air conditioner, the heat pump extracts heat from inside the home and releases it outdoors, cooling the indoor space.<\/li>\n<li>More Comfort: Eliminates air contaminants with a double filtration system and customizes comfort using multiple airflow settings.<\/li>\n<li>Reliable, Safe Performance: Offers consistent operations, even during a fault or after a power failure.<\/li>\n<li>Convenient Adjustments\u2014Done Remotely: Control the system from anywhere via WiFi connectivity and the Moovair mobile app.<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/HeatOutput_Meridien-1.png&#8221; alt=&#8221;Graph illustrating the heat output percentages of various Moovair system capacities, ranging from 9,000 to 33,000 BTU, under specified indoor and outdoor temperatures.&#8221; title_text=&#8221;Graph illustrating the heat output percentages of various Moovair system capacities, ranging from 9,000 to 33,000 BTU, under specified indoor and outdoor temperatures.&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;10px||10px||true|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_button button_url=&#8221;https:\/\/cdn.master.ca\/documents\/en\/moovair\/brochures\/Moovair_MSeries_202602_EN_V03.pdf&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Features and technical specifications available in the full brochure&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_color=&#8221;#e35425&#8243; button_border_radius=&#8221;100px&#8221; button_font=&#8221;||||||||&#8221; custom_padding=&#8221;10px|30px|10px|30px|true|true&#8221; hover_enabled=&#8221;0&#8243; button_text_size_tablet=&#8221;&#8221; button_text_size_phone=&#8221;16px&#8221; button_text_size_last_edited=&#8221;on|phone&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;%91%93&#8243; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_text_color__hover_enabled=&#8221;on|hover&#8221; button_text_color__hover=&#8221;#e35425&#8243; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;#FFFFFF&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_border_color__hover=&#8221;#e35425&#8243; sticky_enabled=&#8221;0&#8243;][\/et_pb_button][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;et_pb_text_5&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h2 style=\"text-transform: uppercase; display: inline-block; border-bottom: 4px solid #e35425; padding-bottom: 4px; font-size: 2.5rem;\">Moovair M-Series: Heat pumps that work as hard as you do<\/h2>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; module_class=&#8221;cls-logos&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/MORELIS-1.png&#8221; alt=&#8221;Morelis logo featuring a stylized %22M%22 in orange and the word %22Morelis%22 in gray.&#8221; title_text=&#8221;Morelis logo featuring a stylized \u201cM\u201d in orange and the word \u201cMorelis\u201d in gray.&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; background_enable_color=&#8221;off&#8221; max_width=&#8221;200px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/MERIDIAN.png&#8221; alt=&#8221;Logo of the Meridian brand featuring bold gray letters with an orange accent.&#8221; title_text=&#8221;Logo of the Meridian brand featuring bold gray letters with an orange accent.&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;200px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/MISTRAL-1.png&#8221; alt=&#8221;MISTRAL logo featuring bold gray letters with an orange wave element.&#8221; title_text=&#8221;MISTRAL logo featuring bold gray letters with an orange wave element.&#8221; align=&#8221;right&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;200px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;et_pb_text_5&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<p>Moovair heat pumps\u2014Morelis, Meridian, and Mistral\u2014are designed to provide a balance of advanced functionality and everyday reliability. This ensures efficient installations and long-term value for homeowners, without unnecessary complexities.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; make_equal=&#8221;on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/Inverter-Compressor_EN-2.png&#8221; alt=&#8221;A detailed illustration of an inverter-driven compressor showcasing its internal components and design.&#8221; title_text=&#8221;A detailed illustration of an inverter-driven compressor showcasing its internal components and design.&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;50%&#8221; custom_padding=&#8221;10px||10px||true|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;display:flex;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; header_3_font=&#8221;|700|||||||&#8221; header_3_font_size=&#8221;24px&#8221; custom_margin=&#8221;auto||auto||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h3>Energy efficiency for every home<\/h3>\n<p>These systems incorporate cutting-edge Inverter drive technology, which modulates compressor operation to limit temperature fluctuations and reduce energy consumption. By adjusting in precise increments up to 100% capacity, the system maintains the set temperature efficiently, offering maximum comfort and energy savings.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; make_equal=&#8221;on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;display:flex&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;et_pb_text_5&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;auto||auto||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h3><strong>Reliability Guaranteed with our Leading Warranty Coverage<\/strong><\/h3>\n<p>Moovair heat pumps are built to last and come with a comprehensive 10-year limited warranty on both parts and compressor. For added peace of mind, optional labor coverage of 5 and 10 years is also available, ensuring homeowners\u2019 investments remain protected for years to come.[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/MoovairWarrantyLogo_EN-2.png&#8221; alt=&#8221;Warranty badges displaying 10 years for compressor and parts, along with 5 and 10 years for optional labour warranties.&#8221; title_text=&#8221;Warranty badges displaying 10 years for compressor and parts, along with 5 and 10 years for optional labour warranties.&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; make_equal=&#8221;on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/Graphic-EN_WintervsSummer-2.png&#8221; alt=&#8221;Moovair system operation is illustrated with heating mode on the left and cooling mode on the right, showing air flow directions.&#8221; title_text=&#8221;Moovair system operation is illustrated with heating mode on the left and cooling mode on the right, showing air flow directions.&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;display:flex&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;et_pb_text_5&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;auto||auto||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h3><strong>Heat pumps offer year-round home comfort<\/strong><\/h3>\n<p>A heat pump serves as an all-in-one climate control solution, providing both heating and cooling to maintain optimal indoor temperatures throughout the year. <\/p>\n<ul>\n<li><span> <strong>Cooling Mode<\/strong>:  Like a conventional air conditioner, the heat pump extracts heat from inside the home and releases it outdoors, cooling the indoor space.  <\/span><\/li>\n<li><span> <strong>Heating Mode<\/strong>: Operating in reverse, the heat pump captures heat from the outside air and transfers it indoors to warm the home.  <\/span><\/li>\n<\/ul>\n<p><span>This dual functionality ensures efficient and consistent comfort in all seasons, with a single system.<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; make_equal=&#8221;on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;display:flex;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; header_3_font=&#8221;|700|||||||&#8221; header_3_font_size=&#8221;24px&#8221; custom_margin=&#8221;auto||auto||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h3>How heat pump capacity impacts comfort<\/h3>\n<p>Heat pump capacity refers to the amount of heating or cooling a unit can provide, typically measured in British Thermal Units per hour (BTU\/h). Capacity can vary based on temperature, with performance often decreasing as outdoor temperatures drop. Designed to withstand these extremes, the Morelis 9,000 BTU\/h unit\u2014as an example\u2014delivers over 9,000 BTU\/h even when it\u2019s a freezing -25\u00b0C outside and 21\u00b0C inside.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/MSeries_ComparisonGraph.png&#8221; alt=&#8221;Graph showing the total net capacity (MBH) of three systems\u2014Morelis, Meridian, and Mistral\u2014across varying outdoor temperatures (\u00b0C).&#8221; title_text=&#8221;Graph showing the total net capacity (MBH) of three systems\u2014Morelis, Meridian, and Mistral\u2014across varying outdoor temperatures (\u00b0C).&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;10px||10px||true|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; make_equal=&#8221;on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/moovair.com\/wp-content\/uploads\/COP-Graphic_EN-2.png&#8221; alt=&#8221;A diagram illustrating a Moovair system that absorbs heat from outside air and releases it into indoor air.&#8221; title_text=&#8221;A diagram illustrating a Moovair system that absorbs heat from outside air and releases it into indoor air.&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;300px&#8221; module_alignment=&#8221;center&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;display:flex;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; header_3_font=&#8221;|700|||||||&#8221; header_3_font_size=&#8221;24px&#8221; custom_margin=&#8221;auto||auto||false|false&#8221; global_colors_info=&#8221;%91%93&#8243;]<!--\n\n\n<h3  style=\"font-size: 1.8em; font-weight: 200; padding-bottom:15px\">The heating cycle and coefficient of performance (COP)<\/h3>\n\n\n<span>Heat pump efficiency is evaluated using Coefficient of Performance (COP), which is the ratio of heat output (in kW) to electrical energy input (in kW). A higher COP indicates greater efficiency. <\/span>\n\n<span>For instance, a COP of 3 means that for every unit of electricity consumed, the heat pump produces three units of heat. <\/span>\n\n<span style=\"margin-bottom: 10px; display: block;\">Advantages of High COP: <\/span>\n\n\n<ul>\n\t\n\n<li><span> <strong>Increased Efficiency<\/strong>: More effective conversion of electricity into heating or cooling. <\/span><\/li>\n\n\n\t\n\n<li><span> <strong>Lower Energy Costs<\/strong>: Reduced utility bills due to efficient energy use. <\/span><\/li>\n\n\n\t\n\n<li><span> <strong>Environmental Benefits<\/strong>: Decreased carbon footprint through optimized energy consumption.<\/span><\/li>\n\n\n<\/ul>\n\n\n--><\/p>\n<h2  style=\"font-size: 1.7em; font-weight: 200; padding-bottom:15px\">The Heating Cycle and Coefficient of Performance (COP)<\/h2>\n<p>The efficiency of a heat pump is commonly evaluated using the Coefficient of Performance (COP), which is the ratio of heat output to electrical energy input. A higher COP indicates greater efficiency.<\/p>\n<p>For instance, a COP of 3 means that for every unit of electricity consumed, the heat pump produces three units of heat.<\/p>\n<p>COP is defined as the ratio between the rate at which the heat pump transfers thermal energy (in kW) and the amount of electrical power required to do the pumping (in kW). <\/p>\n<h3 style=\"font-size: 1.1em; font-weight: 200; padding-bottom:15px\">Advantages of High COP in MERIDIAN by Moovair Heat Pumps:<\/h3>\n<ul style=\"line-height: 1.8;\">\n<li>Increased Efficiency: More effective conversion of electricity into heating or cooling.<\/li>\n<li>Lower Energy Costs: Reduced utility bills due to efficient energy use.<\/li>\n<li>Environmental Benefits: Decreased carbon footprint through optimized energy consumption.<\/li>\n<\/ul>\n<p>With Meridian heat pumps, you\u2019re not just buying a heating and cooling system\u2014you\u2019re investing in Canadian year-round home comfort, energy savings, and sustainability. The Meridian heat pump systems are engineered to deliver consistent performance, even in the coldest climates.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;30px||||false|false&#8221; custom_padding=&#8221;||50px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;20px&#8221; text_line_height=&#8221;1.3em&#8221; header_2_font=&#8221;|700|||||||&#8221; header_2_font_size=&#8221;32px&#8221; header_2_line_height=&#8221;1.1em&#8221; header_2_font_size_phone=&#8221;26px&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<h2 style=\"text-align: center;\">DOWNLOAD BROCHURE<\/h2>\n<p style=\"text-align: center;\">To explore more, download <span>the M-Series brochure<\/span>.<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/cdn.master.ca\/documents\/en\/moovair\/brochures\/Moovair_MSeries_202602_EN_V03.pdf&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;DOWNLOAD PDF BROCHURE&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_color=&#8221;#e35425&#8243; button_border_radius=&#8221;100px&#8221; button_font=&#8221;||||||||&#8221; custom_padding=&#8221;10px|30px|10px|30px|true|true&#8221; hover_enabled=&#8221;0&#8243; button_text_size_tablet=&#8221;&#8221; button_text_size_phone=&#8221;16px&#8221; button_text_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;%91%93&#8243; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_text_color__hover_enabled=&#8221;on|hover&#8221; button_text_color__hover=&#8221;#e35425&#8243; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;#FFFFFF&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_border_color__hover=&#8221;#e35425&#8243; sticky_enabled=&#8221;0&#8243;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;cbebb943-82e8-4ec0-947d-cf77e34c50de&#8221; custom_margin=&#8221;||0px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; hover_enabled=&#8221;0&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; custom_padding_last_edited=&#8221;on|phone&#8221; sticky_enabled=&#8221;0&#8243; custom_padding_phone=&#8221;|20px||20px|false|true&#8221; custom_padding_tablet=&#8221;0px||0px||false|false&#8221;][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#4a7b9c&#8221; border_radii=&#8221;on|50px|50px|50px|50px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.3em&#8221; header_3_font_size=&#8221;36px&#8221; width=&#8221;100%&#8221; custom_margin=&#8221;|20px||20px|true|true&#8221; custom_padding=&#8221;|20px||20px|true|true&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;%91%93&#8243;]<\/p>\n<p>Moovair dealers are supported by The Master Group, Canada\u2019s largest independently Canadian owned HVAC-R distributor. Through its 70 year history, The Master Group distinguishes itself for its extensive inventory, technical expertise, and exceptional customer service.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;30px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_button button_url=&#8221;\/dealer-locator\/&#8221; button_text=&#8221;FIND A DEALER FOR A QUOTE&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_color=&#8221;#e35425&#8243; button_border_radius=&#8221;100px&#8221; button_font=&#8221;||||||||&#8221; custom_padding=&#8221;10px|30px|10px|30px|true|true&#8221; button_text_size_tablet=&#8221;&#8221; button_text_size_phone=&#8221;16px&#8221; button_text_size_last_edited=&#8221;on|phone&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;%91%93&#8243; button_text_size__hover_enabled=&#8221;on|desktop&#8221; button_text_color__hover_enabled=&#8221;on|hover&#8221; button_text_color__hover=&#8221;#e35425&#8243; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;#FFFFFF&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_border_color__hover=&#8221;#e35425&#8243;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Meridian (Advanced) The perfect balance of comfort &amp; value Up to 27.4 SEER2 | 9.8 HSPF2 Region 5 | Heating to -30\u00b0C Year-Round, Powerful Performance\u2014Created by MERIDIAN<style class=\"wpcode-css-snippet\">:not(:defined)>* {\r\n    display: none;\r\n}\r\n\r\n.test-div {\r\n  width: 80%;\r\n  height: 80%;\r\n}\r\n\r\n\r\n\/* Responsive model-viewer *\/\r\nmodel-viewer {\r\n    width: 100%;\r\n    max-width: 640px;\r\n    height: auto;\r\n    aspect-ratio: 4 \/ 3; \/* Keeps proper proportions on all screens *\/\r\n    margin: 0 auto;\r\n    border-radius: 10px;\r\n    background-color: #fff;\r\n    box-sizing: border-box;\r\n    position: relative;\r\n}\r\n\r\n\/* Tablet *\/\r\n@media (min-width: 768px) and (max-width: 1024px) {\r\n    model-viewer {\r\n        width: 90%;\r\n        max-width: 720px;\r\n        aspect-ratio: 4 \/ 3;\r\n    }\r\n}\r\n\r\n\/* Desktop *\/\r\n@media (min-width: 1025px) {\r\n    model-viewer {\r\n        width: 680px;\r\n        height: 540px; \/* Desktop fixed size *\/\r\n        aspect-ratio: unset;\r\n    }\r\n}\r\n\r\n#ar-button {\r\n    background-image: url(https:\/\/cdn2.moovair.com\/ar\/_assets\/ic_view_in_ar_new_googblue_48dp.png);\r\n    background-repeat: no-repeat;\r\n    background-size: 20px 20px;\r\n    background-position: 12px 50%;\r\n    background-color: #fff;\r\n    position: absolute;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    white-space: nowrap;\r\n    bottom: 20px;\r\n    padding: 0px 16px 0px 40px;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif;\r\n    font-size: 14px;\r\n    font-weight: 500;\r\n    color: #4285f4;\r\n    height: 36px;\r\n    line-height: 36px;\r\n    border-radius: 18px;\r\n    border: 1px solid #DADCE0;\r\n}\r\n\r\n#ar-button:active {\r\n    background-color: #E8EAED;\r\n}\r\n\r\n#ar-button:focus {\r\n    outline: none;\r\n}\r\n\r\n#ar-button:focus-visible {\r\n    outline: 1px solid #4285f4;\r\n}\r\n\r\n#logo-overlay {\r\n    position: absolute;\r\n    \/* KEY CHANGE: Reduced bottom padding from 20px to 10px *\/\r\n    bottom: -42px;\r\n    right: 10px;\r\n    width: 80px;\r\n    height: 80px;\r\n    object-fit: contain;\r\n    border-radius: 8px;\r\n    pointer-events: none;\r\n}\r\n\r\n.sel {\r\n  margin-top: -15px;\r\n  margin-left: 30px;\r\n  float: left;\r\n  width: 30vw;\r\n  \/* position: absolute; *\/\r\n  \/* display: inline-block; *\/\r\n  \/* left: 175px; *\/\r\n  \/* font-family: Arial, Helvetica, sans-serif; *\/\r\n  \/* background-color: rgb(147, 200, 147); *\/\r\n}\r\n\r\n.label {    \/* capacity *\/\r\n  \/* background-color: red; *\/\r\n  \/* display: inline-block; *\/\r\n  \/* height: 20px; *\/\r\n  \/* width: 78px; *\/\r\n  \/* width: 50vw; *\/\r\n  width: 100%;\r\n  text-align: left;\r\n  vertical-align: middle;\r\n  margin-bottom: 8px;\r\n  font-size: 1.8vh;\r\n  float: left;\r\n  clear: both;\r\n  \/* height: 50%; *\/\r\n\r\n  }\r\n\r\n.dropdown {\r\n  float: left;\r\n  background-color: white;\r\n  clear: both;\r\n  height: 2.5vh;\r\n  \/* width: 50vw; *\/\r\n  \/* width: 100%; *\/\r\n  \/* font-size: 1rem; *\/\r\n  font-size: 1.6vh;\r\n}\r\n\r\n.dropdown option {\r\n   \/* font-size: 1rem; *\/\r\n   font-size: 11pt;\r\n   \/* font-size: 1.6vh; *\/\r\n}\r\n\r\n.btns {\r\n  \/* position: relative; *\/\r\n  position: absolute;\r\n  \/* width: 90%; *\/\r\n  \/* width: 100px; *\/\r\n  \/* height: 50px; *\/\r\n  height: 5vh;\r\n  width: 100vw;\r\n  bottom: 0;\r\n  margin-bottom: 0;\r\n  \/* background-color: rgb(115, 0, 255); *\/\r\n  overflow: visible;\r\n margin-bottom:30px;\r\n}\r\n\r\n\/* measure button *\/\r\n.b1, .b2, .b3 {   \r\n  \/* position: absolute; *\/\r\n  \/* display: inline-block; *\/\r\n  \/* left: 110px; *\/\r\n  margin-left: 30px;\r\n  float: left;\r\n  white-space: nowrap;\r\n  height: 100%;\r\n}\r\n\r\n  .dot {\r\n    display: none;\r\n  }\r\n  \r\n  .glass {\r\n    background: rgba(255, 255, 255, 0.37);\r\n    backdrop-filter: blur(8px) contrast(0.89) saturate(1.27);\r\n    -webkit-backdrop-filter: blur(8px) contrast(0.89) saturate(1.27);\r\n    border: 1px solid rgba(255, 255, 255, 0.4);\r\n    padding: 0.5rem;\r\n    border-radius: 0.5rem;\r\n  }\r\n  \r\n  .dim {\r\n    border-radius: 4px;\r\n    border: none;\r\n    box-sizing: border-box;\r\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);\r\n    color: rgba(0, 0, 0, 0.8);\r\n    display: block;\r\n    font-family: Futura, Helvetica Neue, sans-serif;\r\n    \/* font-size: 1em; *\/\r\n    font-size: 1.6vh;\r\n    font-weight: 700;\r\n    max-width: 128px;\r\n    overflow-wrap: break-word;\r\n    padding: 8px;\r\n    position: absolute;\r\n    width: max-content;\r\n    height: max-content;\r\n    transform: translate3d(-50%, -50%, 0);\r\n    pointer-events: none;\r\n    --min-hotspot-opacity: 0;\r\n  }\r\n  \r\n  \/* @media only screen and (max-width: 800px) {\r\n    .dim {\r\n      font-size: 3vw;\r\n    }\r\n  } *\/\r\n  \r\n  .dimensionLineContainer {\r\n    pointer-events: none;\r\n    display: block;\r\n  }\r\n  \r\n  .dimensionLine {\r\n    stroke: #16a5e6;\r\n    stroke-width: 2;\r\n    stroke-dasharray: 2;\r\n  }\r\n  \r\n  .hide {\r\n    display: none;\r\n  }\r\n\r\n  :not(:defined)>* {\r\n    display: none;\r\n  }\r\n  \r\n  #ar-button {\r\n    background-image: url(https:\/\/cdn2.moovair.com\/ar\/_assets\/ic_view_in_ar_new_googblue_48dp.png);\r\n    background-repeat: no-repeat;\r\n    background-size: 20px 20px;\r\n    background-position: 12px 50%;\r\n    background-color: #fff;\r\n    position: absolute;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    white-space: nowrap;\r\n    bottom: 132px;\r\n    padding: 0px 16px 0px 40px;\r\n    font-family: Roboto Regular, Helvetica Neue, sans-serif;\r\n    font-size: 14px;\r\n    color:#4285f4;\r\n    height: 36px;\r\n    line-height: 36px;\r\n    border-radius: 18px;\r\n    border: 1px solid #DADCE0;\r\n  }\r\n\r\n  #ar-button:active {\r\n    background-color: #E8EAED;\r\n  }\r\n\r\n  #ar-button:focus {\r\n    outline: none;\r\n  }\r\n\r\n  #ar-button:focus-visible {\r\n    outline: 1px solid #4285f4;\r\n  }\r\n\r\n  @keyframes circle {\r\n    from { transform: translateX(-50%) rotate(0deg) translateX(50px) rotate(0deg); }\r\n    to   { transform: translateX(-50%) rotate(360deg) translateX(50px) rotate(-360deg); }\r\n  }\r\n\r\n  @keyframes elongate {\r\n    from { transform: translateX(100px); }\r\n    to   { transform: translateX(-100px); }\r\n  }\r\n\r\n  model-viewer > #ar-prompt {\r\n    position: absolute;\r\n    left: 50%;\r\n    bottom: 175px;\r\n    animation: elongate 2s infinite ease-in-out alternate;\r\n    display: none;\r\n  }\r\n\r\n  model-viewer[ar-status=\"session-started\"] > #ar-prompt {\r\n    display: block;\r\n  }\r\n\r\n  model-viewer > #ar-prompt > img {\r\n    animation: circle 4s linear infinite;\r\n  }\r\n\r\n  model-viewer > #ar-failure {\r\n    position: absolute;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    bottom: 175px;\r\n    display: none;\r\n  }\r\n\r\n  model-viewer[ar-tracking=\"not-tracking\"] > #ar-failure {\r\n    display: block;\r\n  }<\/style><script>let model_name = \"EMPTY\";\r\nlet model_url = \"EMPTY\";\r\nlet model_usdz = \"EMPTY\";\r\nlet model_glb = \"EMPTY\";\r\nlet width = \"-\";\r\nlet deep = \"-\";\r\nlet height = \"-\";\r\nlet offset = 0;\r\nlet enable_explode = false;\r\nlet center;\r\nlet size;\r\nlet offset_x;\r\nlet offset_y;\r\nlet offset_z;\r\nlet x2;\r\nlet y2;\r\nlet z2;\r\nlet actual_model = outdoor_a;\r\nlet value = outdoor_a;\r\n\r\nlet previus_model = actual_model;\r\nconsole.log(\"model glb: \" + glbs[actual_model]);\r\n\r\nlet show_dimensions = false;\r\nlet model_status = \"implode\";\r\n\r\nconst modelViewer = document.getElementById(\"viewer\");\r\ndocument.getElementById(\"viewer\").setAttribute(\"src\", glbs[actual_model]);\r\n\r\nconst sel_div = document.getElementById(\"sel_div\");\r\nconst select = document.getElementById(\"capacity_select\");\r\nconst select2 = document.getElementById(\"capacity_select2\"); \/\/ Myriad\r\nlet select_changes = 0;\r\n\r\n\/\/-----------------------------------------------------------------------------------------------------\r\n\r\nwindow.onload = function () {\r\n  console.log(\"The website is fully loaded!\");\r\n\r\n  const button_explode = document.getElementById(\"button_explode\");\r\n  const button_implode = document.getElementById(\"button_implode\");\r\n\r\n  const button_measure = document.getElementById(\"button_measure\");\r\n\r\n  const button_indoor_A = document.getElementById(\"button_indoor_A\");\r\n  const button_outdoor_A = document.getElementById(\"button_outdoor_A\");\r\n\r\n  const button_myriad = document.getElementById(\"button_myriad\");\r\n  const button_myriad_plus = document.getElementById(\"button_myriad_plus\");\r\n\r\n  const button_console = document.getElementById(\"button_console\");\r\n  const button_cassette = document.getElementById(\"button_cassette\");\r\n\r\n  sel_div.classList.remove(\"hide\");\r\n\r\n  \/\/ Myriad\r\n  if (use_two_outdoor_buttons) {\r\n    button_outdoor_A.classList.add(\"hide\");\r\n    button_indoor_A.classList.add(\"hide\");\r\n    button_myriad_plus.classList.remove(\"hide\");\r\n  } else {\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    \/\/ button_indoor_A.classList.remove(\"hide\");\r\n    \/\/ button_myriad_plus.classList.remove(\"hide\");\r\n  }\r\n\r\n  const dimLines = modelViewer.querySelectorAll(\"line\");\r\n\r\n  const renderSVG = () => {\r\n    drawLine(\r\n      dimLines[0],\r\n      modelViewer.queryHotspot(\"hotspot-dot+X-Y+Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot+X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim+X-Y\")\r\n    );\r\n    drawLine(\r\n      dimLines[1],\r\n      modelViewer.queryHotspot(\"hotspot-dot+X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot+X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim+X-Z\")\r\n    );\r\n\r\n    drawLine(\r\n      dimLines[2],\r\n      modelViewer.queryHotspot(\"hotspot-dot+X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot-X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim+Y-Z\")\r\n    ); \/\/ FIX LINE WIDTH\r\n\r\n    drawLine(\r\n      dimLines[3],\r\n      modelViewer.queryHotspot(\"hotspot-dot-X+Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot-X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim-X-Z\")\r\n    );\r\n    drawLine(\r\n      dimLines[4],\r\n      modelViewer.queryHotspot(\"hotspot-dot-X-Y-Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dot-X-Y+Z\"),\r\n      modelViewer.queryHotspot(\"hotspot-dim-X-Y\")\r\n    );\r\n  };\r\n\r\n  modelViewer.addEventListener(\"camera-change\", renderSVG);\r\n\r\n  function set_option(option, dropdown) {\r\n    if (option !== \"\") {\r\n      var opt = document.createElement(\"option\");\r\n      opt.value = option;\r\n      opt.innerHTML = capacities[option];\r\n      dropdown.appendChild(opt);\r\n    }\r\n  }\r\n\r\n  set_option(outdoor_a, select);\r\n  set_option(outdoor_b, select);\r\n  set_option(outdoor_c, select);\r\n  set_option(outdoor_d, select);\r\n\r\n  set_option(outdoor_2_a, select2);\r\n  set_option(outdoor_2_b, select2);\r\n  set_option(outdoor_2_c, select2);\r\n  set_option(outdoor_2_d, select2);\r\n\r\n  \/\/-----------------------------------------------------------------------------------------------\r\n\r\n  function changeSelect() {\r\n    select_changes += 1;\r\n\r\n    value = select.value;\r\n    console.log(\"Change Select: \" + value);\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n    show_dimensions = false;\r\n    setVisibility(show_dimensions);\r\n    width = widths[actual_model];\r\n    deep = deeps[actual_model];\r\n    height = heights[actual_model];\r\n    console.log(\r\n      \"width: \" + width + \" \/ deep: \" + deep + \" \/ height: \" + height\r\n    );\r\n\r\n    model_url = glbs[actual_model];\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  }\r\n\r\n  function changeSelect2() {\r\n    select_changes += 1;\r\n\r\n    value = select2.value;\r\n    console.log(\"Change Select2: \" + value);\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n    show_dimensions = false;\r\n    setVisibility(show_dimensions);\r\n    width = widths[actual_model];\r\n    deep = deeps[actual_model];\r\n    height = heights[actual_model];\r\n    console.log(\r\n      \"width: \" + width + \" \/ deep: \" + deep + \" \/ height: \" + height\r\n    );\r\n\r\n    model_url = glbs[actual_model];\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  }\r\n\r\n  select.addEventListener(\"change\", changeSelect);\r\n  select2.addEventListener(\"change\", changeSelect2);\r\n\r\n  \/\/--------------------------------------------------------------------------------------------------\r\n\/\/ New function to encapsulate dimension calculation\r\n\r\n  \r\n\tmodelViewer.addEventListener(\"load\", () => {\r\n    console.log(\r\n      \"VIEWER LOADED actual_model: \" + actual_model + \" type: \" + type_model\r\n    );\r\n\t\t\/\/ Call the new dimension calculation function\r\n  \r\n\r\n    show_dimensions = false;\r\ncenter = modelViewer.getBoundingBoxCenter();\r\n\t\t\r\n    setVisibility(show_dimensions);\r\n\r\n    model_status = \"implode\";\r\n\r\n    button_outdoor_A.classList.add(\"hide\");\r\n    button_indoor_A.classList.add(\"hide\");\r\n    button_explode.classList.add(\"hide\");\r\n    button_implode.classList.add(\"hide\");\r\n\r\n    \/\/center = modelViewer.getBoundingBoxCenter();\r\n\r\n    model_url = glbs[actual_model];\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n\r\n    if (enable_explode) {\r\n      console.log(\"enable explode\");\r\n      stopx();\r\n      button_explode.classList.remove(\"hide\");\r\n    } else {\r\n      console.log(\"running play\");\r\n      playx();\r\n    }\r\n\r\n    if (type_model == \"outdoor\") {\r\n      console.log(\"TYPE OUT DOOR\");\r\n      button_outdoor_A.classList.add(\"hide\");\r\n      button_indoor_A.classList.add(\"hide\");\r\n      button_cassette.classList.add(\"hide\");\r\n      button_console.classList.add(\"hide\");\r\n\r\n      sel_div.classList.remove(\"hide\");\r\n\r\n      if (consolle[actual_model]) {\r\n        console.log(\"CONSOLE TRUE\");\r\n        button_console.classList.remove(\"hide\");\r\n        sel_div.classList.remove(\"hide\");\r\n      }\r\n      if (cassette[actual_model]) {\r\n        console.log(\"CASSETTE TRUE\");\r\n        button_cassette.classList.remove(\"hide\");\r\n        sel_div.classList.remove(\"hide\");\r\n      }\r\n      if (!cassette[actual_model] && !consolle[actual_model]) {\r\n        console.log(\"NORMAL\");\r\n        button_indoor_A.classList.remove(\"hide\");\r\n      }\r\n    } else {\r\n      button_cassette.classList.add(\"hide\");\r\n      button_console.classList.add(\"hide\");\r\n      button_indoor_A.classList.add(\"hide\");\r\n      button_outdoor_A.classList.remove(\"hide\");\r\n      sel_div.classList.add(\"hide\");\r\n    }\r\n\r\n    \/\/ Myriad\r\n    if (use_two_outdoor_buttons) {\r\n      button_indoor_A.classList.add(\"hide\");\r\n\r\n      \/\/ button_outdoor_A.classList.add(\"hide\");\r\n      \/\/ button_myriad.classList.remove(\"hide\");\r\n      \/\/ button_myriad_plus.classList.remove(\"hide\");\r\n      \/\/ sel_div.classList.remove(\"hide\");\r\n    } else {\r\n    }\r\n\r\n    \/\/ Mix Moov Heat+\r\n    \/\/ if (use_two_indoor_buttons) {\r\n    \/\/   \/\/ button_indoor_A.classList.remove(\"hide\");\r\n    \/\/   \/\/ button_indoor_B.classList.remove(\"hide\");\r\n    \/\/ } else {\r\n    \/\/ }\r\n\r\n    width = widths[actual_model];\r\n    deep = deeps[actual_model];\r\n    height = heights[actual_model];\r\n    offset = offsets[actual_model];\r\n\r\n    size = modelViewer.getDimensions();\r\n    offset_x = (size.x * offset) \/ 100;\r\n    offset_y = (size.y * offset) \/ 100;\r\n    offset_z = (size.z * offset) \/ 100;\r\n    x2 = (size.x + offset_x) \/ 2;\r\n    y2 = (size.y + offset_y) \/ 2;\r\n    z2 = (size.z + offset_z) \/ 2;\r\n  });\r\n  \/\/  END MODEL LO-AD EVENT\r\n\r\n  button_explode.addEventListener(\"click\", explode);\r\n  button_implode.addEventListener(\"click\", implode);\r\n\r\n  const dimElements = [\r\n    ...modelViewer.querySelectorAll(\"button\"),\r\n    modelViewer.querySelector(\"#dimLines\"),\r\n  ];\r\n\r\n  function setVisibility(visible) {\r\n    console.log(\"set-Visibility: \" + visible);\r\n\t\r\n    dimElements.forEach((element) => {\r\n      if (visible) {\r\n       modelViewer.updateHotspot({\r\n        name: \"hotspot-dot+X-Y+Z\",\r\n         position: `${center.x + x2} ${center.y - y2} ${center.z + z2}`,\r\n       });\r\n           \r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim+X-Y\",\r\n          position: `${center.x + x2 * 1} ${center.y - y2 * 1} ${center.z}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim+X-Y\"]'\r\n        ).textContent = deep;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot+X-Y-Z\",\r\n          position: `${center.x + x2} ${center.y - y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim+X-Z\",\r\n          position: `${center.x + x2 * 1} ${center.y} ${center.z - z2 * 1}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim+X-Z\"]'\r\n        ).textContent = height;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot+X+Y-Z\",\r\n          position: `${center.x + x2} ${center.y + y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim+Y-Z\",\r\n          position: `${center.x} ${center.y + y2 * 1} ${center.z - z2 * 1}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim+Y-Z\"]'\r\n        ).textContent = width;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot-X+Y-Z\",\r\n          position: `${center.x - x2} ${center.y + y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim-X-Z\",\r\n          position: `${center.x - x2 * 1} ${center.y} ${center.z - z2 * 1}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim-X-Z\"]'\r\n        ).textContent = height;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot-X-Y-Z\",\r\n          position: `${center.x - x2} ${center.y - y2} ${center.z - z2}`,\r\n        });\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dim-X-Y\",\r\n          position: `${center.x - x2 * 1} ${center.y - y2 * 1} ${center.z}`,\r\n        });\r\n\r\n        modelViewer.querySelector(\r\n          'button[slot=\"hotspot-dim-X-Y\"]'\r\n        ).textContent = deep;\r\n\r\n        modelViewer.updateHotspot({\r\n          name: \"hotspot-dot-X-Y+Z\",\r\n          position: `${center.x - x2} ${center.y - y2} ${center.z + z2}`,\r\n        });\r\n\r\n        renderSVG();\r\n\r\n        element.classList.remove(\"hide\");\r\n      } else {\r\n        element.classList.add(\"hide\");\r\n      }\r\n    });\r\n  }\r\n\r\n  button_measure.addEventListener(\"click\", () => {\r\n    console.log(\r\n      \"button measure pressed \/ model_status: \" +\r\n        model_status +\r\n        \" \/ width: \" +\r\n        width +\r\n        \" \/ deep: \" +\r\n        deep +\r\n        \" \/ height: \" +\r\n        height\r\n    );\r\n  \r\n    if (model_status == \"implode\") {\r\n      show_dimensions = !show_dimensions;\r\n      setVisibility(show_dimensions);\r\n    }\r\n\r\n  });\r\n\r\n  button_outdoor_A.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button A pressed\");\r\n    \/\/ button_outdoor_A.classList.add(\"hide\");\r\n    \/\/ button_indoor_A.classList.remove(\"hide\");\r\n    type_model = \"outdoor\";\r\n    actual_model = previus_model;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_indoor_A.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button B pressed\");\r\n    \/\/ button_indoor_A.classList.add(\"hide\");\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    type_model = \"indoor\";\r\n    previus_model = actual_model;\r\n    actual_model = indoor_a;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    console.log(\"model glb: \" + model_glb);\r\n    model_usdz = usdz[actual_model];\r\n    console.log(\"model usdz: \" + model_usdz);\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_cassette.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button cassette pressed\");\r\n    \/\/ button_indoor_A.classList.add(\"hide\");\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    type_model = \"indoor\";\r\n    previus_model = actual_model;\r\n    actual_model = indoor_a;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    console.log(\"model glb: \" + model_glb);\r\n    model_usdz = usdz[actual_model];\r\n    console.log(\"model usdz: \" + model_usdz);\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_console.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button cassette pressed\");\r\n    \/\/ button_indoor_A.classList.add(\"hide\");\r\n    \/\/ button_outdoor_A.classList.remove(\"hide\");\r\n    type_model = \"indoor\";\r\n    previus_model = actual_model;\r\n    actual_model = indoor_b;\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    console.log(\"model glb: \" + model_glb);\r\n    model_usdz = usdz[actual_model];\r\n    console.log(\"model usdz: \" + model_usdz);\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_myriad.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button Myriad pressed\");\r\n    type_model = \"outdoor\";\r\n\r\n    button_myriad.classList.add(\"hide\");\r\n    button_myriad_plus.classList.remove(\"hide\");\r\n    select2.classList.add(\"hide\");\r\n    select.classList.remove(\"hide\");\r\n\r\n    \/\/ actual_model = outdoor_a;\r\n    \/\/ actual_model = outdoor_2_a;\r\n    value = select.value;\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  button_myriad_plus.addEventListener(\"click\", () => {\r\n    stopx();\r\n    console.log(\"button Myriad plus pressed\");\r\n    type_model = \"outdoor\";\r\n\r\n    button_myriad_plus.classList.add(\"hide\");\r\n    button_myriad.classList.remove(\"hide\");\r\n    select.classList.add(\"hide\");\r\n    select2.classList.remove(\"hide\");\r\n\r\n    \/\/ actual_model = outdoor_2_a;\r\n    value = select2.value;\r\n    previus_model = actual_model;\r\n    actual_model = value;\r\n\r\n    console.log(\"actual model: \" + actual_model);\r\n    enable_explode = explodes[actual_model];\r\n    model_glb = glbs[actual_model];\r\n    model_usdz = usdz[actual_model];\r\n    modelViewer.src = model_glb;\r\n    document.getElementById(\"viewer\").setAttribute(\"src\", model_glb);\r\n    document.getElementById(\"viewer\").setAttribute(\"ios-src\", model_usdz);\r\n  });\r\n\r\n  async function playx() {\r\n    console.log(\"play animation\");\r\n    modelViewer.timeScale = 1;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.pause();\r\n    modelViewer.play({ repetitions: 9999 });\r\n    modelViewer.appendAnimation(\"rotate\", {\r\n      weight: parseFloat(100),\r\n      repetitions: 9999,\r\n    });\r\n    modelViewer.appendAnimation(\"rotate2\", {\r\n      weight: parseFloat(100),\r\n      repetitions: 9999,\r\n    });\r\n  }\r\n\r\n  async function stopx() {\r\n    console.log(\"stop animation\");\r\n\tmodelViewer.animationName=\"explode\";\r\n    modelViewer.currentTime = 0;\r\n    modelViewer.timeScale = 0;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.pause();\r\n  }\r\n\r\n  modelViewer.addEventListener(\"ar-model_status\", (event) => {\r\n    setVisibility(\r\n      show_dimensions && event.detail.model_status !== \"session-started\"\r\n    );\r\n  });\r\n\r\n  async function explode() {\r\n    console.log(\"exploding....\");\r\n    model_status = \"exploding\";\r\n    show_dimensions = false;\r\n    setVisibility(show_dimensions);\r\n    modelViewer.animationName = \"explode\";\r\n    modelViewer.timeScale = 1;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.play({\r\n      repetitions: 1,\r\n    });\r\n  }\r\n\r\n  async function implode() {\r\n    console.log(\"imploding....\");\r\n    model_status = \"imploding\";\r\n    modelViewer.animationName = \"implode\";\r\n    modelViewer.timeScale = 1;\r\n    await modelViewer.updateComplete;\r\n    modelViewer.play({\r\n      repetitions: 1,\r\n    });\r\n  }\r\n\r\n  modelViewer.addEventListener(\"finished\", () => {\r\n    console.log(\"animation finished\");\r\n    if (model_status == \"exploding\") {\r\n      model_status = \"explode\";\r\n      console.log(\"Enabling implode button\");\r\n      button_explode.classList.add(\"hide\");\r\n      button_implode.classList.remove(\"hide\");\r\n    }\r\n    if (model_status == \"imploding\") {\r\n      model_status = \"implode\";\r\n      console.log(\"Enabling explode button\");\r\n      button_implode.classList.add(\"hide\");\r\n      button_explode.classList.remove(\"hide\");\r\n    }\r\n  });\r\n\/\/ New function to encapsulate dimension calculation\r\nfunction calculateDimensions() {\r\n    center = modelViewer.getBoundingBoxCenter();\r\n    size = modelViewer.getDimensions();\r\n    offset_x = (size.x * offset) \/ 100;\r\n    offset_y = (size.y * offset) \/ 100;\r\n    offset_z = (size.z * offset) \/ 100;\r\n    x2 = (size.x + offset_x) \/ 2;\r\n    y2 = (size.y + offset_y) \/ 2;\r\n    z2 = (size.z + offset_z) \/ 2;\r\n}\r\n\r\n\r\n  function drawLine(svgLine, dotHotspot1, dotHotspot2, dimensionHotspot) {\r\n    if (dotHotspot1 && dotHotspot2) {\r\n      svgLine.setAttribute(\"x1\", dotHotspot1.canvasPosition.x);\r\n      svgLine.setAttribute(\"y1\", dotHotspot1.canvasPosition.y);\r\n      svgLine.setAttribute(\"x2\", dotHotspot2.canvasPosition.x);\r\n      svgLine.setAttribute(\"y2\", dotHotspot2.canvasPosition.y);\r\n\r\n      if (dimensionHotspot && !dimensionHotspot.facingCamera) {\r\n        svgLine.classList.add(\"hide\");\r\n      } else {\r\n        svgLine.classList.remove(\"hide\");\r\n      }\r\n    }\r\n  }\r\n};<\/script>The Meridian heat pump provides homeowners with the perfect balance of power and efficiency for stable heating in extreme Canadian cold. Highly reliable, it delivers 100% heating [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":"","_wp_rev_ctl_limit":""},"dipi_cpt_category":[],"class_list":["post-16258435","page","type-page","status-publish","hentry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/pages\/16258435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/comments?post=16258435"}],"version-history":[{"count":15,"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/pages\/16258435\/revisions"}],"predecessor-version":[{"id":16266694,"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/pages\/16258435\/revisions\/16266694"}],"wp:attachment":[{"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/media?parent=16258435"}],"wp:term":[{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/moovair.com\/en-ca\/wp-json\/wp\/v2\/dipi_cpt_category?post=16258435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}