{"id":16258505,"date":"2025-04-24T05:03:09","date_gmt":"2025-04-24T09:03:09","guid":{"rendered":"https:\/\/moovair.com\/?page_id=16258505"},"modified":"2026-02-25T10:42:13","modified_gmt":"2026-02-25T15:42:13","slug":"thermopompe-morelis","status":"publish","type":"page","link":"https:\/\/moovair.com\/fr-ca\/thermopompe-morelis\/","title":{"rendered":"Thermopompe Morelis (Ultime)"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbd50c1bc5-13b0-4764-b297-558025908a7b\u00a0\u00bb background_image=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/Moovair-Morelis-Desktop-Banner-1.png\u00a0\u00bb background_position=\u00a0\u00bbtop_left\u00a0\u00bb min_height=\u00a0\u00bb600px\u00a0\u00bb min_height_phone=\u00a0\u00bbauto\u00a0\u00bb min_height_last_edited=\u00a0\u00bboff|phone\u00a0\u00bb height_phone=\u00a0\u00bbauto\u00a0\u00bb background_image_tablet=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/Moovair-Morelis-Mobile-Banner-1.png\u00a0\u00bb background_image_phone=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/Moovair-Morelis-Mobile-Banner-1.png\u00a0\u00bb saved_tabs=\u00a0\u00bball\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_row column_structure=\u00a0\u00bb3_5,2_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb background_color=\u00a0\u00bbrgba(41,48,60,0.85)\u00a0\u00bb max_width=\u00a0\u00bb1360px\u00a0\u00bb custom_padding=\u00a0\u00bb||||false|false\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay: flex;||justify-content: center;||align-items: center;\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb custom_css_main_element_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb custom_css_main_element_phone=\u00a0\u00bbdisplay: block;\u00a0\u00bb custom_css_main_element_tablet=\u00a0\u00bbdisplay: flex;||justify-content: center;||align-items: center;\u00a0\u00bb][et_pb_column type=\u00a0\u00bb3_5&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_font=\u00a0\u00bbCera Pro Black|900||on|||||\u00a0\u00bb header_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_font_size=\u00a0\u00bb70px\u00a0\u00bb header_2_font=\u00a0\u00bbCera Pro|700||on|||||\u00a0\u00bb header_2_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_2_font_size=\u00a0\u00bb42px\u00a0\u00bb header_3_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_3_font_size=\u00a0\u00bb28px\u00a0\u00bb header_3_line_height=\u00a0\u00bb1.1em\u00a0\u00bb background_color=\u00a0\u00bbRGBA(255,255,255,0)\u00a0\u00bb custom_margin=\u00a0\u00bb||||false|false\u00a0\u00bb custom_margin_tablet=\u00a0\u00bb-60px||||false|false\u00a0\u00bb custom_margin_phone=\u00a0\u00bb0px||||false|false\u00a0\u00bb custom_margin_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb custom_padding=\u00a0\u00bb|||25px|false|false\u00a0\u00bb custom_padding_tablet=\u00a0\u00bb0px|25px|25px||false|false\u00a0\u00bb custom_padding_phone=\u00a0\u00bb|15px||15px|false|false\u00a0\u00bb custom_padding_last_edited=\u00a0\u00bbon|tablet\u00a0\u00bb animation_style=\u00a0\u00bbfade\u00a0\u00bb header_font_size_tablet=\u00a0\u00bb48px\u00a0\u00bb header_font_size_phone=\u00a0\u00bb28px\u00a0\u00bb header_font_size_last_edited=\u00a0\u00bbon|desktop\u00a0\u00bb header_2_font_size_tablet=\u00a0\u00bb42px\u00a0\u00bb header_2_font_size_phone=\u00a0\u00bb24px\u00a0\u00bb header_2_font_size_last_edited=\u00a0\u00bbon|tablet\u00a0\u00bb header_3_font_size_tablet=\u00a0\u00bb24px\u00a0\u00bb header_3_font_size_phone=\u00a0\u00bb20px\u00a0\u00bb header_3_font_size_last_edited=\u00a0\u00bbon|desktop\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<p><!--<\/p>\n\n\n\n\n<h1 style=\"font-family: Cera Pro Black;\">Morelis <span style=\"font-family: Cera Pro;\">(Ultime)<\/span><\/h1>\n\n\n\n\n<h2>La cr\u00e8me du confort et de l\u2019efficacit\u00e9<\/h2>\n\n\n\n\n<h3>Jusqu\u2019\u00e0 29,4 TR\u00c9S2 | 12,9 CPSC2, r\u00e9gion 5 | Chauffage jusqu\u2019\u00e0 -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;\">Morelis <span style=\"font-family: Cera Pro;\">(Ultime)<\/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;\">La cr\u00e8me du confort et de l\u2019efficacit\u00e9<\/p>\n<p style=\"font-size: 1.2rem; color: #ffffff !important; line-height: 1.1em;\">Jusqu\u2019\u00e0 29,4 TR\u00c9S2 | 12,9 CPSC2, r\u00e9gion 5 | Chauffage jusqu\u2019\u00e0 -30\u00b0C<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=\u00a0\u00bb2_5&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/1000px_single-fan-MORELIS.png\u00a0\u00bb alt=\u00a0\u00bbMoovair &#8211; Thermopompe Morelis\u00a0\u00bb title_text=\u00a0\u00bb1000px_single-fan-MORELIS\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb width=\u00a0\u00bb500px\u00a0\u00bb max_width=\u00a0\u00bb100%\u00a0\u00bb max_width_tablet=\u00a0\u00bb50%\u00a0\u00bb max_width_phone=\u00a0\u00bb75%\u00a0\u00bb max_width_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb module_alignment=\u00a0\u00bbcenter\u00a0\u00bb custom_margin_tablet=\u00a0\u00bb\u00a0\u00bb custom_margin_phone=\u00a0\u00bb-40px||||false|false\u00a0\u00bb custom_margin_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbcbebb943-82e8-4ec0-947d-cf77e34c50de\u00a0\u00bb custom_margin=\u00a0\u00bb0px|0px|0px|0px|false|false\u00a0\u00bb custom_padding=\u00a0\u00bb10px|0px|10px|0px|false|false\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_row _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_padding=\u00a0\u00bb50px||||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_font=\u00a0\u00bb||||on|||#e35425|\u00a0\u00bb header_font_size=\u00a0\u00bb44px\u00a0\u00bb header_2_font=\u00a0\u00bb|700||||||#e35425|solid\u00a0\u00bb header_font_size_tablet=\u00a0\u00bb28px\u00a0\u00bb header_font_size_phone=\u00a0\u00bb30px\u00a0\u00bb header_font_size_last_edited=\u00a0\u00bbon|desktop\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<!-- \n\n<h2 style=\"text-transform: uppercase; display: inline-block; border-bottom: 4px solid #e35425; padding-bottom: 4px;\">La thermopompe optimale pour les climats froids, con\u00e7ue pour une efficacit\u00e9 maximale.<\/h2>\n\n--><\/p>\n<h1 style=\"text-decoration:none; text-transform: uppercase; display: inline-block; padding-bottom: 4px;\">Thermopompe Morelis de Moovair :<br \/>\n<span style=\"font-size:0.8em\">Red\u00e9finit le confort et l\u2019efficacit\u00e9 \u00e9nerg\u00e9tique de la maison pour les hivers canadiens<\/span><\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_code admin_label=\u00a0\u00bbCSS Short code\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb]<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 admin_label=\u00a0\u00bbHtml for 3D code\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb]<!--<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 = \"morelis_x4\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_a] = \"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 ] = \"35 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_a] = \"13.46 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_a] = \"26.5 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 = \"morelis_d\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_b] = \"18K 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 ] = \"31.0 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_b] = \"16.1 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_b] = \"37.2 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 = \"\";<!-- [et_pb_line_break_holder] -->  capacities[outdoor_c] = \"18K\/24K 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 ] = \"40 in\";<!-- [et_pb_line_break_holder] -->  deeps[outdoor_c] = \"40 in\";<!-- [et_pb_line_break_holder] -->  heights[outdoor_c] = \"40 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] = true;<!-- [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] -->  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 Morelis\" 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\">Puissance nominale<\/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 admin_label=\u00a0\u00bbJS for 3D code\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb]<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=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb]<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-without-sensor.glb',<!-- [et_pb_line_break_holder] -->    'm-series-wall-mounted-with-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=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font=\u00a0\u00bb|700|||||||\u00a0\u00bb text_font_size=\u00a0\u00bb22px\u00a0\u00bb header_3_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_3_font_size=\u00a0\u00bb24px\u00a0\u00bb header_3_line_height=\u00a0\u00bb1.3em\u00a0\u00bb custom_padding=\u00a0\u00bb25px||||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h3>Con\u00e7ue pour les maisons canadiennes, la thermopompe Morelis de Moovair est la solution par excellence de chauffage et de climatisation de votre maison toute l\u2019ann\u00e9e. En tant que mod\u00e8le le plus efficace de la gamme Moovair, Morelis offre un confort in\u00e9gal\u00e9 tout au long de l\u2019ann\u00e9e gr\u00e2ce aux technologies HEAT+ et Inverter. Profitez d\u2019une tranquillit\u00e9 d\u2019esprit gr\u00e2ce \u00e0 la garantie limit\u00e9e de 10 ans sur les pi\u00e8ces et le compresseur de Moovair, l\u2019une des meilleures de l\u2019industrie, et aux garanties optionnelles sur la main-d\u2019\u0153uvre. Morelis de Moovair est le choix intelligent pour r\u00e9aliser des \u00e9conomies d\u2019\u00e9nergie \u00e0 la maison et obtenir un confort fiable en mati\u00e8re de chauffage et de climatisation.<\/h3>\n<p><span style=\"text-decoration: underline; color: #e75425;\"><a href=\"\/fr-ca\/a-propos-des-thermopompes\">En savoir plus sur les thermopompes<\/a><\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_2_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_2_font_size=\u00a0\u00bb32px\u00a0\u00bb header_3_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_3_font_size=\u00a0\u00bb24px\u00a0\u00bb text_font_size_tablet=\u00a0\u00bb22px\u00a0\u00bb text_font_size_phone=\u00a0\u00bb22px\u00a0\u00bb text_font_size_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h2 style=\"font-size: 1.8em; font-weight: 200; padding-bottom:15px;\">Une technologie intelligente pour une convivialit\u00e9 et une efficacit\u00e9 \u00e9nerg\u00e9tique optimales<\/h2>\n<p>La connectivit\u00e9 WiFi int\u00e9gr\u00e9e de Morelis vous permet de personnaliser le confort de votre maison depuis n\u2019importe quel endroit. Les technologies avanc\u00e9es Inverter et Intelligent Eye de Morelis assurent un contr\u00f4le pr\u00e9cis du climat. Des contr\u00f4les d\u2019humidit\u00e9 renforc\u00e9s, des capteurs de pr\u00e9sence et des modes turbo am\u00e9liorent l\u2019efficacit\u00e9 du syst\u00e8me.<\/p>\n<h3>Pourquoi choisir Morelis?<\/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 plus\" style=\"float: right;\" \/><\/p>\n<p style=\"text-align: left;\">Les syst\u00e8mes Morelis sont dot\u00e9s de la technologie avanc\u00e9e HEAT+, qui ajuste intelligemment le fonctionnement du compresseur pour minimiser les fluctuations de temp\u00e9rature tout en maximisant l\u2019efficacit\u00e9 \u00e9nerg\u00e9tique, permettant ainsi de garder votre maison confortable tout en r\u00e9duisant votre consommation d\u2019\u00e9nergie.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay:flex;\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font=\u00a0\u00bb||||||||\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_3_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_3_font_size=\u00a0\u00bb24px\u00a0\u00bb custom_margin=\u00a0\u00bbauto||auto||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h2 style=\"font-size: 1.8em; font-weight: 200; padding-bottom: 15px;\">Con\u00e7u pour les propri\u00e9taires exigeant des performances maximales<\/h2>\n<ul>\n<li><strong>Efficacit\u00e9 maximale\u00a0:<\/strong> <span>Offre les indices CPSC\/TR\u00c9S les plus \u00e9lev\u00e9s pour des co\u00fbts \u00e9nerg\u00e9tiques r\u00e9duits: jusqu\u2019\u00e0 29,4\u00a0TR\u00c9S2 et 12,9\u00a0CPSC2, r\u00e9gion\u00a05.<\/span><\/li>\n<li><strong>Connectivit\u00e9 intelligente\u00a0:<\/strong> R\u00e9glez en toute simplicit\u00e9 la temp\u00e9rature et le mode depuis n\u2019importe o\u00f9 gr\u00e2ce \u00e0 l\u2019adaptateur WiFi inclus.<\/li>\n<li><strong>Qualit\u00e9 de l\u2019air et filtration optimales\u00a0: <\/strong>Un ventilateur int\u00e9rieur \u00e0 vitesse variable, une oscillation horizontale et un double syst\u00e8me de filtration cr\u00e9ent un environnement int\u00e9rieur sain.<\/li>\n<li><strong>Fonctionnement s\u00e9curitaire et fiable\u00a0: <\/strong>Les fonctions avanc\u00e9es comprennent un arr\u00eat automatique en cas de fuite de r\u00e9frig\u00e9rant et un red\u00e9marrage en douceur apr\u00e8s une coupure de courant.<\/li>\n<li><strong>Modes de refroidissement\u00a0:<\/strong> Comme un climatiseur classique, la thermopompe extrait la chaleur de l\u2019int\u00e9rieur de la maison et la rejette \u00e0 l\u2019ext\u00e9rieur, rafra\u00eechissant ainsi l\u2019espace int\u00e9rieur.<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/HeatOutput_Morelis_FR-1.png\u00a0\u00bb alt=\u00a0\u00bbProduction de chaleur du syst\u00e8me Moovair \u00e0 diff\u00e9rentes temp\u00e9ratures int\u00e9rieures et ext\u00e9rieures.\u00a0\u00bb title_text=\u00a0\u00bbProduction de chaleur du syst\u00e8me Moovair \u00e0 diff\u00e9rentes temp\u00e9ratures int\u00e9rieures et ext\u00e9rieures.\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_padding=\u00a0\u00bb10px||10px||true|false\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb]<\/p>\n<p>Avec les thermopompes Morelis, vous n\u2019achetez pas seulement un syst\u00e8me de chauffage et de climatisation, vous investissez dans le confort, les \u00e9conomies d\u2019\u00e9nergie et la durabilit\u00e9 tout au long de l\u2019ann\u00e9e. Les syst\u00e8mes de thermopompe Morelis sont con\u00e7us pour offrir des performances constantes, m\u00eame dans les climats les plus froids.<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=\u00a0\u00bbhttps:\/\/cdn.master.ca\/documents\/fr\/moovair\/brochures\/Moovair_MSeries_202602_FR_V03.pdf\u00a0\u00bb url_new_window=\u00a0\u00bbon\u00a0\u00bb button_text=\u00a0\u00bbCaract\u00e9ristiques et sp\u00e9cifications techniques disponibles dans la brochure compl\u00e8te\u00a0\u00bb button_alignment=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_button=\u00a0\u00bbon\u00a0\u00bb button_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_color=\u00a0\u00bb#e35425&Prime; button_border_radius=\u00a0\u00bb100px\u00a0\u00bb button_font=\u00a0\u00bb||||||||\u00a0\u00bb custom_padding=\u00a0\u00bb10px|30px|10px|30px|true|true\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; button_text_size_tablet=\u00a0\u00bb\u00a0\u00bb button_text_size_phone=\u00a0\u00bb16px\u00a0\u00bb button_text_size_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime; button_text_size__hover_enabled=\u00a0\u00bbon|desktop\u00a0\u00bb button_text_color__hover_enabled=\u00a0\u00bbon|hover\u00a0\u00bb button_text_color__hover=\u00a0\u00bb#e35425&Prime; button_bg_color__hover_enabled=\u00a0\u00bbon|desktop\u00a0\u00bb button_bg_color__hover=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_enable_color__hover=\u00a0\u00bbon\u00a0\u00bb button_border_color__hover_enabled=\u00a0\u00bbon|hover\u00a0\u00bb button_border_color__hover=\u00a0\u00bb#e35425&Prime; sticky_enabled=\u00a0\u00bb0&Prime;][\/et_pb_button][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text module_class=\u00a0\u00bbet_pb_text_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h2 style=\"text-transform: uppercase;  display: inline-block; border-bottom: 4px solid #e35425; padding-bottom: 4px;\">S\u00c9RIE M: Des thermopompes qui en font plus, tout comme vous<\/h2>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_3,1_3,1_3&Prime; module_class=\u00a0\u00bbcls-logos\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_3&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/MORELIS-1.png\u00a0\u00bb alt=\u00a0\u00bbMorelis logo featuring a stylized %22M%22 in orange and the word %22Morelis%22 in gray.\u00a0\u00bb title_text=\u00a0\u00bbMorelis logo featuring a stylized \u00ab\u00a0M\u00a0\u00bb in orange and the word \u00ab\u00a0Morelis\u00a0\u00bb in gray.\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb background_enable_color=\u00a0\u00bboff\u00a0\u00bb max_width=\u00a0\u00bb200px\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_3&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/MERIDIAN.png\u00a0\u00bb alt=\u00a0\u00bbLogo of the Meridian brand featuring bold gray letters with an orange accent.\u00a0\u00bb title_text=\u00a0\u00bbLogo of the Meridian brand featuring bold gray letters with an orange accent.\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb max_width=\u00a0\u00bb200px\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_3&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/MISTRAL-1.png\u00a0\u00bb alt=\u00a0\u00bbMISTRAL logo featuring bold gray letters with an orange wave element.\u00a0\u00bb title_text=\u00a0\u00bbMISTRAL logo featuring bold gray letters with an orange wave element.\u00a0\u00bb align=\u00a0\u00bbright\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb max_width=\u00a0\u00bb200px\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text module_class=\u00a0\u00bbet_pb_text_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]Les thermopompes Moovair \u2013 Morelis, Meridian et Mistral \u2013 sont con\u00e7ues pour offrir un \u00e9quilibre entre fonctionnalit\u00e9s avanc\u00e9es et fiabilit\u00e9 au quotidien. Ainsi, les propri\u00e9taires sont assur\u00e9s d\u2019une installation efficace et d\u2019un excellent rapport qualit\u00e9-prix \u00e0 long terme, sans complications inutiles.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/Inverter-Compressor_FR-3.png\u00a0\u00bb alt=\u00a0\u00bbCompressseur Inverter showcasing a detailed view of its internal components and design.\u00a0\u00bb title_text=\u00a0\u00bbCompressseur Inverter showcasing a detailed view of its internal components and design.\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb max_width=\u00a0\u00bb50%\u00a0\u00bb custom_padding=\u00a0\u00bb10px||10px||true|false\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay:flex;\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_3_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_3_font_size=\u00a0\u00bb24px\u00a0\u00bb custom_margin=\u00a0\u00bbauto||auto||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h3><strong>Efficacit\u00e9 \u00e9nerg\u00e9tique pour chaque maison<\/strong><\/h3>\n<p>Ces syst\u00e8mes int\u00e8grent une technologie d\u2019entra\u00eenement de pointe \u00e0 Inverter, qui module le fonctionnement du compresseur afin de limiter les fluctuations de temp\u00e9rature et de r\u00e9duire la consommation d\u2019\u00e9nergie. En se r\u00e9glant par paliers pr\u00e9cis jusqu\u2019\u00e0 atteindre son plein rendement, le syst\u00e8me maintient efficacement la temp\u00e9rature, offrant ainsi un confort maximal et permettant de r\u00e9aliser des \u00e9conomies d\u2019\u00e9nergie.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay:flex\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text module_class=\u00a0\u00bbet_pb_text_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bbauto||auto||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h3><strong>Fiabilit\u00e9 assur\u00e9e avec notre garantie de premier plan<\/strong><\/h3>\n<p>Construites pour durer, les thermopompes Moovair sont couvertes par une garantie limit\u00e9e de 10 ans sur les pi\u00e8ces et le compresseur. Pour une plus grande tranquillit\u00e9 d\u2019esprit, une garantie facultative de 5 et 10 ans sur la main-d\u2019oeuvre est \u00e9galement offerte, assurant ainsi une bonne protection de l\u2019investissement pendant des ann\u00e9es.[\/et_pb_text][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/MoovairWarrantyLogo_FR-2.png\u00a0\u00bb alt=\u00a0\u00bbGaranties limit\u00e9es de 10 ans pour le compresseur et les pi\u00e8ces, avec une option de 5 ans et 10 ans pour la main-d&rsquo;\u0153uvre.\u00a0\u00bb title_text=\u00a0\u00bbGaranties limit\u00e9es de 10 ans pour le compresseur et les pi\u00e8ces, avec une option de 5 ans et 10 ans pour la main-d\u2019\u0153uvre.\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/Graphic-FR_WintervsSummer-2.png\u00a0\u00bb alt=\u00a0\u00bbMode chauffage et mode climatisation d&rsquo;un syst\u00e8me Moovair, illustrant le flux d&rsquo;air chaud et froid.\u00a0\u00bb title_text=\u00a0\u00bbMode chauffage et mode climatisation d\u2019un syst\u00e8me Moovair, illustrant le flux d\u2019air chaud et froid.\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay:flex\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text module_class=\u00a0\u00bbet_pb_text_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bbauto||auto||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h3><strong>Confort assur\u00e9 toute l\u2019ann\u00e9e gr\u00e2ce \u00e0 une thermopompe<\/strong><\/h3>\n<p>Une thermopompe constitue une solution compl\u00e8te de r\u00e9gulation du climat, fournissant \u00e0 la fois le chauffage et la climatisation pour maintenir des temp\u00e9ratures int\u00e9rieures optimales, peu importe la saison. <\/p>\n<ul>\n<li><span> <strong>Mode climatisation <\/strong>: Comme un climatiseur classique, la thermopompe aspire la chaleur de l\u2019int\u00e9rieur pour la rejeter \u00e0 l\u2019ext\u00e9rieur, rafra\u00eechissant ainsi l\u2019espace int\u00e9rieur.  <\/span><\/li>\n<li><span> <strong>Mode chauffage <\/strong>: \u00c0 l\u2019inverse, la thermopompe capte la chaleur de l\u2019air ext\u00e9rieur et la transf\u00e8re \u00e0 l\u2019int\u00e9rieur pour r\u00e9chauffer la maison.  <\/span><\/li>\n<\/ul>\n<p><span>Un tel syst\u00e8me \u00e0 deux fonctions assure un confort uniforme en toute saison.<\/span>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay:flex;\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font=\u00a0\u00bb||||||||\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_3_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_3_font_size=\u00a0\u00bb24px\u00a0\u00bb custom_margin=\u00a0\u00bbauto||auto||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h3>Capacit\u00e9 de la thermopompe : un gage de confort<\/h3>\n<p>La capacit\u00e9 de la thermopompe correspond \u00e0 la part de chauffage ou de climatisation qu\u2019une unit\u00e9 peut fournir et est g\u00e9n\u00e9ralement mesur\u00e9e en unit\u00e9 de puissance frigorifique (BTU\/h). Elle peut varier en fonction de la temp\u00e9rature (les performances diminuent souvent lorsque les temp\u00e9ratures ext\u00e9rieures baissent). <\/p>\n<p>Con\u00e7ue pour r\u00e9sister aux temp\u00e9ratures extr\u00eames, l\u2019unit\u00e9 Morelis de 9 000 BTU\/h, par exemple, fournit plus de 9 000 BTU\/h m\u00eame lorsqu\u2019il fait -25\u00b0C \u00e0 l\u2019ext\u00e9rieur et 21\u00b0C \u00e0 l\u2019int\u00e9rieur.[\/et_pb_text][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/MSeries_ComparisonGraph_FR.png\u00a0\u00bb alt=\u00a0\u00bbcapacit\u00e9 totale nette en fonction de la temp\u00e9rature ext\u00e9rieure pour trois syst\u00e8mes diff\u00e9rents, Morelis, Meridian et Mistral.\u00a0\u00bb title_text=\u00a0\u00bbcapacit\u00e9 totale nette en fonction de la temp\u00e9rature ext\u00e9rieure pour trois syst\u00e8mes diff\u00e9rents, Morelis, Meridian et Mistral.\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_padding=\u00a0\u00bb10px||10px||true|false\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_2,1_2&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/moovair.com\/wp-content\/uploads\/COP-Graphic_FR-2.png\u00a0\u00bb alt=\u00a0\u00bbMoovair system diagram illustrating the process of capturing outdoor heat and releasing it indoors, with accompanying French text.\u00a0\u00bb title_text=\u00a0\u00bbMoovair system diagram illustrating the process of capturing outdoor heat and releasing it indoors, with accompanying French text.\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb max_width=\u00a0\u00bb300px\u00a0\u00bb module_alignment=\u00a0\u00bbcenter\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_css_main_element=\u00a0\u00bbdisplay:flex;\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_3_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_3_font_size=\u00a0\u00bb24px\u00a0\u00bb custom_margin=\u00a0\u00bbauto||auto||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h3>Cycle de chauffage et coefficient de performance (COP)<\/h3>\n<p><span>L\u2019efficacit\u00e9 de la thermopompe est \u00e9valu\u00e9e au moyen d\u2019un coefficient de performance (COP), c\u2019est-\u00e0-dire le rapport entre la chaleur produite (en kW) et la puissance absorb\u00e9e (en kW). Plus le COP est \u00e9lev\u00e9, plus l\u2019efficacit\u00e9 est grande.  <\/span><\/p>\n<p><span>Par exemple, un COP de 3 signifie que pour chaque unit\u00e9 d\u2019\u00e9lectricit\u00e9 consomm\u00e9e, la thermopompe produit trois unit\u00e9s de chaleur. <\/span><\/p>\n<p><span style=\"margin-bottom: 10px; display: block;\">Avantages d\u2019un COP \u00e9lev\u00e9 :  <\/span><\/p>\n<ul>\n<li><span> <strong>Efficacit\u00e9 accrue <\/strong>: Conversion plus efficace de l\u2019\u00e9lectricit\u00e9 en chauffage ou en climatisation.  <\/span><\/li>\n<li><span> <strong>R\u00e9duction des co\u00fbts \u00e9nerg\u00e9tiques <\/strong>: Factures d\u2019\u00e9lectricit\u00e9 moins \u00e9lev\u00e9es gr\u00e2ce \u00e0 une utilisation efficace de l\u2019\u00e9nergie.  <\/span><\/li>\n<li><span> <strong>Avantages pour l\u2019environnement <\/strong>: Diminution de l\u2019empreinte carbone gr\u00e2ce \u00e0 une consommation d\u2019\u00e9nergie optimis\u00e9e. <\/span><\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb30px||||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb||50px||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font_size=\u00a0\u00bb20px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_2_font=\u00a0\u00bb|700|||||||\u00a0\u00bb header_2_font_size=\u00a0\u00bb32px\u00a0\u00bb header_2_line_height=\u00a0\u00bb1.1em\u00a0\u00bb header_2_font_size_phone=\u00a0\u00bb26px\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]<\/p>\n<h2 style=\"text-align: center;\">T\u00c9L\u00c9CHARGEZ LA BROCHURE<\/h2>\n<p style=\"text-align: center;\">Pour en savoir plus, t\u00e9l\u00e9chargez la brochure sur la s\u00e9rie M.<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=\u00a0\u00bbhttps:\/\/cdn.master.ca\/documents\/fr\/moovair\/brochures\/Moovair_MSeries_202602_FR_V03.pdf\u00a0\u00bb url_new_window=\u00a0\u00bbon\u00a0\u00bb button_text=\u00a0\u00bbT\u00c9L\u00c9CHARGER LA BROCHURE PDF \u00a0\u00bb button_alignment=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_button=\u00a0\u00bbon\u00a0\u00bb button_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_color=\u00a0\u00bb#e35425&Prime; button_border_radius=\u00a0\u00bb100px\u00a0\u00bb button_font=\u00a0\u00bb||||||||\u00a0\u00bb custom_padding=\u00a0\u00bb10px|30px|10px|30px|true|true\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; button_text_size_tablet=\u00a0\u00bb\u00a0\u00bb button_text_size_phone=\u00a0\u00bb16px\u00a0\u00bb button_text_size_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime; button_text_size__hover_enabled=\u00a0\u00bbon|desktop\u00a0\u00bb button_text_color__hover_enabled=\u00a0\u00bbon|hover\u00a0\u00bb button_text_color__hover=\u00a0\u00bb#e35425&Prime; button_bg_color__hover_enabled=\u00a0\u00bbon|desktop\u00a0\u00bb button_bg_color__hover=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_enable_color__hover=\u00a0\u00bbon\u00a0\u00bb button_border_color__hover_enabled=\u00a0\u00bbon|hover\u00a0\u00bb button_border_color__hover=\u00a0\u00bb#e35425&Prime; sticky_enabled=\u00a0\u00bb0&Prime;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbcbebb943-82e8-4ec0-947d-cf77e34c50de\u00a0\u00bb custom_margin=\u00a0\u00bb||0px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb custom_padding_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb custom_padding_phone=\u00a0\u00bb0px|20px|0px|20px|false|true\u00a0\u00bb sticky_enabled=\u00a0\u00bb0&Prime; custom_padding_tablet=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb][et_pb_row _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb background_color=\u00a0\u00bb#4a7b9c\u00a0\u00bb border_radii=\u00a0\u00bbon|50px|50px|50px|50px\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_font=\u00a0\u00bb||||||||\u00a0\u00bb text_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb text_font_size=\u00a0\u00bb24px\u00a0\u00bb text_line_height=\u00a0\u00bb1.3em\u00a0\u00bb header_3_font_size=\u00a0\u00bb36px\u00a0\u00bb width=\u00a0\u00bb100%\u00a0\u00bb custom_margin=\u00a0\u00bb|20px||20px|true|true\u00a0\u00bb custom_padding=\u00a0\u00bb|20px||20px|true|true\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime;]Les d\u00e9taillants Moovair sont support\u00e9s par Le Groupe Master, le plus important distributeur priv\u00e9 dans le domaine du CVCA-R au Canada. Au cours de ses 70 ans d\u2019existence, Le Groupe Master s\u2019est toujours distingu\u00e9 par son vaste inventaire, son expertise technique et son service \u00e0 la client\u00e8le exceptionnel.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_padding=\u00a0\u00bb30px||0px||false|false\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.18.0&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][et_pb_button button_url=\u00a0\u00bb\/fr-ca\/annuaire-des-detaillants\/\u00a0\u00bb button_text=\u00a0\u00bbTROUVEZ UN D\u00c9TAILLANT\u00a0\u00bb button_alignment=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_button=\u00a0\u00bbon\u00a0\u00bb button_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_color=\u00a0\u00bb#e35425&Prime; button_border_radius=\u00a0\u00bb100px\u00a0\u00bb button_font=\u00a0\u00bb||||||||\u00a0\u00bb custom_padding=\u00a0\u00bb10px|30px|10px|30px|true|true\u00a0\u00bb button_text_size_tablet=\u00a0\u00bb\u00a0\u00bb button_text_size_phone=\u00a0\u00bb16px\u00a0\u00bb button_text_size_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb locked=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb%91%93&Prime; button_text_size__hover_enabled=\u00a0\u00bbon|desktop\u00a0\u00bb button_text_color__hover_enabled=\u00a0\u00bbon|hover\u00a0\u00bb button_text_color__hover=\u00a0\u00bb#e35425&Prime; button_bg_color__hover_enabled=\u00a0\u00bbon|desktop\u00a0\u00bb button_bg_color__hover=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_enable_color__hover=\u00a0\u00bbon\u00a0\u00bb button_border_color__hover_enabled=\u00a0\u00bbon|hover\u00a0\u00bb button_border_color__hover=\u00a0\u00bb#e35425&Prime;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Morelis (Ultime) La cr\u00e8me du confort et de l\u2019efficacit\u00e9 Jusqu\u2019\u00e0 29,4 TR\u00c9S2 | 12,9 CPSC2, r\u00e9gion 5 | Chauffage jusqu\u2019\u00e0 -30\u00b0C Thermopompe Morelis de Moovair : Red\u00e9finit le confort et l\u2019efficacit\u00e9 \u00e9nerg\u00e9tique de la maison pour les hivers canadiens<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>Con\u00e7ue pour les maisons canadiennes, la thermopompe Morelis de Moovair est la solution par excellence [&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-16258505","page","type-page","status-publish","hentry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages\/16258505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/comments?post=16258505"}],"version-history":[{"count":18,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages\/16258505\/revisions"}],"predecessor-version":[{"id":16266677,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages\/16258505\/revisions\/16266677"}],"wp:attachment":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/media?parent=16258505"}],"wp:term":[{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/dipi_cpt_category?post=16258505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}